Es posible que haya escuchado o leído sobre la función de Detección de llamadas que Google lanzó para sus teléfonos Pixel en los EE. UU. La idea es genial: cuando recibe una llamada entrante, el asistente virtual comienza a comunicarse, mientras ve esta conversación en forma de chat y en cualquier momento puede comenzar a hablar en lugar de un asistente. Esto es muy útil en estos días, cuando casi la
mitad de las llamadas son spam , pero no desea perder llamadas importantes de alguien fuera de su lista de contactos. El único inconveniente es que esta funcionalidad solo está disponible en el teléfono Pixel y solo en los EE. UU. Bueno, existen obstáculos para superarlos, ¿verdad? Por lo tanto, decidimos decir cómo tomar tal decisión usando Voximplant y Dialogflow. Pido gato.
Arquitectura
Sugiero que no pierda el tiempo explicando cómo funcionan Voximplant y Dialogflow. Si lo desea, puede encontrar fácilmente información en Internet. Así que vamos a familiarizarnos con el concepto mismo de nuestra Revisión de llamadas.
Supongamos que ya tiene un número de teléfono que usa todos los días y al que recibe llamadas importantes. En este caso, necesitamos un segundo número, que se indicará en todas partes: en el correo, en una tarjeta de negocios, cuando complete formularios en línea, etc. Este número se conectará al sistema de procesamiento de lenguaje natural (en nuestro caso, Dialogflow) y reenviará las llamadas a su número principal solo si lo desea. En forma de diagrama, se ve así (se puede hacer clic en la imagen):
Entendiendo la arquitectura, podemos asumir la implementación, pero con una advertencia: no crearemos una aplicación
móvil para mostrar un diálogo entre Dialogflow y un suscriptor entrante, crearemos una aplicación
web simple con un procesador de diálogo para mostrar visualmente cómo funciona Call Screening. En esta aplicación, habrá un botón Intervenir, al presionar qué Voximplant conectará al suscriptor entrante al suscriptor marcado, si este último decide hablar por su cuenta.
Implementación
Inicie sesión en
su cuenta Voximplant y cree una nueva aplicación, por ejemplo, detección:
Abra
la sección "Números" y compre un número que funcionará como intermediario:
A continuación, vaya a la aplicación de detección, en la sección "Números", la pestaña "Disponible". Aquí verá el número que acaba de comprar. Adjúntelo a la aplicación con el botón "Adjuntar": en la ventana que aparece, deje todos los valores predeterminados y haga clic en "Adjuntar".
Dentro de la aplicación, vaya a la pestaña Scripts y cree un script de myscreening; en él usamos el código del artículo
Cómo usar Dialogflow Connector . En este caso, el código cambiará ligeramente, porque necesitamos "ver" el diálogo entre la persona que llama y el asistente; Todo el código se puede
tomar aquí .
ATENCIÓN: necesitará cambiar el valor de la variable del servidor al nombre de su servidor ngrok (los detalles sobre ngrok serán un poco más bajos). Además, sustituya sus valores en la línea 31, donde su número de teléfono es su número principal (por ejemplo, su número de teléfono móvil personal), y el número de voximplant es el número que compró recientemente.
outbound_call = VoxEngine.callPSTN(“YOUR PHONE NUMBER”, “VOXIMPLANT NUMBER”)
Una llamada callPSTN ocurrirá en el momento en que decida interrumpir la conversación y chatear personalmente con el suscriptor entrante.
Después de guardar el script, debe vincularlo al número comprado. Para hacer esto, aún dentro de su aplicación, vaya a la pestaña "Enrutamiento" para crear una nueva regla: el botón "Nueva regla" en la esquina superior derecha. Especifique un nombre (por ejemplo, todas las llamadas), deje la máscara predeterminada (. *, Lo que significa que todas las llamadas entrantes serán procesadas por los scripts seleccionados para esta regla) y especifique el script de myscreening.
Guarda la regla.
A partir de ahora, el número de teléfono está vinculado al guión. Lo último que debe hacer es adjuntar el bot a la aplicación. Para hacer esto, vaya a la pestaña "Conector de Dialogflow", haga clic en el botón "Agregar agente de Dialogflow" en la esquina superior derecha y cargue el archivo JSON de su agente de Dialogflow.
Si necesita un agente por ejemplo / prueba, puede tomar el nuestro en este enlace:
github.com/aylarov/callscreening/tree/master/dialogflow . Simplemente no le exija mucho, este es solo un ejemplo que puede rehacer libremente y compartir los resultados con denuedo :)
Backend simple en NodeJS
Implementemos un backend simple en un nodo, por ejemplo, esto:
github.com/aylarov/callscreening/tree/master/nodejsEsta es una aplicación normal que requiere solo dos comandos para ejecutarse:
npm install node index.js
El servidor se iniciará en el puerto 3000 de su máquina, por lo que para conectarlo a la nube Voximplant, utilizamos la utilidad ngrok. Cuando instales
ngrok ,
ejecútalo con el comando:
ngrok http 3000
Verá el nombre de dominio que ngrok generó para su servidor local: cópielo y sustitúyalo en la variable del servidor.
Cliente
La aplicación del cliente parece un simple chat que puede
recoger desde aquí .
Simplemente copie todos los archivos a un directorio en su servidor web y funcionará. En el archivo script.js, reemplace la variable del servidor con el nombre de dominio ngrok y la variable llamada con el número que compró. Guarde el archivo e inicie la aplicación en un navegador. Si todo está en orden, verá una conexión WebSocket en el panel del desarrollador.
Demo
Puedes ver la aplicación en acción en este video:
PD: si hace clic en el botón Intervenir, la persona que llama será dirigida a mi número de teléfono, y si hace clic en Desconectar, ¿será ...? Es cierto que la llamada se desconectará.