Con Infocaller es posible emitir llamadas telefónicas desde cualquier aplicación que pueda hacer una llamada HTTPS y enviar información por POST.
Una vez emitida la llamada, las acciones que se llevan a cabo en la misma se definen en las acciones y reglas de infocaller y se puede hacer uso dentro del guion de la API Interactiva. En un guion de infocaller se puede conectar la llamada realizada con otra llamada saliente y así conseguir un sistema “click-to-call” muy potente que te aporta la flexibilidad de llamar primero al cliente y luego a tu call center (para optimizar el tiempo de los agentes), o llamar primero al agente y luego al cliente (para optimizar la calidad de la llamada).
En esta sección se describe la forma en que deben prepararse las llamadas HTTPS para que sean autenticadas y procesadas correctamente por infocaller.
La petición de emisión de llamada debe enviarse por POST en formato JSON o XML. La petición está dividida en dos secciones; una de identificación y otra con los datos de la llamada.
- URL - La dirección para enviar las solicitudes de emisión de llamadas es https://apicall.infoe.es
- POST – Al acceder a la anterior URL debe enviar por POST una variable llamada apiCALLjson o apiCALLxml, según corresponda, que contendrá la información de la petición:
- Los datos de autenticación en nuestra plataforma
- Los datos de la llamada a realizar
- Las variables que se quieran utilizar en la llamada
Estructura del XML
El XML deberá tener la siguiente estructura, dividida en una primera sección de identificación y otra con la información de la solicitud de llamada:
<callRequest xmlns='http://tempuri.org/'>
<UserID>
<idinfocaller></idinfocaller>
<firma></firma>
</UserID>
<callData>
<numtelefono></numtelefono>
<gruporeglas></gruporeglas>
<fechahora></fechahora>
<EsperaMax></EsperaMax>
<Reintentos></Reintentos>
<CustVars>
<CustVar>
<VarName></VarName>
<VarValue></VarValue>
</CustVar>
<CustVar>
<VarName></VarName>
<VarValue></VarValue>
</CustVar>
</CustVars>
</callData>
</callRequest>
Azul: datos opcionales Rojo: datos obligatorios
Estructura del JSON
El XML deberá tener la siguiente estructura, dividida en una primera sección de identificación y otra con la información de la solicitud de llamada:
{"callRequest": {
"UserID": {
"idinfocaller": "DATO",
"firma": "DATO"
},
"callData": {
"numtelefono": "DATO",
"gruporeglas": "DATO",
"fechahora": "DATO",
"EsperaMax": "DATO",
"Reintentos": "DATO",
"CustVars": {
"CustVar": [
{
"VarName": "DATO",
"VarValue": "DATO"
},
{
"VarName": "DATO",
"VarValue": "DATO"
}
]
}
}
}
}
Azul: datos opcionales Rojo: datos obligatorios
Sección de 'Autenticación'
Los comandos de autenticación sirven para que validemos que la solicitud proviene de un cliente autorizado y para asociar la llamada a una línea infocaller.
La sección de autenticación incluye dos datos, que son:
<UserID>
<idinfocaller> numero</idinfocaller>
<firma>cadena_md5</firma>
</UserID>
- idinfocaller: número del servicio infocaller con el que se realizarán las llamadas, incluyendo el código de país. Puede consultar el número de servicio en su cuenta, en la pestaña “Configurar”.
- firma: se trata de una medida de seguridad de infocaller para garantizar la autenticación. Para obtener la firma primero se concatenan dos valores: <idinfocaller> + <contraseña línea>. La “contraseña línea” la puede obtener en la configuración del servicio infocaller en la pestaña de ‘inicio’. Al texto obtenido de la concatenación de estos dos valores se le debe aplicar un algoritmo denominado MD5 (explicado en el Apéndice 1 de este documento). El resultado es el que se debe indicar como “cadena_md5” en la firma.
Un ejemplo de autenticación:
Si el número del servicio infocaller fuese: 123456789
Si la “contraseña línea” del servicio fuese: 3956
Aplicando el algoritmo MD5 a 1234567893956 se obtiene el resultado
a2e12e9171fec3ebbb9c3c2a41b0b722 Y los comandos de autenticación serían:
<idinfocaller> 123456789 </idinfocaller>
<firma> a2e12e9171fec3ebbb9c3c2a41b0b722 </firma>
Sección 'callData' (con * son requeridos)
- numtelefono *: Teléfono de destino de la llamada en formato internacional. Si no se especifica país, se asume el configurado en el servicio infocaller.
- gruporeglas *: El nombre del grupo de reglas del servicio infocaller que quiere utilizar para la Emisión de llamadas. Este grupo de reglas no es necesario que esté en estado “Activo”. Cuando está en estado “Activo” actúa siempre sobre las llamadas entrantes al número infocaller. Por lo tanto, el grupo de reglas de Emisión de llamadas no debe confundirse con el que se utiliza para Llamadas entrantes.
- Fechahora: si no se especifican se asume que la llamada se realizará inmediatamente. Formato: AAAA-MM-DDTHH:MM:SS (24 horas)
- EsperaMax: tiempo en minutos, a partir de la fecha y hora de envío, durante el que se mantendrá la peti- ción en espera en caso de no disponer de líneas simultáneas disponibles. Al caducar el tiempo, la petición se anulará y se registrará el intento fallido en la consulta de actividad. Valor por defecto: 5 minutos. Valor máximo 300 minutos.
- Reintentos: Número de reintentos en caso de que la llamada comunique. Los reintentos se realizarán con intermedios mínimos de 5 minutos. Las llamadas que no contestan no se reintentarán. Valor por defecto: 0 reintentos. Valor máximo: 4 reintentos
Respuesta a la petición
En el momento de recibir la petición, se enviará una respuesta XML o JSON sencilla indicando si la petición ha sido aceptada o no. En caso de no ser aceptada se indicará el motivo.
Estructura del XML
<?xml version='1.0'?>
<callRequest>
<idcall></idcall>
<Resultado></Resultado>
<ResultadoTexto></ResultadoTexto>
</callRequest>
Estructura del JSON
{ "callRequest": {
"idcall": "DATO",
"Resultado": "DATO",
"ResultadoTexto": "DATO"
}
}
idcall: identificador único asignado por infocaller a las peticiones de llamada válidas.
Resultado | ResultadoTexto |
0 | Aceptada |
-1 | Identificación no correcta |
-2 | Identificación no indicada |
-3 | Formato XML no correcto |
-99 | No se recibe el parámetro XML |
-100 | Error interno |
1 | Firma no correcta |
2 | Línea infocaller no válida |
3 | Línea infocaller apagada |
4 | Fecha/Hora no válida |
5 | Teléfono no válido |
6 | Valor Esperamax no válido |
7 | Valor reintentos no válido |
8 | Grupo de reglas no existe o no es válido |
9 | Regla de fin de llamada |
10 | Línea suspendida |
11 | Saldo insuficiente |
12 | Límite de crédito excedido |
13 | Ninguna regla válida en grupo de reglas |
14 | Excedido número máximo de emisión de llamadas. Contactar con Atención al Cliente. |
Nota: controles adicionales a los efectuados por la API HTTPS serán realizados en el momento de realizar la llamada (controles administrativos del cliente, validez de opciones avanzadas, etc.). En caso de no ser aprobado se podrán enviar notificaciones al cliente a través de correo electrónico.
Ejemplos:
Llamada informativa con posible desvío:
Se emiten llamadas para informar del estado de una reparación. Se crea un grupo de reglas “Estado Reparación” con un guión en infocaller que en función de la variable ESTADO reproducirá uno u otro mensaje y pasará la llamada al taller en uno de los casos:
ESTADO = 1 – “Le informamos que su reparación ha sido realizada y puede pasar por el taller”
ESTADO = 2 – “Le informamos que para finalizar la reparación debe aprobar el presupuesto. Le pasamos la llamada con el taller para obtener todos los detalles y dar su aprobación”
<UserID>
<idinfocaller>123456789</idinfocaller>
<firma>a2e12e9171fec3ebbb9c3c2a41b0b722</firma>
<callData>
<numtelefono>34911888920</numtelefono>
<gruporeglas>Estado Reparación</gruporeglas>
<esperamax>30</esperamax>
<CustVars>
<CustVar>
<VarName>ESTADO</VarName>
<VarValue>2</VarValue>
</CustVar>
</CustVars>
</callData>
</callRequest>
Click-to-call:
Se emite una llamada a una hora determinada para conectar al destinatario a un proveedor que ha elegido (un destino variable). Se crea un grupo de reglas “Click to Call” con un guión en infocaller que emite una locución y realiza una llamada al número de teléfono indicado en la variable CALLCENTER:
<UserID>
<idinfocaller>123456789</idinfocaller>
<firma>a2e12e9171fec3ebbb9c3c2a41b0b722</firma>
</UserID>
<callData>
<numtelefono>+34611222333</numtelefono>
<gruporeglas>Click to Call</gruporeglas>
<fechahora>2020-09-25T16:00:00</fechahora>
<esperamax>180</esperamax>
<reintentos>2</reintentos>
<CustVars>
<CustVar>
<VarName>CALLCENTER</VarName>
<VarValue>+34911888920</VarValue>
<CustVar>
</CustVars>
</callData>
</callRequest>
Apéndice 1 : Algoritmo MD5
El algoritmo MD5 convierte un texto en una reducción criptográfica mediante unas fórmulas matemáticas.
Por ejemplo, el texto "Esto sí es una prueba de MD5” se convierte en el “hash” “e99008846853ff3b725c27315e469fbc” de forma unívoca. Pero no es posible obtener la frase original a partir del “hash”. Esto lo hace especialmente útil para que sirva como sistema de autenticación cuando no se conoce el texto original. Se puede obtener una explicación más amplia en https://es.wikipedia.org/wiki/MD5
El MD5 es utilizado para que aumentar la seguridad en el proceso de autenticación del cliente.
A los efectos de esta aplicación se debe obtener una función de conversión MD5 en el lenguaje de la aplicación o página web desde la que se realizará las solicitudes. Existen muy diversas aplicaciones gratuitas que se pueden localizar utilizando en un buscador de internet frases de búsqueda como “MD5 ASP”, “MD5 PHP”, “MD5 Java”, “MD5 Visual Basic”, etc., dependiendo del lenguaje que se utilizará. Es responsabilidad del cliente verificar la calidad y fiabilidad de la función de conversión MD5 que utilizará en su aplicación.
Si tuviera cualquier dificultad o limitación en el uso del MD5, por favor póngase en contacto con nuestro departamento de atención al cliente en la dirección help@infocaller.com
Tienes más información en nuestro blog.