
Share:
Rabeb war Developer Advocate bei Nexmo, wo sie sich auf Cloud-Kommunikations-APIs konzentrierte und Entwicklern half, die bestmögliche Erfahrung bei der Entwicklung ihrer Apps zu machen. Rabeb schreibt nicht nur Code für ihren Lebensunterhalt, sondern setzt sich auch dafür ein, mehr Frauen und Minderheiten in die Technologiebranche zu bringen, und engagiert sich daher bei Women Who Code und verschiedenen Tech-Communities. Sie leitet das Women Who Code Network in Bristol.
Weiterleitung eines Anrufs über Voice Proxy mit ASP.NET Core
Lesedauer: 2 Minuten
Dies ist das fünfte Tutorial zur Verwendung von Voice APIs mit ASP.NET.
Im vorherigen Tutorial haben wir gelernt wie man Benutzereingaben mit ASP.NET Core verarbeitet.
Heutzutage nutzen wir viele Apps und Dienste, bei denen wir mit einer anderen Partei, in der Regel einem Fremden, über Anrufe oder Nachrichten kommunizieren müssen. Denken Sie an Apps für Essenslieferungen oder Taxibuchungen.
Eine Möglichkeit, beide Parteien zu schützen, ist die Maskierung ihrer Telefonnummern durch eine zwischengeschaltete Nummer. Dies wird als Voice Proxy bezeichnet.
Sehen wir uns an, wie wir diese Technik mit Sprach-APIs von Vonage.
Lernziele
In diesem Lernprogramm werden wir:
Erstellen Sie eine ASP.NET Core-Anwendung.
Verwenden Sie NancyFX mit ASP.NET Core.
Erstellen Sie eine Vonage Sprachanwendung.
Erstellung und Rückgabe von NCCOs.
Führen Sie den Code mit Ngrok aus und testen Sie ihn.
Voraussetzungen
Vonage API-Konto
Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
Visual Studio 2017 oder höher.
Ein Vonage-Konto, das Sie hier anmelden können.
Ein Projekt-Setup für diese Tutorial-Serie, das Sie auf Github.
Optional: Die Vonage CLI.
Konfiguration
Zur Verwendung Die Vonage Sprach-APIzu nutzen, müssen wir eine eine Sprachanwendung.
Die Konfigurationsschritte sind in dem Dokument Vonage Voice API mit ASP.NET beschrieben: Bevor Sie beginnen Beitrag
Sobald die Konfiguration erfolgreich abgeschlossen ist, können wir einen Anruf weiterleiten.
Weiterleitung eines Anrufs
Wenn ein Anruf eingeht, stellt die Vonage Voice API eine Anfrage an Ihre Anwendung, um herauszufinden, wie sie reagieren soll.
Zu diesem Zweck werden wir Folgendes verwenden NancyFX neben unserem ASP.NET Core-Projekt verwenden.
Zunächst einmal müssen wir Nancy zu unserem Projekt hinzufügen:
PM> Install-Package Nancy
PM> Install-Package Microsoft.AspNetCore.Owin
Damit Nancy alle HTTP-Anfragen bearbeiten kann, müssen wir ASP.NET Core mitteilen, dass Nancy über Owin
in der Configure
Methode von Startup.cs
.
using Microsoft.AspNetCore.Builder;
using Nancy.Owin;
namespace NexmoVoiceASPNetCoreQuickStarts
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseOwin(x => x.UseNancy());
}
}
}
Der nächste Schritt besteht darin, ein Nancy-Modul zu erstellen, in dem wir eine Route zu /webhook/answer
einrichten, die mit dem ncco
zurückgegeben von 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;
}
}
}
Der obige Code bewirkt Folgendes:
Wenn ein Anruf eingeht, maskiert Vonage die ursprüngliche Rufnummer des Anrufers und verwendet stattdessen eine virtuelle Nummer als Fassade für diesen Telefonanruf.
Wir sind fertig! Um diese Beispielanwendung zu testen, sind noch einige Konfigurationsschritte erforderlich.
Wenn Sie uns bis hierher gefolgt sind, haben Sie Ihr Vonage-Konto bereits konfiguriert und eine Sprach-App erstellt, wie in diesem Beitrag gezeigt diesem Beitrag. Wir müssen diese App mit einer Vonage-Telefonnummer verknüpfen, die wir anrufen wollen. Wenn Sie noch keine Nummer haben, können Sie eine erwerben über das Dashboard oder über die CLI erwerben:
vonage nubmers:search US
vonage numbers:buy [NUMBER] [COUNTRYCODE]
Um die Nummer ähnlich zu verknüpfen, können Sie über das Dashboard oder die CLI verwenden:
vonage apps:link --number=VONAGE_NUMBER APP_ID
Wir müssen Vonage mitteilen, an welche URL eine Anfrage gestellt werden soll, wenn ein Anruf eingeht - dies wird die answer_url
. Für mich lautet diese URL http://localhost:63286/webhook/answer und die wird nur lokal ausgeführt. Um unsere Webhook-Antwort-URL freizulegen, verwenden wir Ngrok.
ngrok http 63286
Wir haben jetzt eine neue URL (http://userSubdomain.ngrok.io), die als answer_url
für die Sprachanwendung verwendet werden kann. Aktualisieren Sie Ihre Anwendung mit Ihrer neuen answer_url
. Sie sollte wie folgt aussehen http://userSubdomain.ngrok.io/webhook/answer
Tada! Starten Sie die App und probieren Sie es aus, indem Sie die TO_NUMBER anrufen. Sie werden feststellen, dass auf der anderen Seite nicht die Telefonnummer angezeigt wird, die Sie verwenden, sondern Ihre VONAGE_NUMBER.
Mehr erfahren
API-Referenzen und Tools
Nexmo Einführungshandbücher für ASP.NET
Share:
Rabeb war Developer Advocate bei Nexmo, wo sie sich auf Cloud-Kommunikations-APIs konzentrierte und Entwicklern half, die bestmögliche Erfahrung bei der Entwicklung ihrer Apps zu machen. Rabeb schreibt nicht nur Code für ihren Lebensunterhalt, sondern setzt sich auch dafür ein, mehr Frauen und Minderheiten in die Technologiebranche zu bringen, und engagiert sich daher bei Women Who Code und verschiedenen Tech-Communities. Sie leitet das Women Who Code Network in Bristol.