Създаваме свой Google Call Screening на базата на Voximplant и Dialogflow

Създаваме свой Google Call Screening на базата на Voximplant и Dialogflow
Възможно е да сте чували или чели за функцията Call Screening, която Google пусна за своите телефони Pixel в САЩ. Идеята е отлична – когато получавате входящо обаждане, виртуалният асистент започва разговор, докато вие виждате този разговор под формата на чат и можете по всяко време да започнете да говорите вместо асистента. Това е много полезно в днешно време, когато почти половината обаждания са спам, но в същото време не искате да пропуснете важни обаждания от някой извън вашия списък с контакти. Единствената пречка е, че тази функционалност е достъпна само на телефона Pixel и само в САЩ. Какво да кажем, пречките съществуват, за да бъдат преодолявани, нали? Затова решихме да разкажем как да направим подобно решение с помощта на Voximplant и Dialogflow. Моля, продължете.

Архитектура

Предлагам да не губим време в обяснения как работят Voximplant и Dialogflow, при желание лесно ще намерите информация в интернет. Нека да се запознаем с основната концепция на нашето Call Screening.

Предположим, че вече имате номер телефон, който използвате ежедневно и на който получавате важни обаждания. В такъв случай ни е необходим втори номер, който да бъде посочен навсякъде – в имейла, на визитката, когато попълвате онлайн формуляри и т.н. Този номер ще бъде свързан с системата за обработка на естествен език (в нашия случай това е Dialogflow) и ще пренасочва обаждания на вашия основен номер, само ако вие това желаете. В схема това изглежда така (картината е кликаема):
Създаваме свой Google Call Screening на базата на Voximplant и Dialogflow
Разбирайки архитектурата, можем да започнем реализацията, но с едно уговорка: няма да правим мобилно приложение, за да покажем диалог между Dialogflow и входящия абонат, ще създадем просто уеб-приложение с рендер на диалога, за да покажем на практика принципа на работа на Call Screening. В това приложение ще има бутон Intervene, при натискане на който Voximplant ще свърже входящия абонат с набирания абонат, ако последният реши да говори сам.

Реализация

Влезте в аккаунта си Voximplant и създайте ново приложение, например screening:

Създаваме свой Google Call Screening на базата на Voximplant и Dialogflow
Отворете раздел „Номера“ и купете номер, който ще работи като посредник:

Създаваме свой Google Call Screening на базата на Voximplant и Dialogflow
Следващата стъпка е да отидете в приложението screening, в раздела „Номера“, на таба „Достъпни“. Тук ще видите новопридобивания номер. Привържете го към приложението с помощта на бутона „Прикрепи“ – в появилия се прозорец оставете всички стойности по подразбиране и натиснете „Прикрепи“.

Докато сте в приложението, преминете на таба „Сценарии“ и създайте сценарий myscreening – в него ще използваме кода от статията Как да използвате Dialogflow Connector. Кодът ще бъде малко променен, защото трябва да „виждаме“ разговора между обаждащия се и асистента; целият код може да бъде взет тук.

ВНИМАНИЕ: ще трябва да промените стойността на променливата server на името на вашия ngrok-сървър (повече информация за ngrok ще последва по-долу). Също така подменете вашите стойности на 31-ия ред, където вашият телефонен номер – е вашият основен номер (например, личен мобилен), а voximplant number – номерът, който току-що купихте.

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

Викането на callPSTN ще се случи в момента, когато решите да влезете в разговора и да поговорите лично с входящия абонат.

След като запазите сценария, трябва да го привържете към купения номер. За целта, все още в приложението си, преминете на таба „Роутинг“, за да създадете ново правило – бутон „Новото правило“ в горния десен ъгъл. Посочете име (например, allcalls), оставете маската по подразбиране (.* – което означава, че всички входящи обаждания ще се обработват от сценарии, избрани за това правило) и посочете сценария myscreening.

Създаваме свой Google Call Screening на базата на Voximplant и Dialogflow
Запазете правилото.

Оттук нататък телефонният номер е привързан към сценария. Последното, което трябва да направите, е да свържете бота с приложението. За целта преминете на таба „Dialogflow-коннектор“, натиснете бутона „Добави Dialogflow агент“ в горния десен ъгъл и качете JSON файла на вашия агент Dialogflow.

Създаваме свой Google Call Screening на базата на Voximplant и Dialogflow
Ако ви трябва агент за пример/тест, можете да вземете нашия от тази връзка: github.com/aylarov/callscreening/tree/master/dialogflow. Просто не очаквайте много от него, това е само пример, който можете да преработите както прецените и смело да споделяте резултатите 🙂

Прост бекенд на NodeJS

Нека развием прост бекенд на нода, например, такъв:
github.com/aylarov/callscreening/tree/master/nodejs

Това е обикновено приложение, което изисква само две команди за стартиране:

npm install
node index.js

Сървърът ще се стартира на порт 3000 на вашата машина, затова за да го свържете с облака Voximplant, използваме утилитата ngrok. Когато инсталирате ngrok, стартирайте го с командата:

ngrok http 3000

Ще видите домейн името, което ngrok е генерирал за вашия локален сървър – копирайте го и го поставете в променливата server.

Клиент

Клиентското приложение изглежда като прост чат, който можете да вземете оттук.

Просто копирайте всички файлове в някаква директория на вашия уеб сървър и то ще работи. В файла script.js заменете стойността на променливата server с домейн името на ngrok, а стойността на променливата callee – с номера, който сте закупили. Запазете файла и стартирайте приложението в браузъра. Ако всичко е наред, ще видите WebSocket връзка в панела за разработчици.

Демо

Можете да видите приложението в действие в това видео:

Възпроизведи видео

P. S. Ако натиснете бутона Intervene, обаждащият се ще бъде насочен към моя номер, а ако натиснете Disconnect – то ще…? Верно, обаждането ще бъде прекъснато.

Източник: habr.com
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster