Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow

Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
È probabile che tu abbia sentito o letto della funzione Call Screening che Google ha introdotto per i suoi telefoni Pixel negli Stati Uniti. L'idea è fantastica: quando ricevi una chiamata in entrata, l'assistente virtuale inizia a parlare, mentre tu puoi seguire questa conversazione in forma di chat e, in qualsiasi momento, puoi intervenire al posto dell'assistente. Questo è estremamente utile al giorno d'oggi, quando quasi la metà delle chiamate sono spam, ma allo stesso tempo non vuoi perdere chiamate importanti da numeri non presenti nella tua rubrica. L'unico problema è che questa funzionalità è disponibile solo sui telefoni Pixel e solo negli Stati Uniti. Beh, ci sono ostacoli da superare, giusto? Per questo motivo, abbiamo deciso di spiegarti come implementare una soluzione simile, utilizzando Voximplant e Dialogflow. Segui il nostro approfondimento.

Architettura

Ti propongo di non perdere tempo a spiegare come funzionano Voximplant e Dialogflow; se desideri, puoi facilmente trovare informazioni su internet. Quindi, approfondiamo la concezione del nostro Call Screening.

Supponiamo che tu abbia già un numero di telefono che usi quotidianamente e sul quale ricevi chiamate importanti. In questo caso, avremo bisogno di un secondo numero, che verrà utilizzato 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. In forma schematica, appare così (l'immagine è cliccabile):
Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Comprendendo l'architettura, possiamo procedere con l'implementazione, con una condizione: non realizzeremo un'app mobile per mostrare il dialogo tra Dialogflow e il chiamante in arrivo, ma creeremo una semplice app web- per rendere visibile il dialogo e illustrare il principio di funzionamento del Call Screening. In questa applicazione ci sarà un pulsante Intervene, che, se premuto, collegherà il chiamante in arrivo con il destinatario chiamato, se quest'ultimo desidera parlare personalmente.

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 la sezione "Numeri" e acquista un numero che fungerà da intermediario:

Creiamo il nostro Google Call Screening basato su Voximplant e Dialogflow
Successivamente, accedi all'applicazione screening, nella sezione "Numeri", scheda "Disponibili". Qui vedrai il numero appena acquistato. Collegalo all'applicazione usando il pulsante "Collega" – nella finestra che appare, lascia tutti i valori predefiniti e fai clic su "Collega".

All'interno dell'app, vai alla scheda "Scenari" e crea uno scenario myscreening – in esso utilizziamo il codice dell'articolo How to use Dialogflow Connector. Il codice sarà leggermente modificato, perché dobbiamo "vedere" il dialogo tra il chiamante e l'assistente; puoi trovare tutto il codice qui.

ATTENZIONE: dovrai cambiare il valore della variabile server con il nome del tuo server ngrok (le informazioni su ngrok verranno fornite più avanti). Sostituisci anche i tuoi valori alla riga 31, dove your phone number è il tuo numero principale (ad esempio, il tuo cellulare personale), mentre voximplant number è 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 di persona con il chiamante in entrata.

Dopo aver salvato lo script, devi collegarlo al numero acquistato. Per fare ciò, rimanendo all'interno della tua applicazione, vai alla scheda 'Routing' per creare una nuova regola – il pulsante 'Nuova regola' nell'angolo in alto a destra. Specifica un nome (ad esempio, allcalls), lascia la maschera di default (.* – il che significa che tutte le chiamate in arrivo verranno elaborate dagli script selezionati per questa regola) e specifica lo script myscreening.

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

D'ora in poi, il numero di telefono è collegato allo script. L'ultima cosa da fare è collegare il bot all'app. Per fare ciò, vai alla scheda 'Connector Dialogflow', clicca sul pulsante 'Aggiungi agente Dialogflow' nell'angolo 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 sei libero di modificare come vuoi e di condividere i risultati 🙂

Backend semplice su NodeJS

Creiamo un semplice backend su Node, per esempio, così:
github.com/aylarov/callscreening/tree/master/nodejs

Questa è un'applicazione comune che richiede solo due comandi per avviarsi:

npm install
node index.js

Il server si avvierà sulla porta 3000 della tua macchina, quindi per connetterlo al cloud Voximplant, utilizziamo l'utility ngrok. Quando installerai ngrok, avvialo con il comando:

ngrok http 3000

Vedrai il nome di dominio che ngrok ha generato per il tuo server locale - copialo e inseriscilo nella variabile server.

Cliente

L'app client appare come una semplice chat che puoi scaricare qui.

Basta copiare tutti i file in una directory del tuo server web e funzionerà. Nel file script.js sostituisci il valore della variabile server con il nome di dominio di ngrok, e il valore della variabile callee con il numero che hai acquistato. Salva il file e avvia l'applicazione nel browser. Se tutto è corretto, vedrai una connessione WebSocket nel pannello degli sviluppatori.

Demo

Puoi vedere l'applicazione in azione in questo video:

Riproduci video

P. S. Se premi il pulsante Intervene, la chiamata verrà reindirizzata al mio numero di telefono, e se premi su Disconnect – beh…? Esatto, 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