API DTMF v1.0
Bienvenido a la documentación de API DTMF v1.0 de netelip (marcación por tonos).
La pasarela de desarrollo API DTMF permite conectar tu vPBX con tu sistema web de datos con una simple configuración, pudiendo crear un IVR dinámico dependiendo del usuario que llame a tu vPBX.
Para conocer todas las APIs disponibles, información general y restricciones aplicadas a su uso consulte "Documentación APIs".
¿Cómo crear una API DTMF?
Para ello solo tienes que acceder a tu panel de vPBX de Netelip, añadir el servicio API DTMF, pulsando en “Administrar” de vPBX.
Si todavía no es cliente de netelip puede registrarse en el siguiente enlace.
Una vez adquirida, pulsa sobre “Crear API DTMF”, y rellena el formulario de configuración.
- Nombre: Nombre de la aplicación API DTMF.
- URL: URL que conecta tu vPBX de Netelip con tu sistema web de datos. A esta url se enviarán los datos de la llamada mediante el método POST. Datos recibidos en la URL.
- Nº dígitos de entrada: Nº máximo de dígitos que el usuario puede marcar. En el caso de seleccionar “0”, la API no recoge información introducida por el usuario, ejecutando automáticamente el envío mediante POST a la URL indicada. El valor dtmf en el POST irá vacío (ejemplo 3).
- Mensaje: Locución que se presenta al iniciar la API DTMF. Si queremos utilizar este mensaje tendremos que marcar esta opción.
- Tiempo de espera: Tiempo de espera que la API DTMF espera a que se le de una contestación.
Si la API no recibe la contestación esperada o supera el tiempo de espera, éste volverá a ejecutar la petición de respuesta.
A continuación generamos las distintas opciones del API DTMF pulsando sobre el botón “Agregar opción”. Estas opciones corresponderán al resultado devuelto por la ejecución de la URL.
Por ejemplo: Si la ejecución de la url devuelve 3, esto le indica a la vPBX que lance la opción 3 de la API DTMF.
Una vez configurado, pulsamos “Aceptar”.
Generando la URL
La URL es un fichero ubicado en un servidor web, que realizará una tarea y devolverá a la vPBX la opción siguiente a lanzar.
El script del fichero anteriormente indicado puede ser realizada en cualquier lenguaje de programación de servidor, y devolviendo sólo y exclusivamente un número, entre 1 y 9, correspondiente a la opción de la API DTMF.
Puede consultar la lista completa de comandos en el apartado "Comandos disponibles".
Datos recibidos en la URL
La URL configurada en API DTMF recibirá los siguientes datos mediante POST
Campo | Descripción |
---|---|
dtmf | Dígitos que el usuario marca en la llamada |
api | Nombre de la API DTMF que se ejecuta |
id | Identificador de la llamada |
src | Nº de teléfono desde el que el usuario hace la llamada |
dest | Nº de teléfono al que el usuario llama |
Ejemplos de apps de API DTMF
Creando una API DTMF para atención de clientes
A continuación vamos a crear una API DTMF que gestionará una cartera de clientes con su correspondiente comercial.
Nº contrato | Comercial |
---|---|
2365 | comercial1 |
5432 | comercial2 |
6753 | comercial1 |
1º.- Suponemos que ya tenemos creadas las distintas extensiones de nuestros comerciales, con lo que creamos nuestra API DTMF llamada “gestionusuario”
2º.- Enlazamos la entrada de la llamada con nuestra API DTMF, para ello accedemos a “Numeración” de vPBX y configuramos el enrutamiento del nº de teléfono pulsando en “Editar”.
3º-. Programamos nuestra URL. A continuación se muestra una pequeña programación en php que según el nº de contrato se pasa la llamada a una opción u otra. Si vPBX recibe 1, mandará la llamada hacia la opción 1, comercial1; si 2, hacia el comercial2,...
Para simplificar la programación de ejemplo no se ha añadido base de datos, pero el nº de contrato junto con su opción debe ir almacenado en ella, para dar mayor dinamismo al proceso.
<?php
$dtmf = $_POST["dtmf"];
$id = $_POST["id"];
$src = $_POST["src"];
$dest = $_POST["dest"];
$api = $_POST["api"];
switch($dtmf) {
case "2365":
$option = "1";
break;
case "5432":
$option = "2";
break;
case "6753":
$option = "1";
break;
}
echo $option;
?>
Creando una API DTMF de reconocimiento de cliente por nº de teléfono desde el que llama.
A continuación se crea una API DTMF que será capaz de reconocer al cliente por el nº de teléfono desde el que llama.
Nº de teléfono | Opción |
---|---|
912345678 | opción1 |
912345677 | opción2 |
1º.- Generamos la API DTMF llamada “crm”
2º.- Enlazamos la entrada de la llamada con nuestra API DTMF, para ello accedemos a “Numeración” de vPBX y configuramos el enrutamiento del nº de teléfono pulsando en “Editar”.
3º-. Programamos nuestra URL. A continuación se muestra una pequeña programación en php que según el nº de teléfono desde el que se llama la llamada es pasada a una opción u otra.
Para simplificar la programación de ejemplo no se ha añadido base de datos, pero el nº de contrato junto con su opción debe ir almacenado en ella, para dar mayor dinamismo al proceso.
$dtmf = $_POST["dtmf"];
$id = $_POST["id"];
$src = $_POST["src"];
$dest = $_POST["dest"];
$api = $_POST["api"];
switch($dtmf) {
case "912345678":
$option = "1";
break;
case "912345677":
$option = "2";
break;
}
echo $option;
?>
Creando una API DTMF para acceso por usuario y contraseña
A continuación vamos a crear una API DTMF que controlará el acceso al IVR mediante usuario y contraseña.
Usuario | Contraseña | IVR |
---|---|---|
1111 | 2222 | IVR1 |
1º.- Generamos dos API DTMF, una para la petición de usuario (API DTMF usuario) y la otra para pedir la contraseña (API DTMF contraseña).
API DTMF “pidecontraseña”
API DTMF “pideusuario”
2º.- Enlazamos la entrada de la llamada con nuestra API DTMF, para ello accedemos a “Numeración” de vPBX y configuramos el enrutamiento del nº de teléfono pulsando en “Editar”.
3º-. Generamos la URL “pideusuario”. Esta URL comprobará la existencia del usuario, si existe, la URL devolverá 1, la opción que encadena con la siguiente API DTMF “pidecontraseña”, para que solicite la contraseña. Si devuelve 2, ejecutará la locución “no_registrado”, si devuelve un valor vacío, volverá a solicitar el usuario.
Generamos la URL “pidecontraseña”. Esta URL comprobará la contraseña junto con el usuario introducido anteriormente, si existe el usuario y contraseña, la URL devolverá 1, ejecutando la opción1, dando acceso al IVR “Bienvenido”. Si no existe usuario y contraseña, la URL devolverá 2, ejecutando la opción 2, lanzando la locución “no_registrado”.
Para simplificar la programación de ejemplo no se ha añadido las variables $usuario y $contraseña en base de datos, pero deben de ir almacenadas en ella, para dar mayor dinamismo al proceso.
/* Para este ejemplo necesitaremos crear una tabla de base de datos donde almacenaremos
el id de la llamada y el usuario marcado por la persona que llama.*/
$usuario="1111";
$contraseña="2222";
$dtmf = $_POST["dtmf"];
$id = $_POST["id"];
$src = $_POST["src"];
$dest = $_POST["dest"];
$api = $_POST["api"];
switch($api) {
case "pideusuario":
$usuario_recibido=$dtmf;
//almacenamos la variable $usuario_recibido
$sql_insercion="insert into tabla_usuario(usuario, clave, id_llamada) values ('$usuario_recibido', '','$id')";
mysql_query($sql_insercion);
if ($usuario_recibido==$usuario){
echo "1";
}else{
echo "2";
}
break;
case "pidecontraseña":
$clave=$dtmf;
//sacamos la variable $usuario_recibido
$sql_select="select usuario from tabla_usuario where id_llamada like '$id'";
$sent_select=mysql_query($sql_select);
$reg_select=mysql_fetch_array($sent_select);
$usuario_anterior=$reg_select["usuario"];
if ($usuario_anterior==$usuario && $clave==$contraseña){
echo "1";
}else{
echo "2";
}
break;
}
?>