
Partager:
Rabeb était un défenseur des développeurs chez Nexmo, se concentrant sur les API de communication dans le nuage et aidant les développeurs à obtenir la meilleure expérience possible lors de la création de leurs applications. Outre le fait d'écrire du code pour gagner sa vie, Rabeb milite pour que davantage de femmes et de minorités accèdent à la technologie, d'où son engagement auprès de Women Who Code et de différentes communautés technologiques. Elle dirige le réseau Women Who Code à Bristol.
Renvoyer un appel via un proxy vocal avec ASP.NET Core
Temps de lecture : 3 minutes
Il s'agit du cinquième tutoriel sur l'utilisation des Voice API avec la série ASP.NET.
Dans le tutoriel précédent, nous avons appris comment gérer les entrées utilisateur avec ASP.NET Core.
De nos jours, nous utilisons beaucoup d'apps et de services qui nous obligent à communiquer avec une autre partie, généralement un inconnu, par le biais d'appels téléphoniques ou de messages. Pensez aux applications de livraison de repas ou de réservation de taxis.
Une façon de protéger les deux parties est de masquer leurs numéros de téléphone en utilisant un numéro intermédiaire. C'est ce qu'on appelle le Voice Proxy.
Voyons comment nous pouvons mettre en œuvre cette technique en utilisant les API vocales de Voice API de Vonage.
Objectifs d'apprentissage
Dans ce tutoriel, nous allons :
Créer une application ASP.NET Core.
Utilisez NancyFX avec ASP.NET Core.
Créez une application vocale Vonage.
Créer et renvoyer les BCN.
Exécuter et tester le code à l'aide de Ngrok.
Conditions préalables
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 ou une version plus récente.
Un Account Vonage, pour lequel vous pouvez vous inscrire ici.
Un projet mis en place pour cette série de tutoriels, que vous pouvez trouver sur Github.
Optionnel : Le CLI de Vonage.
Configuration
Pour utiliser l'API Voice de Vonagede Vonage, nous devons créer une application Voice.
Les étapes de configuration sont détaillées dans le document API Voice de Vonage avec ASP.NET : Avant de commencer poste
Une fois la configuration effectuée avec succès, nous sommes prêts à transférer un appel.
Renvoi d'un appel téléphonique
Lorsqu'un appel est reçu, l'API Voice de Vonage envoie une demande à votre application pour savoir comment y répondre.
Pour ce faire, nous allons utiliser NancyFX avec notre projet ASP.NET Core.
Tout d'abord, nous devons ajouter Nancy à notre projet :
PM> Install-Package Nancy
PM> Install-Package Microsoft.AspNetCore.Owin
Pour permettre à Nancy de traiter toutes les requêtes HTTP, nous devons indiquer à ASP.NET Core d'utiliser Nancy via Owin dans la méthode Configure de la méthode Startup.cs.
using Microsoft.AspNetCore.Builder;
using Nancy.Owin;
namespace NexmoVoiceASPNetCoreQuickStarts
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseOwin(x => x.UseNancy());
}
}
}
L'étape suivante consiste à créer un module Nancy dans lequel nous établissons une route vers /webhook/answer qui répondra avec le ncco renvoyée par 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;
}
}
}
Le code ci-dessus permet d'obtenir les résultats suivants :
Lorsqu'un appel est reçu, Vonage masque le numéro de l'appelant original et utilise à la place un numéro virtuel comme façade à cet appel téléphonique.
Nous avons terminé ! Pour tester cet exemple d'application, quelques étapes de configuration supplémentaires sont nécessaires.
Si vous avez suivi jusqu'ici, vous avez déjà configuré votre Account Voice et créé une application vocale comme indiqué dans cet article. Nous devons lier cette appli à un numéro de téléphone Vonage que nous allons appeler. Si vous n'avez pas de numéro, vous pouvez en acheter un en utilisant le tableau de bord ou le CLI :
vonage nubmers:search US
vonage numbers:buy [NUMBER] [COUNTRYCODE]De même, pour lier le numéro, vous pouvez utiliser le tableau de bord ou le CLI :
vonage apps:link --number=VONAGE_NUMBER APP_IDNous devons indiquer à Vonage l'URL à laquelle adresser une requête lorsqu'un appel est reçu - c'est ce qu'on appelle l'URL answer_url. Pour moi, cette URL est http://localhost:63286/webhook/answer et il n'est exécuté que localement. Pour exposer notre url de réponse au webhook, nous utiliserons Ngrok.
ngrok http 63286Nous avons maintenant une nouvelle url (http://userSubdomain.ngrok.io) qui peut être utilisée comme l'url de l'application vocale. answer_url pour l'application vocale. Mettez à jour votre application avec votre nouvelle adresse answer_url. Elle devrait ressembler à http://userSubdomain.ngrok.io/webhook/answer
Tada ! Lancez l'application et faites un essai en appelant le TO_NUMBER ; vous remarquerez que de l'autre côté, vous ne verrez pas le numéro de téléphone que vous utilisez mais votre VONAGE_NUMBER.
En savoir plus
Références et outils API
Guides de démarrage Nexmo pour ASP.NET
Partager:
Rabeb était un défenseur des développeurs chez Nexmo, se concentrant sur les API de communication dans le nuage et aidant les développeurs à obtenir la meilleure expérience possible lors de la création de leurs applications. Outre le fait d'écrire du code pour gagner sa vie, Rabeb milite pour que davantage de femmes et de minorités accèdent à la technologie, d'où son engagement auprès de Women Who Code et de différentes communautés technologiques. Elle dirige le réseau Women Who Code à Bristol.
