Ние правим наш собствен Google Call Screening на базата на Voximplant и Dialogflow

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

архитектура

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

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

Изпълнение

Впиши се вашия акаунт във Voximplant и създайте ново приложение като скрининг:

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

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

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

ПРЕДУПРЕЖДЕНИЕ: ще трябва да промените стойността на сървърната променлива на името на вашия ngrok сървър (повече за ngrok по-долу). Също така включете вашите стойности на ред 31, където вашият телефонен номер е вашият основен номер (например личният ви мобилен), а номерът на voximplant е номерът, който сте закупили наскоро.

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

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

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

Ние правим наш собствен Google Call Screening на базата на Voximplant и Dialogflow
Запазете правилото.

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

Ние правим наш собствен 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 на вашата машина, така че ние използваме помощната програма ngrok, за да го свържем с облака Voximplant. Когато инсталирате ngrok, стартирайте го с командата:

ngrok http 3000

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

клиент

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

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

демонстрация

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


PS Ако щракнете върху бутона Intervene, тогава обаждащият се ще бъде насочен към моя телефонен номер, а ако щракнете върху Disconnect, той ще бъде ...? Точно така, обаждането ще бъде прекъснато.

Източник: www.habr.com

Добавяне на нов коментар