Võib-olla olete kuulnud või lugenud funktsioonist Call Screening, mille Google tutvustas oma Pixel telefonidele Ameerika Ühendriikides. Idee on suurepärane – kui teile tuleb sissetulev kõne, hakkab virtuaalne assistent suhtlema, samal ajal kui te näete seda vestlust vestlusena ja igal ajal saate hakata rääkima assistendi asemel. See on tänapäeval väga kasulik, kui peaaegu , kuid samas ei taha te jätta vahele olulisi kõnesid kellegilt, kes ei ole teie kontaktide loendis. Ainus takistus on see, et see funktsioon on saadaval ainult Pixel telefonides ja ainult Ameerika Ühendriikides. Noh, takistusi on, et neid ületada, eks? Seetõttu otsustasime rääkida, kuidas luua sarnane lahendus, kasutades Voximplant'i ja Dialogflow'd. Palun lugege edasi.
Arhitektuur
Ma ei soovi aega raisata sellele, kuidas Voximplant ja Dialogflow töötavad; soovi korral leiate Internetist hõlpsasti teavet. Nii et tutvume tõeliselt meie Call Screening'i kontseptsiooniga.
Oletame, et teil on juba mingi telefoninumber, mida kasutate igapäevaselt ja kuhu saate olulisi kõnesid. Sellisel juhul vajame teist numbrit, mis oleks esitatud igal pool – e-kirjades, visiitkaartidel, kui täidate veebivorme jne. See number ühendatakse loomuliku keele töötlemise süsteemiga (meie puhul Dialogflow) ja suunab kõned teie põhitelefonile, ainult kui soovite. Skeemina näeb see välja nii (pilt on klikkitav):
Mõistes arhitektuuri, saame hakata rakendama, kuid ühe tingimusega: me ei tee mobiilirakendust, et näidata dialooge Dialogflow ja sissetuleva kõneleja vahel, vaid loome lihtsa veebirakenduse dialooge renderdamiseks, et visuaalselt näidata Call Screening'i põhimõtet. Selles rakenduses on nupp Intervene, millele vajutades Voximplant ühendab sissetuleva kõneleja numbriga, kui viimane otsustab ise rääkida. Logige sisse oma Voximplant'i kontoleja looge uus rakendus, näiteks screening:
Rakendamine
jaotist "Numbrid" и создайте новое приложение, например, screening:

Avage и купите номер, который будет работать в качестве посредника:

Seejärel minge screening rakendusse, jaotisse «Numbrid», vahekaardile «Saadaval». Siin näete just ostetud numbrit. Siduge see rakendusega, vajutades nuppu «Kinnita» – avanenud aknas jätke kõik vaikeväärtused ja vajutage «Kinnita».
Rakenduses viibides minge vahekaardile «Stsenarid» ja looge stsenaarium myscreening – seal kasutame artiklist kood. . Samuti on kood veidi muudetud, et saaksime „näha” dialooge helistaja ja assistendi vahel; kogu koodi saab .
TÄHELEPANU: peate muutma muutuja server väärtust oma ngrok-serveri nimeks (rohkelt teavet ngroki kohta tuleb veidi allpool). Samuti sisestage oma väärtused 31. real, kus your phone number – see on teie peamine number (näiteks isiklik mobiil) ja voximplant number – number, mille te hiljuti ostsite.
outbound_call = VoxEngine.callPSTN(“TEIE TELEFONINUMBER”, “VOXIMPLANT NUMBER”)callPSTN kõne toimub hetkel, kui otsustate vestlusesse sekkuda ja isiklikult siseneda, et kõnelejat tervitada.
Pärast stsenaariumi salvestamist peate selle siduma ostetud numbriga. Selleks, olles ikka veel oma rakenduses, minge vahekaardile «Rohkearvutus», et luua uus reegel – nupp «Uus reegel» paremas ülanurgas. Määrake nimi (näiteks allcalls), jätke mask vaikeväärtuseks (.* – mis tähendab, et kõik sisenevad kõned käsitletakse selle reegli jaoks valitud stsenaariumide poolt) ja määrake stsenaarium myscreening.

Salvestage reegel.
Nüüdsest on telefoninumber seotud stsenaariumiga. Viimane, mida tuleb teha, on siduda robot rakendusega. Selleks minge vahekaardile «Dialogflow-connector», vajutage nuppu «Lisa Dialogflow agent» paremas ülanurgas ja laadige üles oma Dialogflow agendi JSON-fail.

Kui vajate näidis/katse agenti, siis võite võtta meie oma siit: . Ainult ärge nõudke temalt liiga palju, see on vaid näidis, mida võite vabalt muuta nii, nagu soovite, ja julgelt tulemusi jagada 🙂
Lihtne tagapind NodeJS-il
Lähme üles seadma lihtsat NodeJS tagapinda, näiteks sellist:
See on tavaline rakendus, mis vajab käivitamiseks vaid kahte käsku:
npm install
node index.js
Server käivitub teie masina 3000. pordil, seega kasutame selle ühendamiseks Voximplant pilvega utiliiti ngrok. Kui olete installinud , käivitage see käsuga:
ngrok http 3000Näete domeeninime, mille ngrok genereeris teie kohaliku serveri jaoks – kopeerige see ja asetage muutuja serverisse.
Kliendi
Kliendirakendus näeb välja nagu lihtne vestlus, mille saate.
Lihtsalt kopeerige kõik failid oma veebiserveri mõnda kataloogi ja see töötab. Failis script.js asendage muutuja server väärtus ngrok domeeninimega ning muutuja callee väärtus numbriga, mille olete ostnud. Salvestage fail ja käivitage rakendus brauseris. Kui kõik on korras, näete WebSocketi ühendust arendaja paneelis.
Demo
Rakendust saab näha tegutsenuna selles videos:

P. S. Kui vajutada nuppu Intervene, suunatakse helistaja minu telefoninumbrile, ja kui vajutada Disconnect – siis…? Õige, kõne katkestatakse.
Allikas: habr.com
