Möglicherweise haben Sie von der Call Screening-Funktion gehört, die Google in den USA für seine Pixel-Smartphones eingeführt hat. Die Idee ist hervorragend – wenn Sie einen eingehenden Anruf erhalten, beginnt der virtuelle Assistent zu sprechen, während Sie den Dialog in Form eines Chats sehen und jederzeit selbst das Gespräch übernehmen können. Dies ist heutzutage besonders nützlich, da fast , aber gleichzeitig möchten Sie wichtige Anrufe von Personen außerhalb Ihrer Kontaktliste nicht verpassen. Das einzige Problem – diese Funktionalität ist nur auf Pixel-Handys und nur in den USA verfügbar. Nun, Hürden gibt es, um sie zu überwinden, nicht wahr? Deshalb möchten wir Ihnen zeigen, wie Sie eine ähnliche Lösung mit Voximplant und Dialogflow umsetzen können. Lesen Sie weiter.
Architektur von
Ich möchte keine Zeit mit Erklärungen verschwenden, wie Voximplant und Dialogflow funktionieren; Sie finden dazu leicht Informationen im Internet. Lassen Sie uns stattdessen mit dem Konzept unseres Call Screenings vertrautmachen.
Angenommen, Sie haben bereits eine Telefonnummer, die Sie täglich nutzen und auf die Sie wichtige Anrufe erhalten. In diesem Fall benötigen wir eine zweite Nummer, die überall angegeben wird – in E-Mails, auf Visitenkarten, wenn Sie Online-Formulare ausfüllen usw. Diese Nummer wird mit dem System zur Verarbeitung natürlicher Sprache (in unserem Fall Dialogflow) verbunden und leitet Anrufe nur dann auf Ihre Hauptnummer weiter, wenn Sie dies wünschen. So sieht das schematisch aus (das Bild ist klickbar):
Nachdem wir die Architektur verstanden haben, können wir mit der Implementierung beginnen, jedoch mit einer Einschränkung: Wir werden keine mobile Anwendung entwickeln, um den Dialog zwischen Dialogflow und dem anrufenden Teilnehmer zu zeigen. Stattdessen erstellen wir eine einfache Web-Anwendung, die den Dialog rendert, um das Prinzip des Call Screening anschaulich darzustellen. In dieser Anwendung wird es einen Button "Intervene" geben, durch den Voximplant den eingehenden Teilnehmer mit dem gewählten Teilnehmer verbindet, wenn dieser selbst sprechen möchte.
Implementierung
Melden Sie sich in Ihrem an und erstellen Sie eine neue Anwendung, zum Beispiel: screening:

Öffnen Sie den und kaufen Sie eine Nummer, die als Vermittler fungiert:

Gehen Sie dann in die Anwendung screening, im Bereich „Nummern“, Registerkarte „Verfügbare“. Hier sehen Sie die gerade gekaufte Nummer. Verknüpfen Sie sie mit der Anwendung über die Schaltfläche „Anheften“ – in dem sich öffnenden Fenster lassen Sie alle Standardwerte unverändert und klicken auf „Anheften“.
Innerhalb der Anwendung wechseln Sie zur Registerkarte „Skripte“ und erstellen ein Skript myscreening – dabei verwenden wir den Code aus dem Artikel . Der Code wird dabei leicht angepasst, da wir den Dialog zwischen dem Anrufer und dem Assistenten „sehen“ müssen; den gesamten Code können Sie .
ACHTUNG: Sie müssen den Wert der Variablen server auf den Namen Ihres ngrok-Servers ändern (Details zu ngrok finden Sie weiter unten). Außerdem passen Sie Ihre Werte in Zeile 31 an, wo Ihre Telefonnummer – Ihre Hauptnummer (zum Beispiel Ihre persönliche Mobilnummer) – und die voximplant-Nummer – die Nummer, die Sie kürzlich gekauft haben, angegeben sind.
outbound_call = VoxEngine.callPSTN(“IHRE TELEFONNUMMER”, “VOXIMPLANT NUMMER”)Der Anruf callPSTN erfolgt, wenn Sie sich entscheiden, in das Gespräch einzugreifen und persönlich mit dem eingehenden Anrufer zu sprechen.
Nachdem Sie das Skript gespeichert haben, müssen Sie es mit der gekauften Nummer verknüpfen. Gehen Sie dazu, während Sie noch in Ihrer Anwendung sind, zum Tab „Routing“, um eine neue Regel zu erstellen – klicken Sie auf die Schaltfläche „Neue Regel“ in der oberen rechten Ecke. Geben Sie einen Namen an (z. B. allcalls), lassen Sie die Standardmaske (.* – was bedeutet, dass alle eingehenden Anrufe von den für diese Regel ausgewählten Skripten verarbeitet werden) und geben Sie das Skript myscreening an.

Regel speichern.
Von nun an ist die Telefonnummer mit dem Skript verknüpft. Das Letzte, was noch zu tun ist, ist, den Bot mit der Anwendung zu verknüpfen. Gehen Sie dazu zum Tab „Dialogflow-Connector“, klicken Sie auf die Schaltfläche „Dialogflow-Agent hinzufügen“ in der oberen rechten Ecke und laden Sie die JSON-Datei Ihres Dialogflow-Agenten hoch.

Wenn Sie einen Agenten zum Testen/Beispiel benötigen, können Sie unseren über diesen Link nehmen: . Fordern Sie nicht zu viel von ihm, es ist nur ein Beispiel, das Sie nach Belieben anpassen und gerne Ihre Ergebnisse teilen können 🙂
Ein einfacher Backend auf NodeJS
Lassen Sie uns ein simples Backend auf Node umsetzen, zum Beispiel so:
Dies ist eine gewöhnliche Anwendung, die nur zwei Befehle benötigt, um zu starten:
npm install
node index.js
Der Server wird auf Port 3000 Ihres Geräts gestartet. Um ihn mit der Voximplant-Cloud zu verbinden, verwenden wir das Tool ngrok. Nach der Installation von , führen Sie den Befehl aus:
ngrok http 3000Sie sehen den Domainnamen, den ngrok für Ihren lokalen Server generiert hat – kopieren Sie diesen und setzen Sie ihn in die Variable server ein.
Kunde
Die Clientanwendung sieht aus wie ein einfacher Chat, den Sie.
Kopieren Sie einfach alle Dateien in ein Verzeichnis auf Ihrem Webserver und es wird funktionieren. Im Datei script.js ersetzen Sie den Wert der Variablen server mit dem ngrok-Domainnamen und den Wert der Variablen callee mit der Nummer, die Sie erworben haben. Speichern Sie die Datei und starten Sie die Anwendung im Browser. Wenn alles in Ordnung ist, sehen Sie die WebSocket-Verbindung in der Entwicklertools-Konsole.
Demo
Sie können die Anwendung in Aktion in diesem Video sehen:

P. S. Wenn Sie auf die Schaltfläche Intervene klicken, wird der Anrufende mit meiner Telefonnummer verbunden. Wenn Sie auf Disconnect klicken – nun, richtig, der Anruf wird getrennt.
Quelle: habr.com
