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 

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 

Firma no correcta 

Línea infocaller no válida 

Línea infocaller apagada 

Fecha/Hora no válida 

Teléfono no válido 

Valor Esperamax no válido 

Valor reintentos no válido 

Grupo de reglas no existe o no es válido 

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” 


<callRequest xmlns='http://tempuri.org/'>
<UserID>
 <idinfocaller>
123456789</idinfocaller>
 <firma>
a2e12e9171fec3ebbb9c3c2a41b0b722</firma>
 
</UserID>
<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:


<callRequest xmlns='http://tempuri.org/'>
<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.