
Teilen Sie:
Julia hat es sich zur Aufgabe gemacht, andere Entwickler durch die Erstellung von Tutorials, Anleitungen und praktischen Ressourcen zu unterstützen. Mit ihrem Hintergrund in den Bereichen Öffentlichkeitsarbeit und Bildung möchte sie Technologien zugänglicher machen und die Erfahrung von Entwicklern insgesamt verbessern. Man kann sie oft bei lokalen Veranstaltungen antreffen.
Erstellen Sie eine Telefonkonferenz mit Node-RED
Lesedauer: 13 Minuten
Hinweis: Einige der in diesem Artikel beschriebenen Tools oder Methoden werden möglicherweise nicht mehr unterstützt oder sind nicht mehr aktuell. Für aktualisierte Inhalte oder Support, überprüfen Sie unsere neuesten Beiträge oder kontaktieren Sie uns auf dem Vonage Community Slack
Unter früheren Tutorials, hatten Sie die Möglichkeit, die Welt der Nexmo-APIs kennenzulernen, indem Sie Telefonanrufe mit der Voice APIund hoffentlich auch die Möglichkeit, diese Erfahrungen anzupassen.
Im heutigen Tutorial gehen wir noch einen Schritt weiter und bauen einen sprachbasierten Konferenzdienst auf.
Der Nutzer ruft eine vordefinierte virtuelle Nummer an und gibt über die Wähltastatur eine Meeting-ID ein. Dann wird er in dieselbe Telefonkonferenz mit allen anderen Teilnehmern geschaltet, die dieselbe ID angegeben haben.
Schritte:
Voraussetzungen
Öffnen Sie Ihren lokalen Server für das Internet
Definieren Sie den Webhook-Endpunkt für eingehende Anrufe
Definieren Sie den Webhook-Endpunkt für das Eingabeereignis
Erstellen einer Nexmo Voice Applikation
Einrichten einer Nummer zum Anrufen
Handle Your Call Events
Probieren Sie es aus!
Voraussetzungen
Bevor Sie beginnen, benötigen Sie einige Dinge:
Eine Möglichkeit, Ihren Server dem Internet auszusetzen. Das bedeutet entweder, dass Sie eine gehostete Version von Node-RED verwenden, oder, falls Sie lokal entwickeln, einen Tunneldienst wie ngrok-sie können sich damit auf den neuesten Stand bringen Erste Schritte mit Ngrok in Node-RED Lehrgang
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.
Erlangung von Berechtigungsnachweisen
Um mit der Voice API zu interagieren, müssen Sie ein paar Dinge beachten. Sobald Sie einen Nexmo Account erstellt haben, gehen Sie auf das Dashboard um Ihren API-Schlüssel und Ihr Geheimnis zu finden.
Als nächstes benötigen Sie ein Voice-aktivierte virtuelle Nummer. Gehen Sie zu Numbers > Numbers kaufen um eine zu erhalten.
Buy number Nexmo dashboard
Einrichten des Node-RED-Editors
Zunächst müssen Sie installieren die Laufzeitumgebung und den Editor installieren. Dies kann entweder auf Ihrem lokalen Rechner, auf einem Einplatinencomputer (z. B. Raspberry Pi) oder über verschiedene in der Cloud gehostete Optionen erfolgen. In diesem Beispiel wird Ihr lokaler Rechner verwendet. Sobald Sie Node-RED global installiert haben, geben Sie den folgenden Befehl in Ihr Terminal ein, um loszulegen.
Sie können dann auf den Node-RED-Editor zugreifen, indem Sie Ihren Browser auf http://localhost:1880.
Sobald Sie Ihren Editor geöffnet haben, müssen Sie die Nexmo-Knoten installieren. Dies können Sie unter der Palette verwalten tun, indem du nach dem node-red-contrib-nexmo Paket suchen und auf Installieren klicken.
Jetzt sollten alle Nexmo-Knoten auf der linken Seite Ihres Bildschirms erscheinen - in Ihrer Knotenpalette, neben anderen Standardknoten.
Öffnen Sie Ihren lokalen Server für das Internet
Die Nexmo-API benötigt Zugriff auf Ihre Webhooks, um diese aufrufen zu können, also lassen Sie uns sie über das öffentliche Internet zugänglich machen. Wenn Sie Node-RED auf einem öffentlichen Webserver statt auf Ihrem lokalen Rechner laufen lassen, sind Sie bereit für den nächsten Schritt Erstellen einer Nexmo Voice Applikation Schritt.
Andernfalls kann man dies bequem mit einem Tunneldienst wie ngrok.
Zunächst müssen Sie den Ngrok-Knoten installieren. Dazu öffnen Sie Palette Verwalten aus dem Hamburger-Menü in Ihrem Node-RED-Editor, suchen Sie nach dem node-red-contrib-ngrok Paket und klicken Sie auf Installieren. Nach einem Neustart des Editors sollte der ngrok Knoten in der Knotenpalette erscheinen.
ngrok manage palette
Der Knoten ngrok Knoten nimmt die Zeichenketten auf oder aus als Eingabe, um den Tunnel zu starten/stoppen, und gibt die ngrok-Hostadresse als msg.payload.
Der einfachste Weg, dies einzurichten, ist die Verkabelung von zwei inject Knoten als ngrok Knoten zu verbinden, einen mit der Nutzlast der Zeichenkette auf und der andere mit aus. Zur einfacheren Verwendung könnten Sie auch die Name dieser Knoten in den Knoteneigenschaften entsprechend einstellen, so dass klar ist, welche Funktionen sie haben. Um die Host-Adresse in der Debug-Seitenleiste anzuzeigen, verbinden Sie einen debug Knoten nach ngrok.
Als letzter Schritt vor dem Drücken von Bereitstellendrücken, öffnen Sie die ngrok Knoteneigenschaften und geben Sie die Anschlussnummer an. Im Falle von Node-RED ist der Standardwert 1880. Die ngrok-Region ist standardmäßig USA, Sie können aber auch Europa oder Asien wählen. Sie können auch Ihr Authtoken für Ihr ngrok-Konto hinzufügen, wenn Sie eines haben. Wenn Sie keinen haben, können Sie diesen Schritt auch überspringen. Der Knoten gibt eine Warnung aus, dass er nicht vollständig konfiguriert ist, aber das ist kein Problem.
ngrok node properties
Und schon sind Sie fertig! Sobald Sie auf Bereitstellen und klicken Sie auf den auf inject klicken, navigieren Sie zu der im Debug-Bereich angezeigten URL (YOUR_URL für zukünftige Referenzen), um Ihren Node-RED-Editor unter einer öffentlichen Adresse zu finden.
ngrok node-red
Definieren Sie den Webhook-Endpunkt für eingehende Anrufe
Nexmo-Anrufe werden gesteuert durch Nexmo Anrufsteuerungs-Objektedie auch als NCCOs bezeichnet werden. Ein NCCO definiert eine Liste von Aktionen, die bei der Bearbeitung eines Anrufs ausgeführt werden. Es gibt viele verschiedene Aktionen; finden Sie die entsprechenden Knoten in der Nexmo-Palette in Ihrem Node-RED-Editor oder lesen Sie die NCCO-Referenz um mehr über sie zu erfahren.
Wenn Sie eingehende Anrufe bearbeiten, müssen Sie Ihr NCCO unter einer Antwort-URL. In diesem Fall werden wir eine talk Aktion, um nach der Meeting-ID zu fragen, und dann eine input Aktion, um sie zu sammeln.
Fügen Sie einen voice webhook Eingabeknoten zu Ihrem Canvas hinzu, gefolgt von einem talk Knoten, einem input Knoten und einem return NCCO Ausgangsknoten.
Als nächstes wählen Sie im Knoten voice webhook Knoten, wählen Sie GET als Method und geben Sie /answer in das Feld Antwort-URL ein.
In den talk Knoteneigenschaften setzen Sie das Feld Text{} die Nachricht ein, die bei der Annahme des Anrufs vorgelesen werden soll. Z. B. "Bitte geben Sie die Besprechungs-ID ein". Sie können auch eine Voice Namesiehe die Text-to-Speech-Anleitung für die vollständige Liste der Optionen.
Öffnen Sie schließlich den input Knoteneditor, setzen Sie YOUR_URL/input als den URL {} und POST als Method.
Zu diesem Zeitpunkt können Sie auch eine Reihe anderer Parameter einstellen, um das Erlebnis noch weiter anzupassen:
| Name | Description |
|---|---|
Submit On Hash: |
Set to true so the caller's activity is sent to your webhook endpoint at YOUR_URL/input after they press #. If # is not pressed the result is submitted after Time Out seconds. The default value is false. |
Time Out: |
The result of the caller's activity is sent to the YOUR_URL/input webhook endpoint Time Out seconds after the last action. The default value is 3. Max is 10. |
Max Digits: |
The number of digits the user can press. The maximum value is 20, the default is 4 digits. |
Weitere Informationen dazu finden Sie in der NCCO-Referenz.
conference answer url
Definieren Sie den Webhook-Endpunkt für das Eingabeereignis
Sie benötigen außerdem einen zweiten Endpunkt, um die DTMF-Eingabe des Benutzers zu erfassen und sie auf der Grundlage des eingegebenen Codes in eine Gespräch.
Fügen Sie einen weiteren voice webhook Eingabeknoten zu Ihrem Canvas hinzu, gefolgt von einem talk Knoten, einem conversation Knoten und einem return NCCO Ausgangsknoten.
voice webhook
In den voice webhook Knoteneigenschaften, wählen Sie POST als Methode und geben Sie /input in das Feld Antwort-URL ein.
Wenn Sie eine Verbindung zu einem debug Knoten anschließen, nachdem Sie den Ablauf beendet und ausgeführt haben, würden Sie die Parameter sehen, die an die /input URL ZURÜCKGEGEBEN:
| Name | Description |
|---|---|
uuid |
The unique ID of the Call leg for the user initiating the input. |
conversation_uuid |
The unique ID for this conversation. |
timed_out |
Returns true if this input timed out based on the value of Time Out. |
dtmf |
The numbers input by your caller, in order. |
In unserem Anwendungsfall versuchen wir, den dtmf Wert zu erhalten, da dies die vom Anrufer angegebene Besprechungs-ID ist.
Wenn wir uns die Debug-Seitenleiste für Abschlüsse genauer ansehen, sehen wir, dass sie in der dtmf Eigenschaft des call Objekts innerhalb des msg Objekt verschachtelt ist, so dass wir es als {{msg.call.dtmf}} in den anderen Knoten dieses Pfades.
dtmf debug
talk
Als nächstes öffnen Sie den talk Knoteneditor und setzen Sie das Feld Text{} die Nachricht ein, die vorgelesen werden soll, sobald der Anrufer die Besprechungs-ID eingibt.
Beachten Sie das {} Zeichen neben dem Text Zeichen, das zeigt, dass dieser Wert dynamisch gesetzt werden kann, indem Mustache-Vorlagegesetzt werden kann. Sie könnten also etwas verwenden wie Joining meeting {{msg.call.dtmf}}.
Fühlen Sie sich frei, die Erfahrung weiter zu personalisieren, indem Sie eine Voice Name oder durch die Verwendung von SSML-Tags
conversation
Wir verwenden die conversation Aktion, um eine Standardkonferenz zu erstellen, also ist der einzige Parameter, den wir setzen müssen Name {}. Wenn Sie die Konversationsaktion mit demselben Namen verwenden, wird dieselbe persistente Konversation wiederverwendet, daher ist es praktisch, sie nach der Besprechungs-ID zu benennen und auf {{msg.call.dtmf}} Die erste Person, die die der Konversation zugewiesene virtuelle Nummer anruft, erstellt diese.
conference conversation node
In Zukunft möchten Sie vielleicht noch einen Schritt weiter gehen und eine moderierte Konversation mit selektiver Audiokontrolle einrichten. Sehen Sie sich die NCCO-Referenz um mehr darüber zu erfahren.
Wenn Sie mit diesem Pfad fertig sind, sollte er in etwa so aussehen:
conference input url
Erstellen einer Nexmo Voice Applikation
Einige der Nexmo-APIs, einschließlich der Voice API, verwenden Nexmo Applications, um Sicherheits- und Konfigurationsinformationen zu speichern, die für die Verbindung mit Nexmo-Endpunkten benötigt werden.
In der Nexmo Node-RED-Palette gibt es mehrere Knoten, mit denen diese Applications erstellt werden können: getrecording, earmuff, mute, hangup, transfer, createcall, playaudio, playtts und playdtmf.
Ziehen Sie einen dieser Knoten in Ihren Arbeitsbereich und doppelklicken Sie dann darauf, um die Knoteneigenschaften zu öffnen.
Neben dem Nexmo Credentialswählen Sie "Neue nexmovoiceapp hinzufügen..." aus dem Dropdown-Menü und klicken Sie auf die Schaltfläche "Bearbeiten". Füllen Sie die untenstehenden Angaben aus und klicken Sie auf Create New Application.
| KEY | DESCRIPTION |
|---|---|
Name |
Choose a name for your Voice Application, for example Conference Call. |
API Key |
Your Nexmo API key, shown in your account overview. |
API Secret |
Your Nexmo API secret, shown in your account overview. |
Answer URL |
YOUR_URL/answer, you'll be hosting a Nexmo Call Control Object (NCCO) here. - more about this later on. |
Event URL |
YOUR_URL/event, you'll need to reference this when setting up the event handler. |
Node-RED erstellt dann eine neue Nexmo-Applikation auf Ihrem Account und füllt die Felder für die App-ID und den privaten Schlüssel aus, die Sie dann speichern können. Nach diesem Schritt können Sie den Nexmo-Knoten, den Sie verwendet haben, löschen, da ein nexmovoiceapp Konfigurationsknoten erstellt wurde, der alle Nexmo-Anmeldeinformationen enthält, die dieser Ablauf benötigt.
conference create voice app
Einrichten einer Nummer zum Anrufen
Als nächstes müssen Sie Ihre virtuelle Nummer mit dieser Anwendung verknüpfen.
Sie finden die soeben erstellte Voice Application in Ihrem Nexmo Dashboard, indem Sie zu Voice > Deine Applications.
Klicken Sie auf den Namen dieser Anwendung und dann unter dem Menüpunkt Numbers auf die Registerkarte Link neben der virtuellen Nummer, die Sie zuvor gemietet haben.
Falls die Nummer, die Sie verwenden möchten, bereits mit einer anderen App verknüpft ist, klicken Sie auf Nummer verwalten und konfigurieren Sie sie so, dass eingehende Anrufe an Ihre App weitergeleitet werden.
conference link number
Bonus-Tipp: Verwenden Sie einen comment Knoten, um die mit Ihrer Anwendung verknüpfte Nexmo-Nummer zu notieren, so haben Sie sie immer griffbereit.
Handle Your Call Events
Wenn Sie Ereignisse über den Verlauf Ihres Anrufs erhalten möchten, können Sie auch einen Ereignis-Webhook einrichten.
Verbinden Sie einen http Eingangsknoten mit einem http response Knoten, sowie mit einem debug Knoten, so dass Sie Ihre Aufrufereignisse im Debug-Bereich sehen können.
Im Knoten http Eingabeknoten, wählen Sie POST als eine Method und füllen Sie das Feld URL Feld mit /event.
Der Knoten http response Knoten sollte den Wert 200 setzen als Status codegesetzt sein, aber machen Sie sich keine Sorgen, dies ist auch der Standardwert.
conference final flow
Probieren Sie es aus!
Und das war's dann auch schon! Schnappen Sie sich einen oder mehrere Freunde und machen Sie eine Spritztour! Vergessen Sie nicht, einen Blick in den Debug-Bereich zu werfen, um die Ereignisse Ihrer Anrufe zu verfolgen. Viel Spaß!
Wie geht es weiter?
Ressourcen:
Versuchen Sie ein anderes Tutorial:
Teilen Sie:
Julia hat es sich zur Aufgabe gemacht, andere Entwickler durch die Erstellung von Tutorials, Anleitungen und praktischen Ressourcen zu unterstützen. Mit ihrem Hintergrund in den Bereichen Öffentlichkeitsarbeit und Bildung möchte sie Technologien zugänglicher machen und die Erfahrung von Entwicklern insgesamt verbessern. Man kann sie oft bei lokalen Veranstaltungen antreffen.
