Du kanske har hört eller lĂ€st om funktionen Call Screening som Google lanserade för sina Pixel-telefoner i USA. IdĂ©n Ă€r fantastisk â nĂ€r du fĂ„r ett inkommande samtal, börjar den virtuella assistenten att kommunicera, medan du ser denna konversation i form av en chatt och kan nĂ€r som helst börja prata istĂ€llet för assistenten. Detta Ă€r mycket anvĂ€ndbart idag, nĂ€r nĂ€stan , men du vill samtidigt inte missa viktiga samtal frĂ„n nĂ„gon som inte finns i din kontaktlista. Den enda nackdelen Ă€r att denna funktionalitet endast Ă€r tillgĂ€nglig pĂ„ Pixel-telefonen och endast i USA. NĂ„vĂ€l, hinder finns för att övervinnas, eller hur? DĂ€rför har vi beslutat att berĂ€tta hur man kan uppnĂ„ nĂ„got liknande med hjĂ€lp av Voximplant och Dialogflow. VĂ€nligen fortsĂ€tt lĂ€sa.
Arkitektur
Jag föreslÄr att vi inte slösar tid pÄ att förklara hur Voximplant och Dialogflow fungerar, om du vill kan du lÀtt hitta information pÄ internet. SÄ lÄt oss bekanta oss med sjÀlva konceptet av vÄr Call Screening.
Anta att du redan har ett telefonnummer som du anvĂ€nder dagligen och till vilket du fĂ„r viktiga samtal. I sĂ„ fall kommer vi att behöva ett andra nummer, som kommer att anges överallt â i e-posten, pĂ„ visitkortet, nĂ€r du fyller i onlineformulĂ€r etc. Detta nummer kommer att anslutas till ett system för naturlig sprĂ„kbehandling (i vĂ„rt fall Ă€r det Dialogflow) och vidarebefordra samtal till ditt huvudnummer, men bara om du vill. I diagramform ser detta ut sĂ„ hĂ€r (bilder Ă€r klickbara):
NÀr vi förstÄr arkitekturen kan vi ta oss an implementeringen, men med en förutsÀttning: vi kommer inte att skapa en mobil app för att visa dialog mellan Dialogflow och den inkommande abonnenten, vi kommer att skapa en enkel webb-applikation med dialogrendering för att tydligt visa principen för Call Screening. I denna applikation kommer det finnas en knapp för Intervene, som nÀr den trycks pÄ kopplar Voximplant den inkommande abonnenten med den uppringda abonnenten, om den senare vill prata sjÀlv.
Implementering
Logga in pÄ och skapa en ny applikation, till exempel screening:

Ăppna och köp ett nummer som kommer att fungera som en mellanhand:

GĂ„ sedan in i screening-applikationen, i avsnittet "Nummer", fliken "TillgĂ€ngliga". HĂ€r ser du det nyligen köpta numret. Koppla det till applikationen med hjĂ€lp av knappen "Koppla" â i det som dyker upp, lĂ€mna alla standardvĂ€rden och klicka pĂ„ "Koppla".
NĂ€r du Ă€r inne i applikationen, gĂ„ till fliken "Scenarier" och skapa scenariot myscreening â hĂ€r anvĂ€nder vi koden frĂ„n artikeln . Koden kommer att Ă€ndras nĂ„got eftersom vi behöver "se" dialogen mellan den som ringer och assistenten; hela koden kan .
VĂNLIGEN NOTERA: du behöver Ă€ndra vĂ€rdet av variabeln server till namnet pĂ„ din ngrok-server (mer information om ngrok kommer lĂ€ngre ner). SĂ€tt ocksĂ„ in dina vĂ€rden pĂ„ rad 31, dĂ€r your phone number Ă€r ditt huvudsakliga nummer (exempelvis ett personligt mobilnummer), medan voximplant number Ă€r numret som du nyligen köpte.
outbound_call = VoxEngine.callPSTN(âDITT TELEFONNUMMERâ, âVOXIMPLANT NUMMERâ)Anropet callPSTN kommer att ske nĂ€r du bestĂ€mmer dig för att hoppa in i samtalet och prata direkt med den inkommande abonnenten.
Efter att du har sparat scenariot behöver du koppla det till det köpta numret. För att göra detta, medan du fortfarande Ă€r inne i din applikation, gĂ„ till fliken "Routing" för att skapa en ny regel â knappen "Ny regel" i det övre högra hörnet. Ange ett namn (till exempel, allcalls), lĂ€mna mönstret som standard (.* â vilket betyder att alla inkommande samtal kommer att hanteras av de scenarier som valts för denna regel) och ange scenariot myscreening.

Spara regeln.
Numret Àr nu kopplat till scenariot. Det sista som behövs Àr att koppla boten till applikationen. För detta, gÄ till fliken "Dialogflow-koppling", klicka pÄ knappen "LÀgg till Dialogflow-agent" i det övre högra hörnet och ladda upp JSON-filen för din Dialogflow-agent.

Om du behöver en agent för exempel/testning kan du ta vĂ„r frĂ„n denna lĂ€nk: . Men förvĂ€nta dig inte för mycket av den, det Ă€r bara ett exempel som du fritt kan omarbeta hur du vill och gĂ€rna dela resultaten đ
En enkel backend pÄ NodeJS
LÄt oss sÀtta upp en enkel backend pÄ Node, till exempel sÄ hÀr:
Det hÀr Àr en vanlig applikation som krÀver bara tvÄ kommandon för att starta:
npm install
node index.js
Servern startar pÄ port 3000 pÄ din maskin, sÄ för att koppla den till Voximplant-molnet anvÀnder vi verktyget ngrok. NÀr du har installerat , kör det med kommandot:
ngrok http 3000Du kommer att se det domĂ€nnamn som ngrok genererade för din lokala server â kopiera det och sĂ€tt in det i variabeln server.
Klient
Klientapplikationen ser ut som en enkel chatt som du kan.
Kopiera helt enkelt alla filer till en valfri katalog pÄ din webbserver sÄ kommer det att fungera. I filen script.js, Àndra vÀrdet pÄ variabeln server till ngroks domÀnnamn, och vÀrdet pÄ variabeln callee till numret du köpte. Spara filen och starta applikationen i webblÀsaren. Om allt Àr i ordning, kommer du att se WebSocket-anslutningen i utvecklarkonsolen.
Demo
Du kan se applikationen i aktion i den hÀr videon:

P. S. Om du trycker pĂ„ knappen Intervene, kommer den som ringer att dirigeras till mitt telefonnummer, och om du trycker pĂ„ Disconnect â ja, samtalet kommer att... ? RĂ€tt, samtalet kommer att brytas.
KĂ€lla: habr.com
