
Compartir:
Rabeb fue defensora de los desarrolladores en Nexmo, centrándose en las API de comunicación en la nube y ayudando a los desarrolladores a obtener la mejor experiencia posible al crear sus aplicaciones. Además de escribir código para ganarse la vida, Rabeb aboga por atraer a más mujeres y minorías a la tecnología, de ahí su participación en Women Who Code y en diferentes comunidades tecnológicas. Dirige la red Women Who Code en Bristol.
Crear una multiconferencia con la Voice API de Vonage y ASP.NET Core
Tiempo de lectura: 6 minutos
Este es el sexto tutorial sobre cómo utilizar Voice API con la serie ASP.NET. En el tutorial anterior, aprendimos cómo desviar una llamada a través de un proxy de voz con ASP.NET Core. En el tutorial de hoy, aprenderemos cómo configurar una llamada de conferencia para que varias personas puedan unirse a la misma llamada.
Objetivos de aprendizaje
En este tutorial, vamos a:
Cree una aplicación ASP.NET Core.
Utilice NancyFX con ASP.NET Core.
Crea una aplicación de voz de Vonage.
Crear y devolver NCCOs.
Ejecuta y prueba el código utilizando Ngrok.
Requisitos previos
Visual Studio 2017 o superior.
Un proyecto que fue creado para esta serie de tutoriales, que se puede encontrar en Github.
Opcional: El CLI de Vonage.
Configuración
Para utilizar Voice API de Vonagenecesitamos crear una aplicación de voz.
Los pasos de configuración se detallan en Voice API de Vonage con ASP.NET: Antes de comenzar post.
Una vez creada correctamente la configuración, podemos pasar a establecer una multiconferencia.
Creación de una teleconferencia
Cuando un usuario llama al número de Vonage, la Voice API de Vonage hará una solicitud a la aplicación para averiguar cómo responder usando un objeto de control de llamadas de Vonage (NCCO).
El usuario será recibido y se unirá a la multiconferencia.
Para ello, vamos a utilizar NancyFX junto con nuestro proyecto ASP.NET Core.
En primer lugar, tenemos que añadir Nancy a nuestro proyecto:
PM> Install-Package Nancy
PM> Install-Package Microsoft.AspNetCore.Owin
Para permitir que Nancy gestione cualquier petición HTTP, necesitamos decirle a ASP.NET Core que utilice Nancy a través de Owin en el método Configure de Startup.cs.
using Microsoft.AspNetCore.Builder;
using Nancy.Owin;
namespace NexmoVoiceASPNetCoreQuickStarts
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseOwin(x => x.UseNancy());
}
}
}
El siguiente paso es crear un módulo Nancy en el que crearemos una ruta a /webhook/answer que responderá con el ncco devuelto por GetConferenceCallNCCO()
using Nancy;
using Vonage.Voice.Nccos;
namespace NexmoDotnetCodeSnippets.Modules
{
public class ConferenceCallModule : NancyModule
{
public ConferenceCallModule()
{
Get("/webhook/answer/", x => {
var response = GetConferenceCallNCCO();
response.ContentType = "application/json";
return response;
});
Post("/webhook/event", x => Request.Query["status"]);
}
private Response GetConferenceCallNCCO()
{
var ncco = new Ncco();
ncco.Actions.Add(new TalkAction
{
Text = "Hello. You will now be added to the conference call.",
Language = "en-US",
Style = 2
});
ncco.Actions.Add(new ConversationAction
{
Name = "conference-call"
});
return Response.AsJson(ncco);
}
}
}
El código anterior hará lo siguiente:
Cuando se reciba una llamada, el usuario oirá "Hola. Ahora se le añadirá a la multiconferencia" y, a continuación, se le añadirá a la multiconferencia.
Se pueden añadir varias personas a la conferencia hasta que todas se hayan desconectado.
Ya hemos terminado. Para probar esta aplicación de ejemplo, se requieren algunos pasos más de configuración.
Cómo vincular tu aplicación a Vonage
Si nos has seguido hasta ahora, ya habrás configurado tu cuenta de Vonage y creado una aplicación de voz como se muestra en esta publicación. Necesitamos vincular esta aplicación a un número de teléfono de Vonage al que vamos a llamar.
Si no tiene número, puede adquirir uno utilizando el tablero de mandos o usando la CLI de Vonage:
Del mismo modo, para vincular el número, puede utilizar el cuadro de mandos o la CLI:
Tenemos que decirle a Vonage a qué URL hacer una solicitud cuando se recibe una llamada - esto se llama el archivo answer_url. En mi caso, esta URL es http://localhost:63286/webhook/answer y sólo se ejecuta localmente.
Para exponer la URL de respuesta de nuestro webhook, utilizaremos Ngrok.
Ahora tenemos una nueva URL (la mía es http://<SUBDOMAIN>.ngrok.io) que se puede utilizar como answer_url para la aplicación de voz.
Actualice su solicitud con su nuevo answer_url. Debería verse como http://subdomain.ngrok.io/webhook/answer. Ejecute la aplicación y pruébela llamando a la función TO_NUMBER.
Más información
Referencias y herramientas API
Guías de iniciación Nexmo para ASP.NET
Compartir:
Rabeb fue defensora de los desarrolladores en Nexmo, centrándose en las API de comunicación en la nube y ayudando a los desarrolladores a obtener la mejor experiencia posible al crear sus aplicaciones. Además de escribir código para ganarse la vida, Rabeb aboga por atraer a más mujeres y minorías a la tecnología, de ahí su participación en Women Who Code y en diferentes comunidades tecnológicas. Dirige la red Women Who Code en Bristol.