IVR en Webhook



Un chatbot en línea es una tendencia reciente en el mercado. Pero, ¿cómo interactuar con los clientes que están fuera de línea? Un porcentaje significativo de personas prefiere interactuar por teléfono. Y el negocio necesita una gran cantidad de operadores o una solución de automatización de comunicación de voz. Ofrecemos una solución para reducir la carga de trabajo y los costos (y apenas afectará la actividad de sus desarrolladores).

¿Cómo programar rápida y fácilmente cualquier menú de voz, autoinformador, robot-secretario con una base de datos de clientes adjunta?

Alerta de spoiler: todo se hace mediante la implementación de webhooks y estamos usando un ejemplo de PHP.

Que y por que

Por ejemplo, tiene un servicio de entrega o una tienda en línea con su propia logística. Algunos clientes llaman para ver qué hay con sus paquetes y eso se puede automatizar fácilmente. Lo mismo ocurre con la geolocalización de la cabina, alguna recopilación de datos o cualquier información individual que se pueda informar al cliente sin desperdiciar energía humana.

Se puede automatizar fácilmente, proporcionaremos un ejemplo a continuación. Ah, y se puede hacer completamente gratis.

¿Por qué no tu propio asterisco?

Por supuesto, todo se puede hacer con Asterisk, pero aparte del desarrollador, también necesitará un administrador, que también esté familiarizado con la seguridad de la comunicación de voz (ya que con frecuencia son pirateados).
Así que discutiremos la forma más sencilla de resolver la tarea: con webhooks.

Lista de métodos

Solo necesitará dos métodos nuevos para el trabajo, pero cada uno de ellos le ofrece muchas posibilidades y, lo más importante, ciclos ilimitados. Con la ayuda de estos ciclos, puede obtener un menú de voz multinivel y un informante para cualquier tema.

Métodos principales:

  • NOTIFY_START: el comienzo de una llamada entrante en PBX
  • NOTIFY_IVR: respuesta de las personas que llaman a una acción determinada

La descripción detallada del método está disponible para copiar y pegar en la descripción de la API .

Para las solicitudes NOTIFY_START y NOTIFY_IVR, puede cambiar los escenarios durante la llamada respondiendo con una de las opciones:








Entonces, un cliente llama y escucha el saludo, luego marca un número determinado (por ejemplo, un código de seguimiento), enviamos una notificación con los dígitos ingresados, el script verifica con la base de datos y nos envía la respuesta. La respuesta puede contener una identificación de archivo de voz o una respuesta de voz estándar.

Tenemos un sistema de reproducción de números estándar, por lo que no tiene que registrar una respuesta con anticipación; es decir, la notificación apropiada se elige de la base de datos y un robot la reproduce como un número. O puede crear hasta un centenar de mensajes de voz predeterminados y usarlos para responder a los clientes (por ejemplo, "Su entrega está en el almacén", "Puede recibir su paquete todos los días entre las 9 a.m. y las 10 p.m.).

El mínimo de implementación

Para que el respondedor responda, necesita el mínimo de un número de teléfono y una PBX. También debe cargar o ingresar las posibles respuestas.

Configurar



  1. El PBX gratuito para esta tarea se puede configurar en tres clics (elija el número de empleados y el menú de voz se puede configurar más adelante)
  2. Los números de teléfono para PBX se pueden conectar desde 100 países de todo el mundo. El número se conecta automáticamente después de completar la verificación de ID (si es necesario para el país que elija). También puedes conectar uno de tu propio número gratis
  3. Para configurar los menús de voz, vaya a la página "Llamadas entrantes e IVR" y elija la opción que más le convenga. O puede cargar sus archivos o escribir un texto y el robot lo leerá automáticamente. Hay 16 idiomas disponibles con varias voces para cada uno (14 voces en inglés). Puede guardar hasta 100 saludos en su cuenta personal.



Ejemplo de PHP

Para demostrar diferentes opciones, hemos creado 4 ejemplos de rendimiento IVR en PHP.

  1. El sistema le dice a los últimos 3 dígitos de CallerID (ejemplo de trabajo con información sobre números y dígitos pronunciados)
  2. El usuario ingresa su fecha de nacimiento en DTMF y el sistema le dice cuántos días faltan para el cumpleaños (trabajando con DTMF y pronunciando dígitos)
  3. Menú multinivel sin fin: el usuario puede ingresar dígitos y acceder al menú siguiente / anterior (ejemplo de cómo con un ciclo simple puede crear cualquier número de menús de voz)
  4. Ejemplo de autorización para recibir el estado del saldo (útil para muchas situaciones de la vida)

Los primeros tres ejemplos están disponibles en GitHub . Allí tiene todos los elementos requeridos, solo necesita insertar los archivos con el relleno (que deben ser cargados o leídos en PBX).

Tarea 4 : la persona que llama escucha el saludo y se le pide que ingrese el número de identificación, luego de ingresar el sistema le dice al saldo, se despide usando una frase popular de la lista y finaliza la llamada.

Aquí hay 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(); 

Buscamos expandir aún más las características de nuestro método y recopilar comentarios en los comentarios a continuación. También tenemos otros métodos de webhook y API disponibles, puede ver la lista completa en el sitio web .

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


All Articles