Secretario de Voz en Webhooks



Una de las últimas tendencias son los bots de chat en línea. ¿Pero qué hacer con esos clientes que están desconectados? Un gran porcentaje de personas prefiere llamar. Necesitan un gran equipo de operadores o una solución para automatizar el trabajo de voz. Ofrecemos una solución para reducir el trabajo y los costos (e incluso casi no carga su programador).

¿Cómo programar rápida y fácilmente cualquier menú de voz, autoinformador, robot secretario con referencia a su base de clientes?

Spoiler: Todo se implementa en webhooks y se da un ejemplo en PHP.

Discutimos debajo del corte.

Que y por que


Por ejemplo, tiene un servicio de entrega o una tienda en línea con su propio servicio de logística. Algunos clientes llaman para averiguar cómo les está yendo con su paquete / producto y esto puede automatizarse fácilmente. Del mismo modo, la geolocalización de un taxi, la recopilación de datos de los medidores, en general, cualquier información individual en línea que pueda proporcionar a un cliente y no pasar tiempo en el tiempo de "ayuda" de los operadores en vivo.

Automatizar esto es muy simple, a continuación describimos un ejemplo. Y, ah, todo esto se puede hacer absolutamente gratis.

¿Por qué no tu asterisco?


Por supuesto, todo se puede hacer en Asterisk, pero aquí, además del desarrollador, también se requiere un administrador, y con conocimiento de la seguridad de las redes de voz (ya que son especialmente aficionados al craqueo).

Consideramos la implementación más simple de la solución al problema: en webhooks.

Lista de métodos


Para el trabajo, solo necesitamos 2 métodos nuevos, pero cada uno de ellos ofrece muchas oportunidades y, lo más importante, ciclos ilimitados. Gracias a los ciclos, puede obtener un menú de voz de cualquier profundidad y un informante sobre cualquier tema.

Los principales métodos:


  • NOTIFY_START: comienzo de una llamada entrante a la central
  • NOTIFY_IVR: respuesta del suscriptor a la acción especificada

Una descripción detallada de los métodos para copiar y pegar está disponible en la descripción de la API .

Para las solicitudes NOTIFY_START y NOTIFY_IVR, puede "sobre la marcha" cambiar el script de la llamada actual enviando en respuesta una de las siguientes opciones:







De hecho, el cliente llama y escucha el saludo, luego marca un número específico (por ejemplo, número de pedido), enviamos una notificación con los números que marcó, el script del suscriptor verifica la base de datos y nos envía una respuesta a la notificación. La respuesta puede contener la identificación del archivo de voz o una variante del mensaje de voz estándar.

Tenemos un sistema estándar para reproducir números, por lo que no es necesario grabar un mensaje de voz preliminar, es decir, la notificación necesaria se toma de la base de datos y el robot la reproduce como un número. O puede crear hasta 100 variantes de notificaciones de voz de plantilla y enviarlas en respuesta a la solicitud de un cliente (sus productos están en stock, puede recibir sus productos diariamente de 9 a.m. a 10 p.m., excepto los domingos, su paquete está en el punto de recogida - Metro Belorusskaya) .

Mínimo para implementación


Para que la secretaria pueda responder, necesita al menos un número de teléfono y una central telefónica. También vale la pena descargarlo por adelantado o leer automáticamente las respuestas de la secretaria.

Personalizar




  1. Una PBX gratuita para nuestra tarea se configura en tres clics (seleccione el número deseado de empleados, el menú de voz se puede configurar más adelante).
  2. Los números de teléfono para centrales telefónicas automáticas se pueden conectar en cualquier gran ciudad de la Federación de Rusia o en 90 países del mundo. El número se incluye inmediatamente después de verificar los documentos (si necesita documentos para esta región). También puede conectar uno de sus números de forma gratuita.
  3. Para leer los saludos de voz, vaya a la sección "Llamadas entrantes y menú de voz" y seleccione la opción que sea más adecuada. Puede cargar sus archivos o simplemente imprimir el texto y el robot lo leerá automáticamente. Hay 16 idiomas y varias voces disponibles para cada idioma (14 votos para el inglés). Puede guardar hasta 100 saludos de voz en su cuenta personal.



Ejemplo de PHP


Para mostrar diferentes posibilidades, creamos 4 ejemplos de trabajo con IVR en PHP.

  1. El sistema dicta los últimos 3 dígitos de CallerID (un ejemplo de trabajar con datos sobre el número y pronunciar los dígitos)
  2. El usuario ingresa la fecha de nacimiento de DTMF y el sistema dice cuántos días antes de su DR. (Trabajando con DTMF y pronunciando números)
  3. Menú de niveles múltiples sin fin: el usuario puede presionar números y acceder al menú siguiente o anterior (un ejemplo de cómo puede hacer cualquier número de menús de voz con un ciclo simple).
  4. Un ejemplo de autorización para obtener un saldo (útil para muchos ejemplos de la vida).

Los primeros tres ejemplos están disponibles en Github . En el ejemplo, se detallan todos los elementos necesarios, solo necesita sustituir los archivos con un hilo (que debe precargar o leer en el intercambio).

Tarea 4 : se le dice al usuario un saludo de voz y se les pide que ingresen su número de identificación, después de ingresar el número, el sistema pronuncia el saldo, se despide con una frase de la lista de populares y finaliza la llamada.

Damos un ejemplo de código para la tarea descrita.

Código PHP :

$request = new Request(); $notify = self::getEvent([AbstractNotify::EVENT_START, AbstractNotify::EVENT_IVR]); if (!$notify) { return; } switch ($notify->event){ case AbstractNotify::EVENT_START: $request ->setIvrPlay(self::INFO_FILE_ID) ->setWaitDtmf(TIMEOUT , ATTEMPTS, MAXDIGITS, DTMF_NAME, DEFAULT_BEHAVIOUR); break; case AbstractNotify::EVENT_IVR: if (!empty($notify->wait_dtmf->digits)) { $balance = getBalance($notify->wait_dtmf->digits); $request->setIvrSayNumber($balance, 'en'); } elseif (!empty($notify->ivr_saynumber)) { $request->setIvrSayPopular(POPULAR_PHRASE_NUM, 'en'); } else { $request->setHangup(); } } $request->send(); 

Investigamos la necesidad de ampliar aún más la funcionalidad de los métodos y recopilar comentarios, las sugerencias en los comentarios son bienvenidas. Además, hay muchos otros métodos de webhook y api disponibles. Una lista completa está en el sitio .

Source: https://habr.com/ru/post/448178/


All Articles