Paggawa ng sarili mong Google Call Screening batay sa Voximplant at Dialogflow

Paggawa ng sarili mong Google Call Screening batay sa Voximplant at Dialogflow
Maaaring narinig mo na o nabasa mo na ang tungkol sa feature na Call Screening na inilunsad ng Google para sa mga Pixel phone nito sa US. Ang ideya ay mahusay - kapag nakatanggap ka ng isang papasok na tawag, ang virtual na katulong ay nagsisimulang makipag-usap, habang nakikita mo ang pag-uusap na ito sa anyo ng isang chat at sa anumang oras maaari kang magsimulang magsalita sa halip na ang katulong. Ito ay lubhang kapaki-pakinabang sa mga araw na ito kapag halos kalahati ng mga tawag ay spam, ngunit hindi mo gustong makaligtaan ang mahahalagang tawag mula sa isang taong wala sa iyong listahan ng contact. Ang tanging catch ay available lang ang functionality na ito sa Pixel phone at sa US lang. Well, may mga hadlang na dapat lagpasan, tama ba? Samakatuwid, nagpasya kaming sabihin sa iyo kung paano gumawa ng katulad na solusyon gamit ang Voximplant at Dialogflow. Mangyaring sa ilalim ng pusa.

arkitektura

Iminumungkahi kong huwag kang mag-aksaya ng oras na ipaliwanag kung paano gumagana ang Voximplant at Dialogflow; kung gusto mo, madali kang makakahanap ng impormasyon sa Internet. Kaya't kilalanin natin ang mismong konsepto ng ating Call Screening.

Ipagpalagay natin na mayroon ka nang partikular na numero ng telepono na ginagamit mo araw-araw at kung saan nakakatanggap ka ng mahahalagang tawag. Sa kasong ito, kakailanganin namin ng pangalawang numero, na ipahiwatig sa lahat ng dako - sa koreo, sa isang business card, kapag pinunan mo ang mga online na form, atbp. Ikokonekta ang numerong ito sa isang natural na sistema ng pagpoproseso ng wika (sa aming kaso, Dialogflow) at magpapasa ng mga tawag sa iyong pangunahing numero kung gusto mo lang. Sa anyo ng diagram, ganito ang hitsura nito (naki-click ang larawan):
Paggawa ng sarili mong Google Call Screening batay sa Voximplant at Dialogflow
Ang pag-unawa sa arkitektura, maaari naming gawin ang pagpapatupad, ngunit may isang caveat: hindi namin gagawin mobile application upang magpakita ng isang dialogue sa pagitan ng Dialogflow at isang papasok na tumatawag, gagawa kami ng isang simple веб-isang application na may dialogue renderer upang malinaw na ipakita kung paano gumagana ang Call Screening. Ang application na ito ay magkakaroon ng isang Intervene button, sa pamamagitan ng pagpindot sa kung aling Voximplant ang magkokonekta sa papasok na subscriber sa na-dial na subscriber, kung ang huli ay nagpasya na makipag-usap sa kanyang sarili.

Pagpapatupad

Mag-sign in iyong Voximplant account at gumawa ng bagong application, halimbawa screening:

Paggawa ng sarili mong Google Call Screening batay sa Voximplant at Dialogflow
Buksan seksyong "Mga Kwarto" at bumili ng numero na gagana bilang isang tagapamagitan:

Paggawa ng sarili mong Google Call Screening batay sa Voximplant at Dialogflow
Susunod, pumunta sa screening application, sa seksyong "Mga Numero," tab na "Available". Dito mo makikita ang numero na iyong binili. I-link ito sa application gamit ang pindutang "Attach" - sa window na lilitaw, iwanan ang lahat ng mga default na halaga at i-click ang "Attach".

Sa sandaling nasa loob ng application, pumunta sa tab na "Mga Script" at lumikha ng isang script myscreening - dito ginagamit namin ang code mula sa artikulo Paano gamitin ang Dialogflow Connector. Sa kasong ito, ang code ay bahagyang mababago, dahil kailangan nating "makita" ang pag-uusap sa pagitan ng tumatawag at ng katulong; lahat ng code ay posible kunin dito.

PANSIN: kakailanganin mong baguhin ang halaga ng variable ng server sa pangalan ng iyong server ng ngrok (sa ibaba ang mga detalye tungkol sa ngrok). Palitan din ang iyong mga halaga sa linya 31, kung saan ang iyong numero ng telepono ay ang iyong pangunahing numero (halimbawa, ang iyong personal na mobile phone), at ang numero ng voximplant ay ang numero na binili mo kamakailan.

outbound_call = VoxEngine.callPSTN(“YOUR PHONE NUMBER”, “VOXIMPLANT NUMBER”)

Ang callPSTN na tawag ay magaganap sa sandaling magpasya kang pumasok sa pag-uusap at personal na makipag-usap sa papasok na subscriber.

Pagkatapos mong i-save ang script, kailangan mong i-link ito sa biniling numero. Upang gawin ito, habang nasa loob pa rin ng iyong application, pumunta sa tab na "Pagruruta" para gumawa ng bagong panuntunan - ang button na "Bagong Panuntunan" sa kanang sulok sa itaas. Magbigay ng pangalan (halimbawa, lahat ng tawag), iwanan ang default na mask (.* - na nangangahulugang ang lahat ng papasok na tawag ay ipoproseso ng mga script na pinili para sa panuntunang ito) at tukuyin ang script ng myscreening.

Paggawa ng sarili mong Google Call Screening batay sa Voximplant at Dialogflow
I-save ang panuntunan.

Mula ngayon, ang numero ng telepono ay naka-link sa script. Ang huling bagay na kailangan mong gawin ay i-link ang bot sa application. Upang gawin ito, pumunta sa tab na "Dialogflow Connector", i-click ang button na "Add Dialogflow Agent" sa kanang sulok sa itaas at i-upload ang JSON file ng iyong Dialogflow agent.

Paggawa ng sarili mong Google Call Screening batay sa Voximplant at Dialogflow
Kung kailangan mo ng ahente para sa halimbawa/pagsubok, maaari mong kunin ang sa amin sa link na ito: github.com/aylarov/callscreening/tree/master/dialogflow. Huwag lamang humingi ng marami mula dito, ito ay isang halimbawa lamang na malaya kang gawin muli ayon sa gusto mo at huwag mag-atubiling ibahagi ang mga resulta :)

Simpleng backend sa NodeJS

Mag-deploy tayo ng simpleng backend sa isang node, halimbawa, tulad nito:
github.com/aylarov/callscreening/tree/master/nodejs

Ito ay isang simpleng application na nangangailangan lamang ng dalawang utos upang tumakbo:

npm install
node index.js

Ang server ay tatakbo sa port 3000 ng iyong makina, kaya para ikonekta ito sa Voximplant cloud, ginagamit namin ang ngrok utility. Kapag nag-install ka ngrok, patakbuhin ito gamit ang utos:

ngrok http 3000

Makikita mo ang domain name na nabuo ng ngrok para sa iyong lokal na server - kopyahin ito at i-paste ito sa variable ng server.

Customer

Ang application ng kliyente ay mukhang isang simpleng chat na magagawa mo kunin mo dito.

Kopyahin lamang ang lahat ng mga file sa ilang direktoryo sa iyong web server at gagana ito. Sa script.js file, palitan ang variable ng server ng domain name ng ngrok at ang variable ng callee ng numerong binili mo. I-save ang file at ilunsad ang application sa iyong browser. Kung ok ang lahat, makikita mo ang koneksyon sa WebSocket sa panel ng developer.

Demo

Maaari mong makita ang application na gumagana sa video na ito:


PS Kung nag-click ka sa pindutan ng Intervene, ang tumatawag ay ididirekta sa aking numero ng telepono, at kung nag-click ka sa Disconnect, ito ay magiging...? Tama, madidiskonekta ang tawag.

Pinagmulan: www.habr.com

Magdagdag ng komento