Möglicherweise haben Sie von der Anrufüberprüfungsfunktion gehört oder gelesen, die Google für seine Pixel-Telefone in den USA eingeführt hat. Die Idee ist großartig: Wenn Sie einen eingehenden Anruf erhalten, beginnt der virtuelle Assistent zu sprechen, während Sie diese Konversation in Form eines Chats sehen und jederzeit anstelle eines Assistenten sprechen können. Dies ist heutzutage sehr nützlich, wenn fast die
Hälfte der Anrufe Spam sind, Sie aber keine wichtigen Anrufe von jemandem außerhalb Ihrer Kontaktliste verpassen möchten. Der einzige Haken ist, dass diese Funktionalität nur auf dem Pixel-Telefon und nur in den USA verfügbar ist. Nun, es gibt Hindernisse, um sie zu überwinden, oder? Aus diesem Grund haben wir uns entschlossen, eine solche Entscheidung mit Voximplant und Dialogflow zu treffen. Ich frage nach Katze.
Architektur
Ich schlage vor, keine Zeit damit zu verschwenden, zu erklären, wie Voximplant und Dialogflow funktionieren. Wenn Sie möchten, können Sie Informationen leicht im Internet finden. Machen wir uns also mit dem Konzept unseres Anruf-Screenings vertraut.
Angenommen, Sie haben bereits eine Telefonnummer, die Sie täglich verwenden und zu der Sie wichtige Anrufe erhalten. In diesem Fall benötigen wir eine zweite Nummer, die überall angegeben wird - per Post, auf einer Visitenkarte, beim Ausfüllen von Online-Formularen usw. Diese Nummer wird mit dem Verarbeitungssystem für natürliche Sprachen (in unserem Fall Dialogflow) verbunden und leitet Anrufe nur dann an Ihre Hauptnummer weiter, wenn Sie dies möchten. In Form eines Diagramms sieht es so aus (das Bild ist anklickbar):
Wenn wir die Architektur verstehen, können wir die Implementierung übernehmen, aber mit einer Einschränkung: Wir werden keine
mobile Anwendung erstellen, um einen Dialog zwischen Dialogflow und einem eingehenden Abonnenten anzuzeigen, sondern eine einfache
Webanwendung mit einem Dialog-Renderer erstellen, um visuell zu zeigen, wie Call Screening funktioniert. In dieser Anwendung gibt es eine Intervenetaste, durch die Voximplant den eingehenden Teilnehmer mit dem gewählten Teilnehmer verbindet, wenn dieser sich dazu entschließt, selbst zu sprechen.
Implementierung
Melden Sie sich bei
Ihrem Voximplant-Konto an und erstellen Sie eine neue Anwendung, z. B. Screening:
Öffnen Sie
den Abschnitt "Nummern" und kaufen Sie eine Nummer, die als Vermittler fungiert:
Wechseln Sie als Nächstes zur Screening-Anwendung im Abschnitt "Nummern" auf der Registerkarte "Verfügbar". Hier sehen Sie die Nummer, die Sie gerade gekauft haben. Hängen Sie es mit der Schaltfläche "Anhängen" an die Anwendung an. Lassen Sie im angezeigten Fenster alle Standardwerte und klicken Sie auf "Anhängen".
Wechseln Sie in der Anwendung zur Registerkarte "Skripte" und erstellen Sie ein Myscreening-Skript. Darin verwenden wir den Code aus dem Artikel "
Verwendung von Dialogflow Connector" . In diesem Fall wird der Code geringfügig geändert, da wir den Dialog zwischen dem Anrufer und dem Assistenten „sehen“ müssen. Der gesamte Code kann hier
übernommen werden .
ACHTUNG: Sie müssen den Wert der Servervariablen in den Namen Ihres ngrok-Servers ändern (Details zu ngrok sind etwas niedriger). Ersetzen Sie außerdem Ihre Werte in Zeile 31, wobei Ihre Telefonnummer Ihre Hauptnummer ist (z. B. Ihre persönliche Handynummer) und die Voximplantatnummer die Nummer ist, die Sie kürzlich gekauft haben.
outbound_call = VoxEngine.callPSTN(“YOUR PHONE NUMBER”, “VOXIMPLANT NUMBER”)
Ein callPSTN-Anruf erfolgt in dem Moment, in dem Sie sich entscheiden, in das Gespräch einzubrechen und persönlich mit dem eingehenden Teilnehmer zu chatten.
Nachdem Sie das Skript gespeichert haben, müssen Sie es an die gekaufte Nummer binden. Wechseln Sie dazu, während Sie sich noch in Ihrer Anwendung befinden, zur Registerkarte "Routing", um eine neue Regel zu erstellen - die Schaltfläche "Neue Regel" in der oberen rechten Ecke. Geben Sie einen Namen an (z. B. allcalls), belassen Sie die Standardmaske (. * - was bedeutet, dass alle eingehenden Anrufe von den für diese Regel ausgewählten Skripten verarbeitet werden) und geben Sie das myscreening-Skript an.
Speichern Sie die Regel.
Von nun an ist die Telefonnummer an das Skript gebunden. Als letztes müssen Sie den Bot an die Anwendung anhängen. Wechseln Sie dazu zur Registerkarte "Dialogflow Connector", klicken Sie oben rechts auf die Schaltfläche "Dialogflow Agent hinzufügen" und laden Sie die JSON-Datei Ihres Dialogflow Agenten hoch.
Wenn Sie zum Beispiel einen Agenten / Test benötigen, können Sie unseren unter folgendem Link nutzen:
github.com/aylarov/callscreening/tree/master/dialogflow . Fordern Sie einfach nicht viel von ihm, dies ist nur ein Beispiel, das Sie nach Belieben wiederholen und die Ergebnisse mutig teilen können :)
Einfaches Backend auf NodeJS
Stellen wir ein einfaches Backend auf einem Knoten bereit, zum Beispiel Folgendes:
github.com/aylarov/callscreening/tree/master/nodejsDies ist eine normale Anwendung, für deren Ausführung nur zwei Befehle erforderlich sind:
npm install node index.js
Der Server wird an Port 3000 Ihres Computers gestartet. Um ihn mit der Voximplant-Cloud zu verbinden, verwenden wir das Dienstprogramm ngrok. Wenn Sie
ngrok installieren, führen Sie es mit dem folgenden Befehl aus:
ngrok http 3000
Sie sehen den Domänennamen, den ngrok für Ihren lokalen Server generiert hat. Kopieren Sie ihn und ersetzen Sie ihn in die Servervariable.
Kunde
Die Client-Anwendung sieht aus wie ein einfacher Chat, den Sie
hier abrufen können.
Kopieren Sie einfach alle Dateien in ein Verzeichnis auf Ihrem Webserver und es wird funktionieren. Ersetzen Sie in der Datei script.js die Servervariable durch den Domänennamen ngrok und die Variable callee durch die von Ihnen gekaufte Nummer. Speichern Sie die Datei und starten Sie die Anwendung in einem Browser. Wenn alles in Ordnung ist, wird im Entwicklerfenster eine WebSocket-Verbindung angezeigt.
Demo
Sie können die Anwendung in Aktion auf diesem Video sehen:
PS Wenn Sie auf die Schaltfläche Eingreifen klicken, wird der Anrufer zu meiner Telefonnummer weitergeleitet, und wenn Sie auf Trennen klicken, wird es ...? Richtig, der Anruf wird getrennt.