Einfache IVR (Interaktive Sprachausgabe)

Um den Benutzern Selbstbedienungsfunktionen zur Verfügung zu stellen oder ihnen zu helfen, schneller relevante Unterstützung zu erhalten, möchten Sie vielleicht eine Interactive Voice Response (IVR)-Anwendung erstellen. Diese Anleitung zeigt, wie man eine einfache IVR mit Tastatureingabe erstellt (DTMF). Für fortgeschrittene IVR, die Spracheingabe nutzen (Sprache-zu-Text), lesen Sie den nächsten Leitfaden, Erweiterte IVR.

Mit Vonage AI Studio können Sie auch ohne Programmierung eine einfache oder fortgeschrittene IVR erstellen, indem Sie einen visuellen Anrufablauf und TTS-, STT- und NLU-Funktionen erstellen. Prüfen Sie die AI Studio Dokumentation um mehr zu erfahren.

Schnellstart

Sie können den Code Hub verwenden Interaktive Sprachausgabe (IVR) Vorlage, um die Beispielanwendung zum Laufen zu bringen, ohne sich um die Installation von Tools und Abhängigkeiten kümmern zu müssen. Sehen Sie sich dieses kurzes Video an, um zu erfahren, wie es geht, und folgen Sie den Anweisungen der Code Hub-Vorlage für einen schnellen Start.

Einrichten für IVR

Um diesen Leitfaden durcharbeiten zu können, benötigen Sie:

  • A Vonage-Konto.
  • Die Vonage CLI installiert und eingerichtet werden.
  • Ein öffentlich zugänglicher Webserver, damit Vonage Webhook-Anfragen an Ihre Anwendung stellen kann, oder für die lokale Entwicklung empfehlen wir empfehlen wir ngrok.
  • Die Codeklonen Sie entweder das Repository oder laden Sie die entpacken Sie die Zip-Datei auf Ihren Rechner.
  • Lernen Sie, wie man ngrok

Abhängigkeiten installieren

Installieren Sie die express Web Application Framework und body-parser Pakete:

npm install express body-parser

Erstellen einer Sprachanwendung

Verwenden Sie die CLI, um eine Voice API-Anwendung mit dem Webhaken der für die Beantwortung eines Anrufs Anruf auf Ihrer Vonage-Nummer (/webhooks/voice/answer) und die Protokollierung von Anrufereignissen (/webhooks/voice/event), beziehungsweise.

Diese Webhooks müssen von den Vonage-Servern aus zugänglich sein, daher werden Sie in dieser Anleitung die ngrok um Ihre lokale Entwicklungsumgebung Entwicklungsumgebung mit dem öffentlichen Internet zu verbinden. Dieser Artikel erklärt, wie man installiert und ausführen ngrok und konfigurieren Sie Vonage für das Senden von Anfragen.

Wenn Sie noch keine Anwendung haben, können Sie eine mit Hilfe der CLI erstellen

Der Befehl gibt eine Anwendungs-ID zurück (die Sie sich notieren sollten) und Ihre privaten Schlüsselinformationen (die Sie für die Zwecke dieses Leitfadens getrost ignorieren können).

ausführen. ngrok mit dem folgenden Befehl:

ngrok http 3000

Notieren Sie sich den temporären Hostnamen, den ngrok zur Verfügung stellt, und verwenden Sie es anstelle von example.com in folgendem Befehl:

Eine Telefonnummer kaufen

Um eingehende Anrufe zu Ihrer Anwendung zu bearbeiten, benötigen Sie eine Number von Vonage. Wenn Sie bereits eine Nummer haben, die Sie verwenden möchten, springen Sie zum nächsten Abschnitt, um die vorhandene Nummer mit Ihrer Anwendung zu verknüpfen.

Sie können die Vonage CLI um die Rufnummer zu kaufen:

Suche nach einer Number

Sie können eine Nummer über die Vonage CLI erwerben. Der folgende Befehl sucht nach einer gekauften Nummer (geben Sie einen alternativen zweistelligen Ländercode zum Kauf einer Nummer in einem anderen Land).

Eine Nummer kaufen

Wenn Sie eine Nummer gefunden haben, mit der Sie zufrieden sind, können Sie diese über die vonage numbers buy Befehl:

Verknüpfung der Nummer mit Ihrer Bewerbung

Sobald Sie eine geeignete Nummer haben, können Sie diese mit Ihrer Vonage-Anwendung verknüpfen. Führen Sie dazu folgenden Befehl aus

Die Parameter sind die Telefonnummer, die Sie verwenden möchten, und die UUID, die zurückgegeben wird, wenn Sie eine Sprachanwendung erstellt früher.

Eingehende Anrufe abwickeln

Wenn Vonage einen eingehenden Anruf an Ihre Vonage-Nummer erhält, stellt es eine Anfrage an den Ereignis-Webhook-Endpunkt, den Sie wenn Sie eine Sprachanwendung erstellt. Ein Webhook wird auch jedes Mal gesendet, wenn DTMF Eingabe wird vom Benutzer gesammelt.

YOUR_URL/answer Route sollte eine HTTP

GET
-Anfrage akzeptieren und eine Nexmo Call Control Objekt (NCCO) die Vonage mitteilt, wie der Anruf behandelt werden soll.

Ihr NCCO sollte die talk Aktion zur Begrüßung des Anrufers und die input um das Abhören von DTMF-Befehlen zu starten:

app.get('/webhooks/voice/answer', (req, res) => {
  const ncco = [
    {
      action: 'talk',
      bargeIn: true,
      text: 'Hello. Please enter a digit.'
    },
    {
      action: 'input',
      dtmf: {
        maxDigits: 1,
        timeout: 10
      }
    }
  ];

  res.json(ncco)
})

Ereignisse handhaben

Vonage stellt jedes Mal eine

POST
-Anforderung an diesen Endpunkt, wenn sich der Anrufstatus ändert. DTMF-Ziffern werden an dieselbe Route gesendet, wenn Sie keine spezielle Ereignis-URL für die Eingabeaktion angeben, also lassen Sie uns mit Benutzer input hier:

app.post('/webhooks/voice/event', (req, res) => {
  if (req.body.dtmf) {
    const ncco = [{
      action: 'talk',
      text: `You pressed ${req.body.dtmf.digits}`
    },
    {
      action: 'input',
      dtmf: {
        maxDigits: 1,
        timeout: 10
      }
    }];
  
    res.json(ncco);
    return
  } 
  
  console.log(req.body);
  res.send(200);
});

Erstellen Sie Ihren Node.js-Server

Schreiben Sie schließlich den Code, um Ihren Node.js-Server zu instanziieren:

const port = 3000
app.listen(port, () => console.log(`Listening on port ${port}`))

Testen Sie Ihre Applikation

  1. Führen Sie Ihre Node.js-Anwendung aus, indem Sie den folgenden Befehl ausführen:
node index.js
  1. Rufen Sie Ihre Vonage-Nummer an und hören Sie sich die Begrüßungsansage an.
  2. Drücken Sie eine Ziffer auf dem Tastenfeld.
  3. Hören Sie die Ziffer, die Sie zurückgedrückt haben.

Nächste Schritte

Hier finden Sie einige weitere Ressourcen, die für die Erstellung dieser Art von Anwendungen nützlich sein könnten: