Създаваме собствено 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 – там ще използваме кода от статията How to use 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

Нека развием прост бекенд на node, например, такъв:
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