
Teilen Sie:
Alex Lakatos ist ein JavaScript-Entwickler Advocate für Nexmo. In seiner Freizeit engagiert er sich bei Mozilla als Tech Speaker und Reps Mentor. Als JavaScript-Entwickler, der auf dem offenen Web aufbaut, verschiebt er jeden Tag dessen Grenzen. Wenn er nicht gerade in London programmiert, reist er gerne um die Welt, so dass man ihn wahrscheinlich in einer Flughafen-Lounge antrifft.
So verbinden Sie einen Telefonanruf mit Nexmo In-App Voice
Lesedauer: 3 Minuten
Die Nexmo Voice API ermöglicht es Ihnen, hochwertige programmierbare Voice Applications in der Cloud zu erstellen. Mit der Voice API können Sie ausgehende und eingehende Anrufe in JSON verwalten, Anrufe aufzeichnen und speichern, Telefonkonferenzen einrichten, Text-to-Speech-Nachrichten in 23 Sprachen mit verschiedenen Stimmen und Akzenten senden und so weiter.
Nexmo Stitch, ein neues Produkt, das sich derzeit in der Developer Preview befindet, ermöglicht die Kommunikation über mehrere Kanäle, einschließlich In-App Messaging und In-App Voice.
In diesem Beitrag lernen wir, wie man einen eingehenden Anruf von einer Nexmo-Telefonnummer an einen Stitch-Benutzer weiterleitet, indem man einen Webhook implementiert und diesen mit einer Nexmo Voice-Anwendung verknüpft.
Bevor wir beginnen, brauchen Sie ein paar Dinge:
Node.js auf Ihrem Rechner installiert
Installieren Sie die Nexmo Beta CLI:
Richten Sie die CLI so ein, dass sie Ihren Nexmo API-Schlüssel und Ihr API-Geheimnis verwendet. Sie können diese von der Einstellungsseite im Nexmo Dashboard:
$ nexmo setup api_key api_secret
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.
Weiterleitung eines Anrufs an einen Stitch-Benutzer
Wenn ein Benutzer eine virtuelle Nexmo-Telefonnummer anruft, die mit einer Voice-Applikation verbunden ist, ruft Nexmo die Nexmo Call Control Objects (NCCO) von Ihrem answer_url Webhook-Endpunkt ab. Wir werden versuchen, den Anruf mit einer synthetischen Stimme zu beantworten, die einen Text vorliest und dann den Anruf an einen Stitch-Benutzer weiterleitet. Wir werden das NCCO verwenden, um den Anruffluss zu erstellen.
Erstellen eines Webhook-Endpunkts
Ich bin ein JavaScript-Mensch, also werde ich den Webhook mit Node und ExpressJS. Wenn Sie eine andere Sprache bevorzugen, können Sie auch eine andere verwenden - es gibt Nexmo-Client-Bibliotheken für JavaScript, Java, Python, PHP, Ruby, und .NET!
Wir müssen ein paar Dinge installieren:
$ npm install express body-parser --saveErstellen Sie eine index.js Datei, instanziieren Sie express und body-parser und hören Sie den Server auf Port 3000 ab.
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
const server = app.listen(3000, () => {
console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});
Fügen wir einen Endpunkt für /event der alle von der Nexmo-Anwendung kommenden Ereignisse protokolliert:
app.post('/event', (req, res) => {
console.log(req.body);
res.status(200).end();
});
Wir brauchen auch einen Endpunkt für /answerder auf HTTP-GET-Anfragen antwortet und den NCCO liefert, wenn die Nexmo-Anwendung die answer_url. Wir verwenden einen talk Baustein verwenden, so dass der Aufruf Text-to-Speech generiert, der den Benutzer wissen lässt, dass er anruft Jamie, gefolgt von einem connect Block. Wir müssen einen speziellen rtc Typ zum Endpunkt hinzufügen, um den Anruf mit einem bestehenden Stitch-Benutzer zu verbinden. Sie können Ihre eigene Telefonnummer in das from Feld hinzufügen.
app.get('/answer', (req, res) => {
var ncco = [
{
action: "talk",
text: "Thank you for calling Jamie"
},
{
"action": "connect",
"from": "449876543210",
"endpoint": [
{
"type": "rtc",
"user": "jamie"
}
]
}
];
res.json(ncco);
})
Starten wir nun den Server:
$ node index.jsWährend Sie entwickeln, können Sie den Server lokal betreiben und ngrok verwenden, um den Server im Internet öffentlich zugänglich zu machen, damit Nexmo ihn erreichen kann. Wir haben ein Anleitung, wie man das macht!
Jetzt müssen wir den Webhook mit einer Nexmo-Anwendung verbinden. Ich gehe davon aus, dass Sie bereits eine haben und zeige Ihnen, wie Sie diese Anwendung aktualisieren, um den gerade erstellten Webhook zu verwenden.
Aktualisieren Sie Ihre bestehende Anwendung mit Webhook-URLs
Sie benötigen die Anwendungs-ID, um die Informationen zu aktualisieren. Sie können den app:list Befehl mit der Nexmo CLI verwenden:
$ nexmo app:listDie Befehlszeilenschnittstelle sollte eine Liste der einzelnen Anwendungs-IDs und einen Anwendungsnamen zurückgeben. Verwenden Sie nun die richtige Anwendungs-ID, um die Anwendung mit den Webhook-URLs zu aktualisieren:
$ nexmo app:update aaaaaaaa-bbbb-cccc-dddd-0123456789ab "My Voice App" https://6e5c2f7a.ngrok.io/answer https://6e5c2f7a.ngrok.io/eventSchließlich müssen Sie Ihre Anwendung mit der virtuellen Nummer verknüpfen, die Sie bei Nexmo gemietet haben. Lassen Sie uns wieder die Nexmo CLI verwenden. Verwenden Sie den Befehl nexmo link:app gefolgt von der Telefonnummer, die mit einer Landesvorwahl beginnen muss, und dann die App-ID. Der Befehl sollte also wie folgt aussehen:
$ nexmo link:app 449876543210 aaaaaaaa-bbbb-cccc-dddd-0123456789abWenn die Verknüpfung erfolgreich ist, gibt die CLI die Meldung "Number updated" aus.
Schlussfolgerung
Nun, da Sie Ihre Nummer mit Ihrer Anwendung verknüpft haben, werden Sie bei jedem Anruf Ihrer Nexmo-Nummer über In-App Voice mit einem Stitch-Nutzer verbunden. Wenn du das ausprobieren möchtest, kannst du dir die JavaScript Anleitung ansehen, die beschreibt, wie Sie Anrufe mit den Stitch SDKs implementieren können.
Was kommt als Nächstes?
Wenn Sie weiter lernen möchten, wie man das Nexmo Stitch SDK für JavaScript verwendet, schauen Sie sich unsere In-App Messaging Schnellstarts an, in denen wir Ihnen zeigen, wie man eine einfache Konversation erstellen, Einladen und Chatten mit einem anderen Benutzer und mehr Ereignis-Listener verwenden um den Chatverlauf anzuzeigen und wenn ein Benutzer tippt. Wenn Sie weitere Fragen zur Verwendung von Stitch haben, können Sie sich gerne an der Nexmo-Gemeinschaft slack und schauen Sie sich unseren #stitch Kanal oder schreiben Sie uns direkt eine E-Mail an ea-support@nexmo.com..
Teilen Sie:
Alex Lakatos ist ein JavaScript-Entwickler Advocate für Nexmo. In seiner Freizeit engagiert er sich bei Mozilla als Tech Speaker und Reps Mentor. Als JavaScript-Entwickler, der auf dem offenen Web aufbaut, verschiebt er jeden Tag dessen Grenzen. Wenn er nicht gerade in London programmiert, reist er gerne um die Welt, so dass man ihn wahrscheinlich in einer Flughafen-Lounge antrifft.
