Tworzymy nasze Google Call Screening opierając się na Voximplant i Dialogflow

Tworzymy nasze Google Call Screening opierając się na Voximplant i Dialogflow
Być może słyszałeś lub czytałeś o funkcji Call Screening, którą Google wprowadził dla swoich telefonów Pixel w Stanach Zjednoczonych. Pomysł jest świetny – gdy otrzymujesz połączenie, wirtualny asystent zaczyna rozmowę, podczas gdy Ty widzisz tę konwersację w formie czatu i w każdej chwili możesz zacząć mówić zamiast asystenta. Jest to bardzo przydatne w dzisiejszych czasach, gdy prawie połowa połączeń to spam, ale jednocześnie nie chcesz przegapić ważnych rozmów od kogoś spoza swojej listy kontaktów. Jedynym problemem jest to, że ta funkcjonalność dostępna jest tylko w telefonach Pixel i tylko w USA. Coż, przeszkody istnieją po to, aby je pokonywać, prawda? Dlatego postanowiliśmy opowiedzieć, jak stworzyć podobne rozwiązanie z użyciem Voximplant i Dialogflow. Zapraszam do dalszej lektury.

Architektura

Nie chcę tracić czasu na wyjaśnienia działania Voximplant i Dialogflow, w razie potrzeby łatwo znajdziesz informacje w Internecie. Zatem zapoznajmy się z samą koncepcją naszego Call Screening.

Załóżmy, że masz już jakiś numer telefonu, którego używasz na co dzień i na który otrzymujesz ważne połączenia. W takim przypadku potrzebujemy drugiego numeru, który będzie podawany wszędzie – w mailach, na wizytówkach, gdy wypełniasz formularze online itp. Ten numer będzie połączony z systemem przetwarzania języka naturalnego (w naszym przypadku to Dialogflow) i będzie przekierowywał połączenia na Twój główny numer, tylko jeśli zechcesz. W formie schematu wygląda to tak (zdjęcie jest klikalne):
Tworzymy nasze Google Call Screening opierając się na Voximplant i Dialogflow
Rozumiejąc architekturę, możemy przystąpić do realizacji, ale z jednym zastrzeżeniem: nie będziemy tworzyć aplikacji mobilnej, aby pokazać dialog między Dialogflow a dzwoniącym, stworzymy prostą aplikację webową z renderowaniem dialogu, aby wyraźnie pokazać zasadę działania Call Screening. W tej aplikacji będzie przycisk Intervene, po naciśnięciu którego Voximplant połączy dzwoniącego z numerem docelowym, jeśli ten zdecyduje się rozmawiać sam. Zaloguj się doswojego konta Voximplant

Realizacja

i stwórz nową aplikację, na przykład, screening: zakładka „Numery” i kup numer, który będzie działał jako pośrednik:

Tworzymy nasze Google Call Screening opierając się na Voximplant i Dialogflow
Otwórz раздел «Номера» и купите номер, который будет работать в качестве посредника:

Tworzymy nasze Google Call Screening opierając się na Voximplant i Dialogflow
Następnie przejdź do aplikacji screening, w zakładkę „Numery”, sekcja „Dostępne”. Znajdziesz tam właśnie zakupiony numer. Przypisz go do aplikacji, klikając przycisk „Przypisz” – w pojawiającym się oknie pozostaw wszystkie wartości domyślne i kliknij „Przypisz”.

Będąc w aplikacji, przejdź do zakładki „Scenariusze” i stwórz scenariusz myscreening – w nim skorzystamy z kodu z artykułu Jak używać Dialogflow Connector. Przy tym kod trochę się zmieni, ponieważ musimy „widzieć” dialog między dzwoniącym a asystentem; cały kod można znaleźć tutaj.

UWAGA: będziesz musiał zmienić wartość zmiennej server na nazwę swojego serwera ngrok (szczegóły dotyczące ngrok będą nieco niżej). Podstaw też swoje wartości w 31. linii, gdzie your phone number – to twój główny numer (na przykład osobisty numer komórkowy), a voximplant number – numer, który niedawno zakupiłeś.

outbound_call = VoxEngine.callPSTN(“TWÓJ NUMER TELEFONU”, “NUMER VOXIMPLANT”)

Wywołanie callPSTN nastąpi w momencie, gdy postanowisz przerwać rozmowę i nawiązać kontakt z przychodzącym abonentem.

Po zapisaniu scenariusza, musisz go przypisać do zakupionego numeru. W tym celu, będąc wciąż w aplikacji, przejdź do zakładki „Routing”, aby stworzyć nową regułę – przycisk „Nowa reguła” w prawym górnym rogu. Podaj nazwę (na przykład, allcalls), pozostaw maskę domyślną (.* – co oznacza, że wszystkie przychodzące połączenia będą przetwarzane przez scenariusze wybrane dla tej reguły) i wskaż scenariusz myscreening.

Tworzymy nasze Google Call Screening opierając się na Voximplant i Dialogflow
Zapisz regułę.

Od tej pory numer telefonu jest przypisany do scenariusza. Ostatnią rzeczą, którą musisz zrobić, jest przypisanie bota do aplikacji. W tym celu przejdź do zakładki „Dialogflow-connector”, kliknij przycisk „Dodaj agenta Dialogflow” w prawym górnym rogu i załaduj plik JSON swojego agenta Dialogflow.

Tworzymy nasze Google Call Screening opierając się na Voximplant i Dialogflow
Jeśli potrzebujesz agenta na przykład do testowania, możesz skorzystać z naszego pod tym linkiem: github.com/aylarov/callscreening/tree/master/dialogflow. Tylko nie wymagaj od niego zbyt wiele, to tylko przykład, który możesz dowolnie zmieniać i śmiało dzielić się wynikami 🙂

Prosty backend na NodeJS

Stwórzmy prosty backend na nodzie, na przykład taki:
github.com/aylarov/callscreening/tree/master/nodejs

To zwykła aplikacja, która wymaga tylko dwóch poleceń do uruchomienia:

npm install
node index.js

Serwer uruchomi się na porcie 3000 twojej maszyny, więc aby połączyć go z chmurą Voximplant, używamy narzędzia ngrok. Kiedy zainstalujesz ngrok, uruchom go poleceniem:

ngrok http 3000

Zobaczysz nazwę domeny, którą ngrok wygenerował dla twojego lokalnego serwera – skopiuj ją i wstaw do zmiennej server.

Klient

Aplikacja kliencka wygląda jak prosty czat, który możesz pobrać stąd.

Po prostu skopiuj wszystkie pliki do dowolnego katalogu na swoim serwerze WWW, a ona będzie działać. W pliku script.js zamień wartość zmiennej server na nazwę domeny ngrok, a wartość zmiennej callee – na numer, który kupiłeś. Zapisz plik i uruchom aplikację w przeglądarce. Jeśli wszystko jest w porządku, zobaczysz połączenie WebSocket w panelu dewelopera.

Demo

Zobacz aplikację w akcji w tym wideo:

Odtwarzaj wideo

P. S. Jeśli naciśniesz przycisk Intervene, to dzwoniący zostanie skierowany na mój numer telefonu, a jeśli naciśniesz na Disconnect – to…? Zgadza się, połączenie zostanie rozłączone.

Źródło: habr.com
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster