La petición de emisión de llamada debe enviarse por POST en formato XML. Dicho XML está dividido 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 - La anterior URL tendrá que recibir por POST una variable llamada apiCALLxml que contendrá la información XML donde encontraremos:

  • 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


  • numtelefono: Teléfono de destino de la llamada. Si no se especifica país (con el “+” delante) 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 sencilla indicando si la petición ha sido aceptada o no. En caso de no ser aceptada se indicará el motivo.


<?xml version='1.0'?>
<callRequest>
   <idcall></idcall>
   <Resultado></Resultado>
   <ResultadoTexto></ResultadoTexto>
</callRequest>


  • 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 lla- mada (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 de respuesta:


<?xml version='1.0'?>
<callRequest>
   <idcall>21543</idcall>
   <Resultado>0</Resultado>
   <ResultadoTexto>Aceptada</ResultadoTexto>
</callRequest>
<?xml version='1.0'?>
<callRequest>
   <idcall>0</idcall>
   <Resultado>-3</Resultado>
   <ResultadoTexto>Formato XML no correcto</ResultadoTexto>

</callRequest>


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. El número de servicio lo puede consultar en “Mi Cuenta” en nuestra página web, en la pestaña “Configurar Servicios”.
  • 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>


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”


   <callRequest xmlns='http://tempuri.org/'>
      <UserID>
         <idinfocaller>123456789</idinfocaller>

<firma> a2e12e9171fec3ebbb9c3c2a41b0b722</firma> </UserID>

      <callData>
         <numtelefono>911888920</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 va- riable). 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: 



   <callRequest xmlns='http://tempuri.org/'>
      <UserID>
         <idinfocaller>123456789</idinfocaller>
         <firma> a2e12e9171fec3ebbb9c3c2a41b0b722</firma>
      </UserID>
      <callData>
         <numtelefono>+34611222333</numtelefono>
            <gruporeglas>Click to Call</gruporeglas>
            <fecha>30/04/2015</fecha>
            <hora>16:00:00</hora>
            <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 http://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 pue- den 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 depar- tamento de atención al cliente en la dirección soporte@infoe.es o en el teléfono 900 80 50 89.