
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.
Desviar una llamada a través de Voice Proxy con ASP.NET Core
Tiempo de lectura: 3 minutos
Este es el quinto tutorial sobre cómo utilizar Voice API con la serie ASP.NET.
En el tutorial anterior, aprendimos cómo manejar la entrada del usuario con ASP.NET Core.
Hoy en día utilizamos muchas aplicaciones y servicios que nos obligan a comunicarnos con otra persona, normalmente un desconocido, mediante llamadas telefónicas o mensajes. Piensa en las aplicaciones de reparto de comida o de reserva de taxis.
Una forma de proteger a ambas partes es enmascarar sus números de teléfono utilizando un número intermediario. Es lo que se conoce como Voice Proxy.
Veamos cómo podemos implementar esta técnica utilizando Voice API de Vonage.
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
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
Visual Studio 2017 o superior.
Una Account de Vonage, a la que puedes registrarte aquí.
Una configuración de proyecto para esta serie de tutoriales, que se puede encontrar en Github.
Opcional: La 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 publicar en
Una vez realizada la configuración correctamente, estamos listos para desviar una llamada.
Desviar una llamada telefónica
Cuando se recibe una llamada, Voice API de Vonage hará una solicitud a tu aplicación para averiguar cómo responder.
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 estableceremos una ruta a /webhook/answer que responderá con el ncco devuelto por GetConnectNCCO()
using Nancy;
using Vonage.Voice.Nccos;
using Vonage.Voice.Nccos.Endpoints;
namespace NexmoVoiceASPNetCoreQuickStarts
{
public class VoiceModule : NancyModule
{
public VoiceModule()
{
Get["/webhook/answer"] = x => { var response = Response.AsJson(GetConnectNCCO());
response.ContentType = "application/json";
return response;
};
}
private Ncco GetConnectNCCO()
{
var ncco = new Ncco();
ncco.Actions.Add(new ConnectAction
{
From = "VONAGE_NUMBER",
Endpoint = new[] {
new PhoneEndpoint
{
Number = "TO_NUMBER"
}
}
});
return ncco;
}
}
}
El código anterior hará lo siguiente:
Cuando se recibe una llamada, Vonage enmascarará el número original de la persona que llama y, en su lugar, utilizará un número virtual como fachada para esta llamada telefónica.
Ya hemos terminado. Para probar esta aplicación de ejemplo, se requieren algunos pasos más de configuración.
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 este post. Necesitamos vincular esta aplicación a un número de teléfono de Vonage al que vamos a llamar. Si no tienes un número, puedes comprar uno usando el panel de control o la CLI:
vonage nubmers:search US
vonage numbers:buy [NUMBER] [COUNTRYCODE]Del mismo modo, para vincular el número, puede utilizar el cuadro de mandos o la CLI:
vonage apps:link --number=VONAGE_NUMBER APP_IDTenemos 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, usaremos Ngrok.
ngrok http 63286Ahora tenemos una nueva url (http://userSubdomain.ngrok.io) que se puede utilizar como el answer_url para la aplicación Voice. Actualice su aplicación con su nuevo answer_url. Debería verse como http://userSubdomain.ngrok.io/webhook/answer
¡Tada! Ejecuta la aplicación y pruébala llamando al NÚMERO_TO; verás que al otro lado no aparece el número de teléfono que estás utilizando, sino tu NÚMERO_VONAGE.
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.
