Hinzufügen eines Anrufflüsters zu einem eingehenden Anruf

Telefonnummern sind in der Werbung allgegenwärtig: auf Plakatwänden, in Fernsehspots, auf Websites, in Zeitungen. Oft führen diese Numbers alle zum selben Callcenter, wo ein Mitarbeiter sich erkundigen muss, warum die Person anruft und wo sie die Werbung gesehen hat. die Werbung gesehen hat.

Bei der Verwendung von Anrufflüstern wird der Kontext des eingehenden Anrufs dem Callcenter-Mitarbeiter mitgeteilt, bevor er mit dem Anrufer verbunden wird. mit dem Anrufer verbunden wird. In diesem Leitfaden wird eine Anwendung vorgestellt, die diesen Ansatz umsetzt. Ein Benutzer ruft eine von zwei Numbers an. Die Anwendung nimmt den Anruf entgegen und der Anrufer hört eine Wartemeldung. In der Zwischenzeit tätigt die Anwendung auch einen Anruf einen Anruf an den Callcenter-Mitarbeiter, spielt je nach gewählter Nummer einen anderen Anrufflüsterer ab und verbindet dann mit dem eingehenden Anrufer zur Konferenz.

Die Beispiele sind in node.js mit express geschrieben, und Sie können den Code finden auf GitHub.

In diesem Leitfaden

Sie werden sehen, wie Sie einen Anrufflüsterer zu einem eingehenden Anruf hinzufügen können:

  • Wie es funktioniert - einen Überblick darüber, wer wen anruft und wie der Prozess in der Beispielanwendung abläuft.
  • Bevor Sie beginnen - die für diesen Leitfaden benötigten Anwendungen und Numbers einrichten.
  • Erste Schritte mit Code - das Repository klonen und die Anwendung zum Laufen bringen.
  • Code-Walkthrough - sich mit den Feinheiten der Anwendung vertraut machen.
  • Weitere Lektüre - sehen Sie sich einige andere Ressourcen an, die Sie vielleicht hilfreich finden.

Wie es funktioniert

OperativeApplicationVonage numberUserOperativeApplicationVonage numberUserWhen operativeanswersCallers are connectedUser calls either ofthe numbers linked to this Application/answerConnects to operative's number/answer_outboundAnnounces key informationabout original caller

Bevor Sie beginnen

Bevor wir den Code übernehmen und ausführen, müssen wir noch einige Dinge erledigen.

Anmeldung für Vonage

Registrieren Sie sich für ein Vonage API-Konto wenn Sie nicht bereits eine haben.

Einrichten der CLI

Dieser Leitfaden verwendet die Vonage Kommandozeilen-ToolÜberprüfen Sie daher, ob sie installiert ist, bevor Sie fortfahren.

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

vonage apps create 'Your application'

✅ Creating Application
Saving private key ... Done!
Application created

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
  None Enabled

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:

vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice `
  --voice-answer-url='https://example.com/webhooks/voice/answer' `
  --voice-event-url='https://example.com/webhooks/voice/event' `
  --voice-fallback-url='https://example.com/webhooks/voice/fallback'
  
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
 VOICE:
    Uses Signed callbacks: On
    Conversation TTL: 41 hours
    Leg Persistence Time: 6 days
    Event URL: [POST] https://example.com/webhooks/voice/event
    Answer URL: [POST] https://example.com/webhooks/voice/answer
    Fallback URL: [POST] https://example.com/webhooks/voice/fallback

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).

vonage numbers search US

✅ Searching for numbers

There is 1 number available for purchase in United States

Number       Type    Features         Monthly Cost  Setup Cost
-----------  ------  ---------------  ------------  ----------
16127779311  Mobile  MMS, SMS, VOICE  €0.900.00

Use vonage numbers buy to purchase.

Eine Nummer kaufen

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

vonage numbers buy US 16127779311 
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for0.90? [y/n] y

✅ Purchasing number
Number 16127779311 purchased

Number: 16127779311 
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: Not Set
Voice Callback Value: Not Set
Voice Status Callback: Not Set

Hinweis Für diesen Leitfaden benötigen Sie zwei Numbers

Erste Schritte mit Code

Der Code für dieses Projekt befindet sich auf GitHub. Diese besteht aus einem node.js-Projekt, das Express verwendet, und soll Ihnen ein funktionierendes Beispiel liefern, das Sie dann für Ihre eigenen Bedürfnisse anpassen können. eigene Bedürfnisse anpassen können.

Klonen Sie das Repository

Klonen Sie das Repository oder laden Sie es auf Ihren lokalen Rechner in ein neues Verzeichnis herunter.

Konfigurieren Sie die Einstellungen

Ihre Anwendung muss mehr über Sie und Ihre Anwendung wissen, bevor sie ausgeführt werden kann. Kopieren Sie die .env-example Datei auf .env und bearbeiten Sie diese neue Datei so, dass sie die von Ihnen gewünschten Einstellungen enthält:

  • CALL_CENTER_NUMBER: Die Telefonnummer, unter der der Callcenter-Mitarbeiter zu erreichen ist, z. B. Ihre Handynummer
  • INBOUND_NUMBER_1: Eine der Nummern, die Sie gekauft haben
  • INBOUND_NUMBER_2: Die andere Nummer, die Sie gekauft haben
  • DOMAIN: Der Domänenname des Ortes, an dem Ihre Anwendung ausgeführt werden soll, z. B. meiner: ff7b398a.ngrok.io

Installieren Sie die Abhängigkeiten

Führen Sie in dem Verzeichnis, in dem Sie den Code heruntergeladen haben, Folgendes aus npm install. Dies bringt Express und andere Abhängigkeiten die für dieses Projekt benötigt werden.

Starten Sie den Server

Wenn die Konfiguration abgeschlossen ist und die Abhängigkeiten vorhanden sind, ist Ihre Anwendung einsatzbereit! Starten Sie sie mit:

npm start

Standardmäßig läuft die Anwendung auf Port 3000. Wenn Sie Folgendes verwenden wollen ngrokkönnen Sie Ihren Tunnel jetzt in Betrieb nehmen.

Wenn sich der Name des ngrok-Tunnels ändert, denken Sie daran, die URLs Ihrer Anwendungen mit dem vonage apps capabilities update Befehl.

Probieren Sie es aus

Lassen Sie uns die Demo ausprobieren. Hierfür benötigen Sie zwei Telefone (eines für den "Anrufer" und eines für den "Callcenter-Mitarbeiter"). Sie müssen also eventuell einen Freund oder Skype benutzen, um den ersten Anruf zu tätigen.

  1. Rufen Sie eine der Nummern an, die Sie erworben haben.
  2. Der Anrufer hört eine Begrüßungsansage, dann klingelt die Rufnummer des Call Center-Mitarbeiters.
  3. Wenn der Callcenter-Mitarbeiter antwortet, hört er die "Flüsternachricht", bevor er mit dem ursprünglichen Anrufer verbunden wird. ursprünglichen Anrufer verbunden werden.
  4. Versuchen Sie das jetzt noch einmal, aber rufen Sie die andere Nummer an und hören Sie auf das andere "Flüstern".

Code-Walkthrough

Die Demo macht Spaß, aber wenn Sie daran interessiert sind, diese selbst zu bauen, dann gibt es einige wichtige Punkte, die Sie wahrscheinlich sehen wollen. Dieser Abschnitt befasst sich mit den wichtigsten Abschnitten des Codes für jeden Schritt des Prozesses, damit Sie herausfinden können wo die Dinge ablaufen und wie Sie diese Anwendung an Ihre Bedürfnisse anpassen können.

Den eingehenden Anruf annehmen und einen abgehenden Anruf starten

Jedes Mal, wenn jemand eine der Nummern anruft, die mit der Vonage-Anwendung verknüpft sind, erhält Vonage einen eingehenden Anruf. Vonage benachrichtigt dann Ihre Webanwendung über diesen Anruf. Dies geschieht durch eine Webhook-Anfrage Ihrer Webanwendung zu answer_url Endpunkt - in diesem Fall /answer. Wenn der Anruf entgegengenommen wird, verbindet die Anwendung den Anrufer mit dem Call-Center-Mitarbeiter.

lib/routes.js

app.get('/webhooks/voice/answer', (req, res) => {
  const  answer_url = 'http://'+process.env['DOMAIN']+'/on-answer'
  console.log(answer_url);

  res.json([
    {
      "action": "talk",
      "text": "Thanks for calling. Please wait while we connect you"
    },
    {
      "action": "connect",
      "from": req.query.to,
      "endpoint": [{
        "type": "phone",
        "number": process.env['CALL_CENTER_NUMBER'],
        "onAnswer": {"url": answer_url}
      }]
    }
  ]);
});

Hinweis: Werfen Sie einen Blick auf die Voice API-Referenz für weitere Informationen.

Die Antwort, die wir zurückgeben, ist ein Array von NCCOs (Nexmo Call Control Objects). Das erste ist die gesprochene Nachricht, die der Anrufer hört; das zweite stellt die Verbindung zu dem anderen Anrufer her und gibt an, welche URL verwendet werden soll, wenn diese Person den Anruf entgegennimmt.

Flüstern abspielen und den Anruf verbinden

Wenn der Callcenter-Mitarbeiter den Anruf entgegennimmt, wird die onAnswer URL verwendet wird, in unserer Anwendung ist das die /on-answer Endpunkt. Dies ist der Code, der herausfindet, welche Nummer gewählt wurde, und berechnet, welche Ansage zu machen ist.

lib/routes.js

// Define the topics for the inbound numbers
const topics = {}
topics[process.env['INBOUND_NUMBER_1']] = 'the summer offer';
topics[process.env['INBOUND_NUMBER_2']] = 'the winter offer';

Wenn der Anruf verbunden ist, flüstern Sie dem Agenten den Anruf mit der Taste talk NCCO-Aktion und informiert sie darüber, um welche um welche Werbekampagne es sich handelt, bevor sie mit dem Anrufer verbunden werden, der in der Konferenz wartet.

lib/routes.js

app.get('/on-answer', function(req, res) {
  // we determine the topic of the call based on the inbound call number
  const topic = topics[req.query.from]
  res.json([
    // We first play back a little message telling the call center operator what
    // the call relates to. This "whisper" can only be heard by the call center operator
    {
      "action": "talk",
      "text": "Incoming call regarding "+topic
    }
  ]);
});

Hier gibt es so viele Möglichkeiten, die Ihnen helfen können, die Flüstertöne anzupassen. Sie könnten die Nummer des eingehenden Anrufers Nummer mit der url in on-answer Sie können sie mit ihrem Namen begrüßen oder ihnen andere Informationen geben. Informationen. Die Möglichkeiten sind endlos, aber ich hoffe, dass dieser Leitfaden Ihnen ein funktionierendes Beispiel gibt, auf dem Sie aufbauen und anpassen können.

Weitere Lektüre

  • GitHub enthält den gesamten Code für diese Beispielanwendung.
  • Besuchen Sie unser Sprachführer für weitere Dinge, die Sie mit der Stimme tun können.
  • Die Voice API-Referenz enthält eine ausführliche Dokumentation für jeden Endpunkt.