Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow

Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Forse hai sentito o letto riguardo alla funzione Call Screening che Google ha lanciato per i suoi telefoni Pixel negli Stati Uniti. L'idea è ottima: quando ricevi una chiamata in ingresso, l'assistente virtuale inizia a comunicare, mentre tu puoi vedere questa conversazione sotto forma di chat e in qualsiasi momento puoi iniziare a parlare al posto dell'assistente. Questo è molto utile oggigiorno, quando quasi metà delle chiamate sono spam, ma non vuoi comunque perdere chiamate importanti da qualcuno che non è nella tua lista contatti. L'unico problema è che questa funzionalità è disponibile solo sui telefoni Pixel e solo negli Stati Uniti. Beh, ci sono ostacoli da superare, giusto? Perciò abbiamo deciso di mostrare come realizzare una soluzione simile utilizzando Voximplant e Dialogflow. Ti invitiamo a proseguire.

Architettura

Ti consiglio di non perdere tempo a spiegare come funzionano Voximplant e Dialogflow; se vuoi, troverai facilmente informazioni su internet. Quindi, conosciamo il concetto alla base del nostro Call Screening.

Supponiamo che tu abbia già un numero di telefono che usi quotidianamente e su cui ricevi chiamate importanti. In tal caso, avremo bisogno di un secondo numero, che sarà indicato ovunque: nelle email, sui biglietti da visita, quando compili moduli online, ecc. Questo numero sarà collegato a un sistema di elaborazione del linguaggio naturale (nel nostro caso, Dialogflow) e inoltrerà le chiamate al tuo numero principale, solo se lo desideri. Nella forma di uno schema, appare così (l'immagine è cliccabile):
Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Comprendendo l'architettura, possiamo procedere con l'implementazione, ma con una nota: non creeremo un'applicazione mobile per mostrare il dialogo tra Dialogflow e l'abbonato in ingresso; creeremo invece una semplice applicazione-web che mostrerà il dialogo per dimostrare chiaramente il principio del Call Screening. In questa applicazione ci sarà un pulsante Intervene, che, se premuto, collegherà Voximplant all'abbonato in ingresso con l'abbonato chiamato, se quest'ultimo decide di parlare da solo.

Implementazione

Accedi al tuo account Voximplant e crea una nuova applicazione, ad esempio, screening:

Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Apri sezione «Numeri» e acquista un numero che fungerà da intermediario:

Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Quindi, accedi all'applicazione screening, nella sezione "Numeri", scheda "Disponibili". Qui vedrai il numero appena acquistato. Collega il numero all'applicazione utilizzando il pulsante "Collega" – nella finestra che si aprirà, lascia tutti i valori predefiniti e clicca su "Collega".

Essendo all'interno dell'applicazione, vai alla scheda "Scenari" e crea uno scenario chiamato myscreening – qui utilizzeremo il codice dell'articolo How to use Dialogflow Connector. Il codice sarà leggermente modificato, poiché dobbiamo "vedere" il dialogo tra il chiamante e l'assistente; puoi prenderlo qui.

ATTENZIONE: dovrai modificare il valore della variabile server con il nome del tuo server ngrok (i dettagli su ngrok verranno forniti più in basso). Inoltre, inserisci i tuoi valori alla riga 31, dove il tuo numero di telefono è il tuo numero principale (ad esempio, il numero di cellulare personale), e il numero voximplant è il numero che hai appena acquistato.

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

La chiamata callPSTN avverrà nel momento in cui decidi di intervenire nella conversazione e parlare personalmente con il chiamante in entrata.

Dopo aver salvato lo scenario, devi collegarlo al numero acquistato. Per farlo, continuando nell'applicazione, vai alla scheda "Routing" per creare una nuova regola – clicca su "Nuova regola" in alto a destra. Specifica un nome (ad esempio, allcalls), lascia la maschera di default (.* – che significa che tutte le chiamate in entrata saranno gestite dagli scenari scelti per questa regola) e indica lo scenario myscreening.

Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Salva la regola.

Da questo momento in poi, il numero di telefono è collegato allo scenario. L'ultima cosa da fare è collegare il bot all'applicazione. Per farlo, vai alla scheda "Connector Dialogflow", clicca sul pulsante "Aggiungi agente Dialogflow" in alto a destra e carica il file JSON del tuo agente Dialogflow.

Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Se hai bisogno di un agente per esempio/test, puoi prendere il nostro a questo link: github.com/aylarov/callscreening/tree/master/dialogflow. Solo non aspettarti troppo da lui, è solo un esempio che puoi modificare come vuoi e condividere i risultati 🙂

Un semplice backend in NodeJS

Creiamo un semplice backend in node, ad esempio, questo:
github.com/aylarov/callscreening/tree/master/nodejs

È un'applicazione comune che richiede solo due comandi per essere avviata:

npm install
node index.js

Il server si avvierà sulla porta 3000 della vostra macchina, quindi per connetterlo al cloud di Voximplant, utilizziamo l'utilità ngrok. Quando lo installerete ngrok, eseguitelo con il comando:

ngrok http 3000

Vedrete il nome di dominio che ngrok ha generato per il vostro server locale: copiatelo e inseritelo nella variabile server.

Cliente

L'applicazione client appare come una semplice chat, che potete scaricare da qui.

Basta copiare tutti i file in una directory sul vostro server web e funzionerà. Nel file script.js, sostituite il valore della variabile server con il nome di dominio di ngrok e il valore della variabile callee con il numero che avete acquistato. Salvate il file e avviate l'applicazione nel browser. Se tutto è a posto, vedrete la connessione WebSocket nel pannello di sviluppo.

Demo

Potete vedere l'app in azione in questo video:

Guarda il video

P. S. Se premete il pulsante Intervene, la persona che chiama sarà indirizzata al mio numero di telefono, mentre se premete su Disconnect... Giusto, la chiamata verrà interrotta.

Fonte: habr.com
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster