https://d226lax1qjow5r.cloudfront.net/blog/blogposts/build-a-conference-call-with-the-nexmo-voice-api-and-ruby-on-rails-dr/ruby-conference-call-1.png

Aufbau einer Telefonkonferenz mit der Nexmo Voice API und Ruby on Rails

Zuletzt aktualisiert am May 14, 2021

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

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:

  1. Eine Rails-Anwendung erstellen

  2. Unsere Anwendung extern zugänglich machen, damit Nexmo mit ihr kommunizieren kann

  3. Einrichten eines Nexmo Accounts, Erwerb einer Nexmo Telefonnummer und Erstellung einer Nexmo Voice Applikation

  4. Erstellen des Rails-Controllers und der Routes

Erstellen einer Rails-Anwendung

Führen Sie in der Befehlszeile Folgendes aus:

rails new rails-conference-call --database=postgresql

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:

ngrok http 3000

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:

Voice menu options

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 name Textfeld eingeben conference-call-demo

  • Event URL Textfeld Ihre ngrok-URL ein: https://[ngrok url here]/event

  • Answer URL Textfeld 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:

Number menu options

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.

buy numbers

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ü:

conference call

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:

  1. Begrüßen Sie den Anrufer mit einer talk Aktion

  2. Schalten 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:

rails s

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:

https://a.storyblok.com/f/270183/384x384/e5480d2945/ben-greenberg.png
Ben GreenbergVonage Ehemalige

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.