
Teilen Sie:
Ben ist ein Entwickler im zweiten Beruf, der zuvor ein Jahrzehnt in den Bereichen Erwachsenenbildung, Community-Organisation und Non-Profit-Management tätig war. Er arbeitete als Anwalt für Entwickler bei Vonage. Er schreibt regelmäßig über die Überschneidung von Gemeindeentwicklung und Technologie. Ursprünglich aus Südkalifornien stammend und lange Zeit in New York City ansässig, wohnt Ben jetzt in der Nähe von Tel Aviv, Israel.
Aufbau einer Telefonkonferenz mit der Nexmo Voice API und Ruby on Rails
Lesedauer: 8 Minuten
In diesem Walkthrough werden wir eine Ruby on Rails Anwendung für Telefonkonferenzen erstellen, die die Nexmo Voice API nutzt. In der Nexmo-Dokumentation wird eine Telefonkonferenz auch als Gesprächbezeichnet, und wir werden diese Begriffe austauschbar verwenden.
Sie finden den vollständigen Arbeitscode für dieses Beispiel auf GitHub.
Voraussetzungen
ngrok um unsere Rails-Anwendung nach außen hin sichtbar zu machen
Erstellen einer Telefonkonferenz mit Ruby on Rails
Wir werden die folgenden Aufgaben durchführen, um eine Telefonkonferenz ("Gespräch") mit der Nexmo Voice API zu erstellen:
Eine Rails-Anwendung erstellen
Unsere Anwendung extern zugänglich machen, damit Nexmo mit ihr kommunizieren kann
Einrichten eines Nexmo Accounts, Erwerb einer Nexmo Telefonnummer und Erstellung einer Nexmo Voice Applikation
Erstellen des Rails-Controllers und der Routes
Erstellen einer Rails-Anwendung
Führen Sie in der Befehlszeile Folgendes aus:
Mit dem obigen Befehl wird eine neue Rails-Anwendung mit PostgreSQL als Standarddatenbank erstellt.
Als nächstes installieren wir unsere Gem-Abhängigkeiten in unserer Anwendung. Wir tun dies, indem wir bundle install vom Terminal aus ausführen. Wir können auch rake db:migrate an dieser Stelle auch vom Terminal aus ausführen, um die Datenbank einzurichten. Wir werden die Datenbank in diesem Tutorial nicht verwenden, um die Daten aufrechtzuerhalten, aber Sie können diese Funktion zu Ihrer eigenen Anwendung hinzufügen, wenn Sie dies bevorzugen.
An dieser Stelle werden wir ngrok einrichten, um unsere extern zugängliche URL zu erhalten, die von Nexmo zur Kommunikation mit unserer Anwendung verwendet wird.
Offenlegung der Anwendung
Es gibt mehrere Möglichkeiten, unseren lokalen Entwicklungsserver von außen zugänglich zu machen, aber eine der einfachsten ist ngrok. Sie können lesen diesen Artikel für eine genauere Erklärung der Funktionsweise von ngrok. Für unsere Zwecke müssen wir es jedoch nur zum Laufen bringen und die URL kopieren, die es uns liefert.
Um ngrok zu starten, öffnen Sie ein neues Terminal-Fenster und führen Sie folgendes in der Kommandozeile aus:
Sie sehen nun eine ngrok-Protokollierungsschnittstelle in Ihrem Terminalfenster. Am oberen Rand der Schnittstelle befindet sich eine Zeile, die mit Forwarding beginnt und zwei URLs enthält. Die erste ist die von außen zugängliche ngrok-URL, die mit ngrok.io gefolgt von http://localhost:3000wobei es sich um Ihren lokalen Entwicklungsserver handelt. Wenn Sie oder Nexmo nun die ngrok.io URL kontaktieren, wird sie an Ihren lokalen Server weitergeleitet.
Stellen Sie sicher, dass Sie die ngrok.io URL an einem sicheren Ort speichern. Wir werden sie im nächsten Schritt verwenden, um unseren Nexmo Account, die Telefonnummer und die Voice Anwendung einzurichten.
Erstellen eines Nexmo Accounts mit Telefonnummer und Voice Application
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.
In diesem Lernprogramm wird auch eine virtuelle Telefonnummer verwendet. Um eine zu erwerben, gehen Sie zu Rufnummern > Rufnummern kaufen und suchen Sie nach einer Nummer, die Ihren Anforderungen entspricht.
Damit unsere Voice-Applikation funktioniert, benötigen wir einen Nexmo Account, eine von Nexmo bereitgestellte Telefonnummer, eine Nexmo Applikation und schließlich müssen wir unsere Applikation mit unserer Telefonnummer verknüpfen.
Klicken Sie im Menü auf der linken Seite auf den Voice menu Eintrag. Sie sehen dann die folgenden vier Optionen unter APPLICATIONS:

Klicken Sie auf die Option Create an application und Sie werden auf eine Seite weitergeleitet, auf der Sie eine neue Nexmo-Anwendung einrichten können.
Füllen Sie das Formular mit den folgenden Angaben aus:
Application nameTextfeld eingebenconference-call-demoEvent URLTextfeld Ihre ngrok-URL ein:https://[ngrok url here]/eventAnswer URLTextfeld erneut Ihre ngrok-URL ein:https://[ngrok url here]/webhooks/answer
Wenn Sie fertig sind, klicken Sie auf die blaue Create Application Schaltfläche.
Sie haben nun eine Nexmo Voice Anwendung erstellt. Der nächste Schritt besteht darin, eine Nexmo-Telefonnummer zu erwerben und sie mit dieser Anwendung zu verknüpfen.
Klicken Sie auf dem Nexmo Dashboard auf den Menüpunkt Numbers Menüpunkt im linken Menü. Es werden drei Optionen angezeigt:

Klicken Sie auf die Option Buy numbers und Sie werden auf eine Seite weitergeleitet, auf der Sie das Land, die Merkmale, den Typ und die vier Ziffern, die die Nummer haben soll, auswählen können.

Für unsere Zwecke: Wählen Sie das Land, in dem Sie sich gerade befinden, so dass der Anruf für Sie ein Ortsgespräch ist; wählen Sie Voice für die Merkmale und entweder Handy oder Festnetz für den Typ. Für das Textfeld brauchen Sie nichts einzugeben. Number Textfeld eingeben. Wenn Sie auf Searchklicken, wird eine Liste der verfügbaren Telefonnummern angezeigt.
Wählen Sie eine aus, indem Sie auf die orangefarbene Buy klicken und bei der Sicherheitsabfrage erneut auf die orangefarbene Buy in der Bestätigungsaufforderung noch einmal.
Sobald Sie die Nummer besitzen, können Sie sie mit Ihrer conference-call-demo Voice-Anwendung verknüpfen. Klicken Sie dazu auf das Zahnrad-Symbol neben der Telefonnummer und Sie sehen das folgende Menü:

Wählen Sie die conference-call-demo Anwendung aus der Dropdown-Liste und klicken Sie auf die blaue Ok Schaltfläche. Ihre Nexmo-Telefonnummer ist nun mit Ihrer Voice-Anwendung verknüpft und bereit, eingehende Anrufe über Voice-Proxy anzunehmen und weiterzuleiten.
Unser letzter Schritt, bevor wir unsere Anwendung starten können, ist die Definition unserer Rails-Controller-Aktionen und -Routen.
Rails Controller und Routes erstellen
Erstellen Sie nun eine Controller-Datei mit dem Namen conference_controller.rb in /app/controllers/. Innerhalb des Controllers werden wir eine einzelne Controller-Aktion definieren. Die Aktion wird das Nexmo Anrufsteuerungsobjekt (NCCO) Anweisungen für die Erstellung der Telefonkonferenz.
# conference_controller.rb
class ConferenceController < ApplicationController
skip_before_action :verify_authenticity_token
def answer
render json:
[
{
:action => 'talk',
:text => 'Welcome to the Nexmo powered conference call'
},
{
:action => 'conversation',
:name => 'nexmo-conversation'
}
].to_json
end
def event
end
end
Die in der obigen Methode definierte NCCO-Anweisung #answer Methode definiert ist, enthält zwei Aktionen:
Begrüßen Sie den Anrufer mit einer
talkAktionSchalten Sie den Anrufer in die Telefonkonferenz, auch als
conversation.
Der Name des conversation in der zweiten Aktion des NCCO wird an dieser Stelle definiert. Er kann beliebig genannt werden, und wenn er einmal definiert ist, können alle nachfolgenden Aufrufer auf ihn verwiesen werden. Außerdem können alle anderen NCCO conversation Optionen für diese Telefonkonferenz definiert werden, indem man auf den conversation Namen.
Zum Schluss müssen wir die Routen in routes.rb definieren, damit unsere Rails-Anwendung weiß, wohin sie die Nexmo GET Anfrage weiterleitet und wohin POST die Status-Updates, die unsere Anwendung von der Nexmo-API erhält. Öffnen Sie nun /config/routes.rb und fügen Sie das Folgende hinzu:
# routes.rb
get '/webhooks/answer', to: 'conference#answer'
post '/event', to: 'conference#event'Sie werden feststellen, dass die Pfade für die GET und POST Anfragen die gleichen URLs sind, die wir bei der Einrichtung unserer Nexmo Voice Anwendung im Nexmo Dashboard angegeben haben.
Unsere Bewerbung ist einsatzbereit! Herzlichen Glückwunsch!
Ausführen der Anwendung
Um Ihre Anwendung auszuführen, müssen Sie lediglich in der Befehlszeile Folgendes ausführen:
Dadurch wird Ihr Rails-Server gestartet. Stellen Sie in einem anderen Terminalfenster sicher, dass ngrok ebenfalls läuft. Rufen Sie nun Ihre Nexmo-Telefonnummer an und Sie werden hören, wie Ihre Anwendung Ihnen sagt: "Willkommen bei der von Nexmo betriebenen Telefonkonferenz". Sie können andere Personen zur Teilnahme an Ihrer Telefonkonferenz einladen, indem Sie ihnen die Telefonnummer mitteilen.
Weitere Lektüre
Wenn Sie Interesse haben, mehr zu erfahren und zu lesen, sollten Sie sich die folgenden Informationen ansehen:
Teilen Sie:
Ben ist ein Entwickler im zweiten Beruf, der zuvor ein Jahrzehnt in den Bereichen Erwachsenenbildung, Community-Organisation und Non-Profit-Management tätig war. Er arbeitete als Anwalt für Entwickler bei Vonage. Er schreibt regelmäßig über die Überschneidung von Gemeindeentwicklung und Technologie. Ursprünglich aus Südkalifornien stammend und lange Zeit in New York City ansässig, wohnt Ben jetzt in der Nähe von Tel Aviv, Israel.
