Aufbau eines einfachen IVR mit Sprach- und Tastatureingabe
Eine Interaktive Sprachausgabe (IVR) ermöglicht es Ihnen, Telefoninteraktionen zu automatisieren, indem Sie Anrufern ein Menü mit Optionen anbieten. Während herkömmliche IVRs auf Tastatureingaben (DTMF) eingeben, enthalten moderne Systeme häufig Sprache-zu-Text (ASR) für eine natürlichere Benutzererfahrung. Sie können sich auf die Erweiterte IVR Leitfaden für weitere Einzelheiten.
In dieser Anleitung werden Sie eine Node.js-Anwendung erstellen, die einen Anruf entgegennimmt und den Benutzer auffordert, entweder eine Taste zu drücken oder zu sprechen. Die Anwendung wird dann diese Eingabe an den Anrufer zurückgeben.
Voraussetzungen
- Ein Vonage API-Konto. Kostenlos anmelden.
- Node.js auf Ihrem Rechner installiert.
- ngrok auf Ihrem Rechner installiert.
Initialisieren Sie Ihren Projektordner
Bevor Sie Ihre Vonage-Ressourcen konfigurieren, legen Sie einen Speicherort für Ihren Code an. Dadurch wird sichergestellt, dass Sie später ein Ziel für Ihre Sicherheitsschlüssel haben.
Bereitstellung Ihrer Vonage-Ressourcen
Konfigurieren Sie Ihre Umgebung mit der Option Vonage API Dashboard.
Erstellen einer Sprachanwendung
- Navigieren Sie zu Applications > Erstellen Sie eine neue Anwendung.
- Geben Sie Ihrer Anwendung einen Namen (z. B. Simple-IVR-Speech-DTMF).
- Unter Fähigkeitenaktivieren Stimme.
- Lassen Sie vorerst die Antwort-URL und Ereignis-URL leer. Wir werden diese ausfüllen, sobald wir unsere ngrok-Adresse haben. Ihre App offenlegen und verbinden Schritt.
- Klicken Sie auf Öffentlichen und privaten Schlüssel generieren.
- Verschieben Sie die heruntergeladenen
private.keyDatei in Ihren simple-ivr-Projektordner. - Klicken Sie auf Änderungen speichern.
Verknüpfung einer virtuellen Number
- Navigieren Sie zu Numbers > Numbers kaufen und mieten Sie eine Nummer mit Stimme Fähigkeiten.
- Zurück zu Ihre Applicationswählen Sie Ihre IVR-Anwendung und verknüpfen Sie die neue Nummer damit.
Eingehende Anrufe abwickeln
Wenn ein Benutzer Ihre Nummer anruft, fordert Vonage einen NCCO (Steuerungsobjekt aufrufen) von Ihrer Antwort-URL. Erstellen Sie eine Datei mit dem Namen index.js und fügen Sie den folgenden Code hinzu:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
// 1. Initial greeting and input request
app.get('/webhooks/answer', (req, res) => {
const ncco = [
{
action: 'talk',
text: 'Hello. Please enter a digit or say something.',
bargeIn: true
},
{
action: 'input',
type: ['dtmf', 'speech'],
dtmf: { maxDigits: 1 },
speech: { language: 'en-us' },
eventUrl: [`${req.protocol}://${req.get('host')}/webhooks/input`]
}
];
res.json(ncco);
});
Verarbeitung von Sprach- und DTMF-Eingaben
Fügen Sie den Input-Handler zu Ihrem index.js um die Nutzdaten zu verarbeiten, die Vonage zurückschickt, sobald der Benutzer mit dem Menü interagiert.
// 2. Handle the user's response
app.post('/webhooks/input', (req, res) => {
let responseText = "I'm sorry, I didn't catch that.";
if (req.body.dtmf && req.body.dtmf.digits) {
responseText = `You pressed ${req.body.dtmf.digits}.`;
}
else if (req.body.speech && req.body.speech.results) {
const transcript = req.body.speech.results[0].text;
responseText = `You said: ${transcript}.`;
}
res.json([{ action: 'talk', text: responseText }]);
});
// 3. Log call events
app.post('/webhooks/events', (req, res) => {
res.sendStatus(200);
});
app.listen(3000, () => console.log(`IVR server running on port 3000`));
Ihre App offenlegen und verbinden
Da Vonage Ihren lokalen Server erreichen muss, müssen Sie ihn für das Internet freigeben und Ihre Applications-Einstellungen aktualisieren.
- Starten Sie Ihren Server:
node index.js. - Starten Sie ngrok: Führen Sie in einem neuen Terminal
ngrok http 8080. - Webhooks aktualisieren:
- Kopieren Sie die von ngrok bereitgestellte URL (z.B.,
https://{random id}.ngrok.app). - Kehren Sie zu Ihrer Applikation im Vonage Dashboard zurück.
- Fügen Sie die URL in die Antwort-URL ein (mit dem Zusatz
/webhooks/answer) und Ereignis-URL (Anhängen von/webhooks/events). - Klicken Sie auf Änderungen speichern.
- Kopieren Sie die von ngrok bereitgestellte URL (z.B.,
Testen Sie die IVR
Rufen Sie Ihre Vonage-Nummer an:
- Ziffernblock: Drücken Sie 1. Die IVR sollte sagen, Sie haben die 1 gedrückt.
- Die Rede: Sagen Sie Hallo. Die IVR sollte sagen, Sie sagten: Hallo.
Nächste Schritte
- Anrufe weiterleiten: Hinzufügen einer
connectAktion zur Verbindung des Anrufers mit der zuständigen Abteilung auf der Grundlage der Benutzereingabe über Rufnummer, SIP-Endpunkt oder Ihre Webanwendung unter Verwendung des Client SDK. - Aufzeichnung von Anrufen: Aufzeichnung und Transkription das Gespräch mit
recordAktion. - Sprach-KI: Übergeben Sie Benutzereingaben an Ihren KI-Agenten um dem Anrufer wertvolle Informationen zu liefern.
- Anpassungen: Ändern Sie Text-to-Speech Stimme oder verwenden Sie die Strom Aktion in Ihrem NCCO, um voraufgezeichnete MP3-Dateien anstelle von Text-to-Speech abzuspielen.