Probabil că ați auzit sau ați citit despre funcția Call Screening, pe care Google a lansat-o pentru telefoanele sale Pixel în SUA. Ideea este excelentă – atunci când primiți un apel, asistentul virtual începe conversația, în timp ce dvs. puteți vedea acest dialog sub forma unei sesiuni de chat și, în orice moment, puteți începe să vorbiți în locul asistentului. Acest lucru este foarte util în zilele noastre, când aproape , dar în același timp nu doriți să pierdeți apeluri importante de la cineva care nu se află în lista dvs. de contacte. Singura problemă este că această funcționalitate este disponibilă doar pe telefonul Pixel și doar în SUA. Ei bine, obstacolele există pentru a fi depășite, nu-i așa? Așa că am decis să vă arătăm cum să implementați o soluție similară, folosind Voximplant și Dialogflow. Vă rog să citiți mai departe.
Arhitectură
Propun să nu pierdem timpul cu explicații despre cum funcționează Voximplant și Dialogflow, informațiile sunt ușor de găsit online. Așa că haideți să ne familiarizăm cu conceptul Call Screening.
Presupunând că aveți deja un număr de telefon pe care îl folosiți zilnic și la care primiți apeluri importante. În acest caz, avem nevoie de un al doilea număr, care va fi utilizat peste tot – în e-mailuri, pe cărți de vizită, când completați formulare online etc. Acest număr va fi conectat la sistemul de procesare a limbajului natural (în cazul nostru, Dialogflow) și va redirecționa apelurile către numărul dvs. principal, doar dacă doriți acest lucru. Schema arată astfel (imaginea este clicabilă):
Înțelegând arhitectura, putem să ne apucăm de implementare, dar cu o precizare: nu vom crea o aplicație mobilă pentru a arăta dialogul dintre Dialogflow și apelantul de intrare, vom crea o aplicație simplă web-aplicație cu un render al dialogului, pentru a ilustra clar principiul Call Screening. În această aplicație va exista un buton Intervene, la apăsarea căruia Voximplant va conecta apelantul de intrare cu apelatul, dacă acesta din urmă a decis să vorbească singur.
Implementarea
Conectați-vă la și creați o nouă aplicație, de exemplu, screening:

Deschideți și achiziționați un număr ce va funcționa ca intermediar:

Apoi, accesați aplicația screening, în secțiunea „Numere”, fila „Disponibile”. Aici veți vedea numărul recent achiziționat. Atașați-l aplicației folosind butonul „Atașează” – în fereastra care apare, lăsați toate valorile la setările implicite și apăsați „Atașează”.
Fiind în interiorul aplicației, accesați fila „Scenarii” și creați un scenariu myscreening – în care vom folosi codul din articol. . Codul va fi ușor modificat, deoarece trebuie să „vedem” dialogul dintre apelant și asistent; întregul cod poate fi .
ATENȚIE: va trebui să modificați valoarea variabilei server cu numele serverului dvs. ngrok (detalii despre ngrok vor fi puțin mai jos). De asemenea, completați valorile dvs. pe linia 31, unde your phone number – este numărul dvs. principal (de exemplu, mobil personal), iar voximplant number – numărul pe care l-ați achiziționat recent.
outbound_call = VoxEngine.callPSTN(„YOUR PHONE NUMBER”, „VOXIMPLANT NUMBER”)Apelul callPSTN va avea loc în momentul în care decideți să interveniți în conversație și să discutați personal cu apelantul.
După ce salvați scenariul, va trebui să-l atașați numărului achiziționat. Pentru aceasta, în continuare în aplicația dvs., accesați fila „Routing” pentru a crea o nouă regulă – butonul „Regulă nouă” în colțul din dreapta sus. Specificați un nume (de exemplu, allcalls), lăsați masca la setările implicite (.* – ceea ce înseamnă că toate apelurile primite vor fi procesate de scenariile alese pentru această regulă) și specificați scenariul myscreening.

Salvați regula.
De acum înainte, numărul de telefon este atașat scenariului. Ultimul pas este să atașați botul aplicației. Pentru aceasta, accesați fila „Dialogflow-connector”, apăsați butonul „Adăugați agentul Dialogflow” în colțul din dreapta sus și încărcați fișierul JSON al agentului dvs. Dialogflow.

Dacă aveți nevoie de un agent pentru exemplu/testare, puteți folosi agentul nostru de la acest link: . Numai să nu aveți prea multe așteptări de la el, este doar un exemplu, pe care aveți libertatea de a-l modifica cum doriți și de a împărtăși rezultatele 🙂.
Un backend simplu pe NodeJS
Să desfășurăm un backend simplu pe Node, de exemplu, așa:
Este o aplicație obișnuită, care necesită doar două comenzi pentru a fi pusă în funcțiune:
npm install
node index.js
Serverul va rula pe portul 3000 al mașinii dumneavoastră, de aceea pentru a-l conecta la cloudul Voximplant, vom folosi utilitarul ngrok. După ce ați instalat , rulați-l cu comanda:
ngrok http 3000Veți vedea numele de domeniu generat de ngrok pentru serverul dumneavoastră local – copiați-l și inserați-l în variabila server.
Clientului
Aplicația client arată ca un simplu chat, pe care îl puteți.
Pur și simplu copiați toate fișierele într-un director de pe serverul dumneavoastră web și va funcționa. În fișierul script.js, schimbați valoarea variabilei server cu numele de domeniu ngrok, iar valoarea variabilei callee – cu numărul pe care l-ați achiziționat. Salvați fișierul și rulați aplicația în browser. Dacă totul este în ordine, veți vedea o conexiune WebSocket în panoul de dezvoltare.
Demo
Puteți vedea aplicația în acțiune în acest videoclip:

P. S. Dacă apăsați pe butonul Intervene, apelantul va fi redirecționat către numărul meu de telefon, iar dacă apăsați pe Disconnect – va…? Corect, apelul va fi întrerupt.
Sursa: habr.com
