Cómo configurar la API de eventos REST (Webhooks)

Integraciones

El servicio puede conectarse con sus propias aplicaciones si soportan una API de tipo REST.

Funcionalidades que ofrece

Los eventos que se pueden notificar a sus aplicaciones son los siguientes:

  • Llamadas entrantes
  • Llamadas salientes
  • Respuesta de llamadas por parte de las extensiones
  • Obtener un nombre de contacto
  • Llamadas finalizadas
  • Transferencias de llamadas
  • Obtener HTML para extensión del navegador (Chrome).

Cómo realizar la configuración

La integración REST API le permite recibir notificaciones de eventos producidos en la centralita en sus propias aplicaciones de forma que pueda realizar sus propias integraciones.

Para cada evento tendrá que configurar la URL del servicio web que recibirá la notificación, así como el método HTTP con el que desea que se haga la petición (GET, POST, PUT o DELETE).

Si utiliza GET o DELETE, tendrá que indicar los parámetros a sustituir en la propia URL. En el caso de POST y PUT los parámetros tendrá que indicarlos en el nuevo campo de datos de la petición que aparecerá junto al campo de la URL.

Por ejemplo, para recibir una notificación por GET de un evento de llamada entrante debería configurar algo similar a la siguiente URL:

Para peticiones POST se emplearía una estructura similar a esta:

{

	"id": "{id}"
    "dst": "{dst}",
    "call_id": "{call_id}"
}

Es necesario que la respuesta venga codificada en json (usar json_encode en php, por ejemplo).

Para activarlo acceda al panel de la centralita > Integraciones y busque Webhooks, active la integración [OFF/ON] y haga clic en "Cambiar configuración".

Eventos

Los distintos eventos y respectivos parámetros que puede utilizar son los siguientes:

Al realizar una llamada entrante

Este evento es llamado cada vez que una nueva llamada es recibida en un número público.

Parámetros:

  • {id}: identificador único de la llamada.
  • {src}: número del llamante.
  • {dst}: número público llamado.
  • {call_id}: identificador Call-Id.

Al realizar una llamada saliente

Este evento será llamado cada vez que se realice una nueva llamada saliente.

Parámetros:

  • {id}: identificador único de la llamada.
  • {src}: identificador de llamada utilizado.
  • {dst}: número de teléfono llamado.
  • {ext}: extensión que ha originado la llamada.
  • {call_id}: identificador Call-Id.

Al responder una llamada

Este evento será llamada cada vez que una llamada es respondida por una extensión.

Parámetros:

  • {id}: identificador único de la llamada.
  • {ext}: extensión que ha respondido la llamada.
  • {call_id}: identificador Call-Id.

Obtener un nombre de contacto

Este evento es llamado para obtener el nombre del contacto a partir de un número de teléfono. Este nombre será usado para mostrarlo en su terminal cuando haga o reciba una llamada. La respuesta desde su API debería ser el nombre del contacto en texto plano.

Parámetros:

  • {number}: Número del llamante.

Al colgar la llamada

Este evento será llamada cada vez que se cuelga una llamada.

Parámetros:

  • {id}: identificador único de la llamada.
  • {duration}: duración de la llamada en segundos.
  • {src}: número del llamante.
  • {dst}: número de teléfono llamado.
  • {direction}: sentido de la llamada (Inbound/Outbound).
  • {call_id}: identificador Call-Id.

Al transferir una llamada

Este evento será llamada cada vez que se transfiera una llamada

Parámetros:

  • {id}: identificador único de la llamada.
  • {duration}: duración de la llamada en segundos.
  • {ext}: extensión o número externo a la que se ha transferido la llamada.
  • {call_id}: identificador Call-Id.

Obtener HTML

Este evento es llamado por parte de la extensión del navegador (Chrome) para obtener la información que se muestra del contacto a partir de un número de teléfono. Esta información será usada para mostrarla en el navegador de Chrome cuando haga o reciba una llamada. La respuesta desde su API debiera ser el contenido del body del HTML.

Parámetros:

  • {number}: Número del llamante.

¿Le ha resultado útil este artículo?