APIs integracion
Producto: | VIVAit Call
VIVAit Suite |
---|
Sumario
- 1 Webservice ClicktoCall
- 2 Webservice CargaContactos
- 3 Script Cargacontactos
- 4 Script ImportaContactos
- 5 Webservice Chat
- 6 Webservice Generación de llamadas
- 7 Conexión externa a tracker
- 8 Webservice infoWS
- 9 Servicios rest proporcionados por intz-gh
1 Webservice ClicktoCall
Versión 1.0
1.1 Introducción
A través de este webservice, se podrán añadir contactos a las listas “llamame” del cliente. Estas listas serán gestionadas para la generación de campañas utilizadas en el marcador.
1.2 Invocación y parámetros
Para poder invocar a dicho webservice, se deberá hacer una petición http a la siguiente url:
http://xxx.xxx.xxx.xxx:xxxx/ClicktoCall/CreateClicktoCall
siendo xxx.xxx.xxx.xxx:xxxx la ip y el puerto donde haya sido desplegado el webservice
Se deberán pasar los parámetros a través de post.
Un ejemplo de invocación sería la siguiente
Los distintos parámetros que podemos indicar en dicha invocación son los siguientes:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
date | String | No | Fecha en la que se realizará la llamada, si el parámetro no se indica, se fija fecha actual.El formato del string que se debe enviar es
yyyy-MM-dd HH:mm:ss |
idLista | Integer | Si | Identificador de la lísta “llamame” en la que el contacto será insertado |
codCliente | String | No | Código del cliente |
nombre | String | Si | Nombre del cliente |
apellido1 | String | No | Primer apellido del cliente |
apellido2 | String | No | Segundo apellido del cliente |
empresa | String | No | Empresa del cliente |
direccion1 | String | No | Campo de dirección del cliente |
direccion2 | String | No | Campo de dirección del cliente |
cp | String | No | Código postal del cliente |
localidad | String | No | Localidad del cliente |
provincia | String | No | Provincia del cliente |
idpais | Integer | No | Identificador del país, si no se indica, será España |
String | No | E-mail del cliente | |
msisdn | String | Si | Número de teléfono del cliente |
gender | Integer | No | Indicador del género del cliente, si no se indica, sera masculino |
lang | Integer | Sí | Indicador del lenguaje a utilizar, si no se indica, será lenguaje español |
treatment | Integer | No | Indicador del tipo de tratamiento del cliente. |
op1int | Integer | No | Parámetro opcional 1 |
op2int | Integer | No | Parámetro opcional 2 |
op3int | Integer | No | Parámetro opcional 3 |
op4int | Integer | No | Parámetro opcional 4 |
op1 | String | No | Parámetro opcional 1 |
op2 | String | No | Parámetro opcional 2 |
op3 | String | No | Parámetro opcional 3 |
op4 | String | No | Parámetro opcional 4 |
1.3 Resultado y códigos de error
Si el webservice se ejecuta correctamente enviará el código de respuesta 200.
Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Descripción |
---|---|---|
SC_NOT_FOUND | 404 | |
SC_BAD_REQUEST | 400 | Not enough parameters |
SC_CONFLICT | 409 | Internal process error |
SC_INTERNAL_SERVER_ERROR | 500 | e.getMessage() |
2 Webservice CargaContactos
Versión 1.0
2.1 Introducción
A través de este webservice, se podrán añadir contactos a cualquiera de las campañas que se tenga definidas.
2.2 Invocación y párametros
Para poder invocar a dicho webservice, se deberá hacer una petición http a la siguiente url:
http://xxx.xxx.xxx.xxx:xxxx/CargaContactos/CreateCargaContactos
siendo xxx.xxx.xxx.xxx:xxxx la ip y el puerto donde haya sido desplegado el webservice
Se deberán pasar los parámetros a través de post.
Un ejemplo de invocación sería la siguiente
Los distintos parámetros que podemos indicar en dicha invocación son los siguientes:
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
date | Fecha en la que se realizará la llamada, si el parámetro no se indica, se fija fecha actual. El formato del string que se debe enviar es yyyy-MM-dd HH:mm:ss | No | Date |
obsoletos | Si vale 1, marcar como obsoletos los contactos anteriores, el valor por defecto es 0 | No | Integer |
diasCaducidad | Número de días a partir de los cuales caducarán los contactos, el valor por defecto es 30 días (este parámetro puede cambiarse en el fichero web.xml) | No | Integer |
idCampana | Identificador de la campaña en la que se insertará el contacto | Si | Integer |
idLista | Identificador de lista asociada a la campaña | Si | Integer |
prioridad | El valor es de 0 a 99. A mayor número mayor prioridad (se le llamará ANTES), por defecto se asigna valor 0 | No | Integer |
tipoTarea | Los posibles valores de la columna son:
Por defecto el valor es A |
No | String |
codCli | Identificador del código del cliente | No | String |
nombreCon | Nombre del cliente | No | String |
apellido1 | Primer apellido | No | String |
apellido2 | Segundo apellido | No | String |
empresa | Empresa | No | String |
direccion1 | Dirección 1 | No | String |
direccion1 | Dirección 1 | No | String |
direccion2 | Dirección 2 | No | String |
codPostal | Código postal | No | String |
localidad | Localidad | No | String |
provin | Provincia | No | String |
No | String | ||
valFijo_1 | Primer número fijo del contacto. | Si | Integer |
valFijo_2 | Segundo número fijo del contacto. | No | Integer |
valFijo_3 | Tercer número fijo del contacto. | No | Integer |
valFijo_4 | Cuarto número fijo del contacto. | No | Integer |
valMovil_1 | Primer número móvil del contacto. | Si | Integer |
valMovil_2 | Segundo número móvil del contacto. | No | Integer |
valMovil_3 | Tercer número móvil del contacto. | No | Integer |
valMovil_4 | Cuarto número móvil del contacto. | No | Integer |
edad | Edad. | No | Integer |
nOpc1 | Dato numérico opcional | No | Integer |
nOpc2 | Dato numérico opcional | No | Integer |
nOpc3 | Dato numérico opcional | No | Integer |
nOpc4 | Dato numérico opcional | No | Integer |
nOpc5 | Dato numérico opcional | No | Integer |
nOpc6 | Dato numérico opcional | No | Integer |
nOpc7 | Dato numérico opcional | No | Integer |
nOpc8 | Dato numérico opcional | No | Integer |
cOpc1 | Cadena opcional | No | String |
cOpc2 | Cadena opcional | No | String |
cOpc3 | Cadena opcional | No | String |
cOpc4 | Cadena opcional | No | String |
cOpc5 | Cadena opcional | No | String |
cOpc6 | Cadena opcional | No | String |
cOpc7 | Cadena opcional | No | String |
cOpc8 | Cadena opcional | No | String |
id_idioma | Idioma del contacto. Por defecto el valor es 0, no se asigna idioma al contacto | No | String |
2.3 Resultado y códigos de error
Si el webservice se ejecuta correctamente enviará el código de respuesta 200. Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Descripción |
---|---|---|
SC_NOT_FOUND | 404 | |
SC_BAD_REQUEST | 400 | Not enough parameters |
SC_FORBIDDEN | 403 | Client in Robinson List |
SC_CONFLICT | 409 | Internal process error |
SC_INTERNAL_SERVER_ERROR | 500 | Problems in SQL querys
e.getMessage() |
El CargaContactos verifica que los campos obligatorios IDcampanna e IDlista existen en la Base de Datos.
En caso contrario retornará error:
No existe campanna ó No existe lista
2.4 Configuración del fichero web.xml
En este fichero, se deben fijar los valores de despliegue correctos de la aplicación. Este fichero se encuentra en la ruta de despliegue del WAR (/var/lib/tomcatx/webapps/CargaContactos/WEB-INF/web.xml)
<context-param> <description>Servidor BBDD</description> <param-name>bd_acd_servidor</param-name> <param-value>xxx.xxx.xxx.xxx</param-value> </context-param> <context-param> <description>BBDD</description> <param-name>bd_acd_bd</param-name> <param-value>xxxxxxx</param-value> </context-param> <context-param> <description>Usuario BBDD</description> <param-name>bd_acd_usuario</param-name> <param-value>xxxxxx</param-value> </context-param> <context-param> <description>Usa Clave</description> <param-name>bd_usa_clave</param-name> <param-value>0</param-value> </context-param> <context-param> <description>Clave BBDD</description> <param-name>bd_acd_clave</param-name> <param-value>xxxxxxxx</param-value> </context-param> <context-param> <description>Dias Caducidad</description> <param-name>caducidad</param-name> <param-value>30</param-value> </context-param>
Parámetro | Descripción |
---|---|
bd_acd_servidor | IP donde se encuentre ubicada la base de datos |
bd_acd_bd | Nombre de la base de datos a utilizar |
bd_acd_usuario | Usuario de la base de datos |
bd_usa_clave | Parámetro que indica si el password esta cifrado o no, por defecto el valor es 0 (No cifrado) |
bd_acd_clave | Clave para la conexión a base de datos. |
caducidad | Días de caducidad del contacto, por defecto se asignan 30 días |
3 Script Cargacontactos
3.1 Descripción
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.
3.2 Configuración
El archivo de configuración recibe el nombre de cargaContactos.pconf. Este archivo reside en /etc/MDtel. El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.
Parámetro | Valor | Obligatorio | Defecto |
---|---|---|---|
db | Nombre de la base de datos | SI | nimitz |
dbHost | Host MySQL | SI | localhost |
dbPort | Puerto MySQL | NO | 3306 |
dbUsuario | Usuario de acceso a la base de datos | SI | |
dbClave | Clave del usuario | SI | |
rutaContactos | Ruta hasta el archivo de contactos | NO | /var/spool/MDtel/contactos |
obsoletos | Si vale 1, marcar como obsoletos los contactos anteriores | NO | 0 |
diasCaducidad | Número de dias a partir de los cuales caducarán los contactos | SI | Por defecto la script está configurada con 300 días |
idCampanna | Número de columna que contiene el ID de la campaña | SI | |
idLista | Numero de columna que contiene el ID de la lista | SI | |
prioridad | Número de columna que contiene la prioridad | NO | Nota: El valor es de 0 a 99. A mayor número mayor prioridad (se le llamará ANTES) |
tipoTarea | Número de columna que contiene el tipo de tarea | NO | Nota: los posibles valores de la columna son : *A: Alta *M: Modificación *B: Baja Por defecto el valor es A |
codCli | Número de columna del CSV que contiene el código de cliente | SI | |
nombreCon | Número de columna del CSV que contiene el nombre | NO | |
apellido1 | Número de columna del CSV que contiene el primer apellido | NO | |
apellido2 | Número de columna del CSV que contiene el segundo apellido | NO | |
empresa | Número de columna del CSV que contiene la empresa | NO | |
direccion1 | Número de columna del CSV que contiene la dirección | NO | |
direccion2 | Número de columna del CSV que contiene la dirección 2 | NO | |
codPostal | Número de columna del CSV que contiene el código postal | NO | |
localidad | Número de columna del CSV que contiene la localidad | NO | |
provin | Número de columna del CSV que contiene la provincia | NO | |
Número de columna del CSV que contiene el email | NO | ||
valFijo_1 | Número de columna del CSV que contiene el primer número fijo del contacto | SI | |
valFijo_2 | Número de columna del CSV que contiene el segundo número fijo del contacto | NO | |
valFijo_3 | Número de columna del CSV que contiene el tercer número fijo del contacto | NO | |
valFijo_4 | Número de columna del CSV que contiene el cuarto número fijo del contacto | NO | |
valMovil_1 | Número de columna del CSV que contiene el primer número móvil del contacto | SI | |
valMovil_2 | Número de columna del CSV que contiene el segundo número móvil del contacto | NO | |
valMovil_3 | Número de columna del CSV que contiene el tercer número móvil del contacto | NO | |
valMovil_4 | Número de columna del CSV que contiene el CUARTO número móvil del contacto | NO | |
edad | Número de columna del CSV que contiene la edad | NO | |
nOpc1 | Número de columna del CSV que contiene dato numérico opcional | NO | |
nOpc2 | Número de columna del CSV que contiene dato numérico opcional | NO | |
nOpc3 | Número de columna del CSV que contiene dato numérico opcional | NO | |
nOpc4 | Número de columna del CSV que contiene dato numérico opcional | NO | |
nOpc5 | Número de columna del CSV que contiene dato numérico opcional | NO | |
nOpc6 | Número de columna del CSV que contiene dato numérico opcional | NO | |
nOpc7 | Número de columna del CSV que contiene dato numérico opcional | NO | |
nOpc8 | Número de columna del CSV que contiene dato numérico opcional | NO | |
cOpc1 | Número de columna del CSV que contiene cadena opcional | NO | |
cOpc2 | Número de columna del CSV que contiene cadena opcional | NO | |
cOpc3 | Número de columna del CSV que contiene cadena opcional | NO | |
cOpc4 | Número de columna del CSV que contiene cadena opcional | NO | |
cOpc5 | Número de columna del CSV que contiene cadena opcional | NO | |
cOpc6 | Número de columna del CSV que contiene cadena opcional | NO | |
cOpc7 | Número de columna del CSV que contiene cadena opcional | NO | |
cOpc8 | Número de columna del CSV que contiene cadena opcional | NO |
3.3 Funcionamiento
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:
cmd# cargaContactos.pl /<ruta hasta el conf>/cargaContactos.pconf <archivo CSV>
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas ACD_CONTACTOS y ACD_CONTACTOS_CAMPANNAS.
La utilidad crea un log en /var/log/cargaContactos.log en el que vuelca toda la operativa. Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.
4 Script ImportaContactos
4.1 Descripción
Creación del script importaContactos.pl para la importación de contactos a las campañas de marcación saliente.
El script incorpora las siguientes caracteristicas:
- Uso del webService cargaContactos.
- Configuración de posición del campo en el archivo de importación.
- Configuración de parámetros por defecto.
- Uso de mascaras para la importación de archivos.
- Uso de SFTP para los archivos a importar.
- Configuración del formato de fecha.
4.2 Fichero de Configuración
El archivo de configuración es el siguiente: Esta autocomentado el uso de los campos de configuración.
# Configuracion de importaContactos.pl # 0: Solo alarmas en archivo log - 1: alarmas y trazas defecto 1 $depurar = 1; Archivo de log (: salida estandar) defecto $logArch = ; $logArch = '/var/log/importaContactos.log'; Directorio donde se encuentran los ficheros de contactos a importar $dirFicheros = '/tmp/contactos'; Directorio donde se dejaran los ficheros ya tratados $dirFicherosTratados = '/tmp/contactosTratados'; #Patron de archivos a tratar defecto $patronArchivos = "csv\$"; #Número de archivos a tratar en cada invocacion 0 todos los archivos defecto 0 $numArchivosTratar = 0; #Separador de campos del archivo de contactos defecto ';' #$separadorCampos = ";"; Formato de fecha defecto '%d-%m-%Y' http://search.cpan.org/~drolsky/DateTime-Format-Strptime-1.75/lib/DateTime/Format/Strptime.pm #$formatoFecha = "%d-%m-%Y"; url del webService para cargar contactos la url es completa con el puerto defecto: http://localhost:yyyy/CargaContactos/CreateCargaContactos $urlWebService='http://xxx.xx.xxx.xxx:yyyy/CargaContactos/CreateCargaContactos'; Configuracion SFTP SFTPhay - Si existe SFTP (0 - no, 1 - si) defecto 0 $SFTPhay = 1; $SFTPhost = 'xxx.xx.xxx.xxx'; $SFTPport = 'xx'; $SFTPusuario = 'user'; $SFTPclave = 'password'; $SFTPdir = '/data';
4.3 Campos
Los campos que pueden rellenarse de un contacto
Si el valor del campo empíeza por # y luego un número es la posición del campo en el fichero de importación el valor del primer campo es el 0.
Si el valor no empieza por # es el valor por defecto que se incluirá en todos los contactos.
Campo | Valor | Tipo | Obligatorio | Defecto | Observaciones | Ejemplo |
---|---|---|---|---|---|---|
$campoDate | Fecha en la que se realizará la lamada | Date | NO | Fecha actual (Ahora) | El formato del string que se debe enviar es yyyy-MM-dd HH:mm:ss | $campoDate = '#1'; |
#$campoObsoletos | Si vale 1, marca como obsoletos los contactos anteriores | Integer | NO | 0 | #$campoObsoletos = 0; | |
#$campoDiasCaducidad | Número de días a partir de los cuales caducarán los contactos | Integer | NO | 30 | #$campoDiasCaducidad = 30; | |
$campoIdCampana | Identificador de la campaña en la que se insertará el contacto | Integer | SI | $campoIdCampana = '#2'; | ||
$campoIdLista | Identificador de la lista en la que se insertará el contacto | Integer | SI | $campoIdLista = 1; | ||
#$campoPrioridad | El valor es de 0 a 99. A mayor número mayor prioridad (se le llamará ANTES) | Integer | NO | 0 | ||
#$campoTipoTarea | Tipo de tarea que se ejecutara al insertar el contacto | Cadena | NO | A | Los posibles valores de la columna son: A: Alta, M: Modificación, B: Baja | |
#$campoCodCli | Identificador del código del cliente | Cadena | NO | |||
#$campoNombreCon | Nombre del cliente | Cadena | NO | |||
#$campoApellido1 | Primer apellido | Cadena | NO | |||
#$campoApellido2 | Segundo apellido | Cadena | NO | |||
#$campoEmpresa | Empresa | Cadena | NO | |||
#$campoDireccion1 | Dirección 1 | Cadena | NO | |||
#$campoDireccion2 | Dirección 2 | Cadena | NO | |||
#$campoCodPostal | Código postal | Cadena | NO | |||
#$campoLocalidad | Localidad | Cadena | NO | |||
#$campoProvin | Provincia | Cadena | NO | |||
#$campoEmail | Cadena | NO | ||||
#$campoValFijo_1 | Primer número fijo del contacto | Integer | SI | ó este ó el primer móvil | ||
#$campoValFijo_2 | Segundo número fijo del contacto | Integer | NO | |||
#$campoValFijo_3 | Tercer número fijo del contacto | Integer | NO | |||
#$campoValFijo_4 | Cuarto número fijo del contacto | Integer | NO | |||
$campoValMovil_1 | Primer número móvil del contacto | Integer | SI | ó este ó el primer fijo | $campoValMovil_1 = '#0'; | |
$campoValMovil_2 | Segundo número móvil del contacto | Integer | NO | |||
$campoValMovil_3 | Tercer número móvil del contacto | Integer | NO | |||
$campoValMovil_4 | Cuarto número móvil del contacto | Integer | NO | |||
#$campoEdad | Edad | Integer | NO | |||
#$campoNOpc1 | Dato numérico opcional | Integer | NO | |||
#$campoNOpc2 | Dato numérico opcional | Integer | NO | |||
#$campoNOpc3 | Dato numérico opcional | Integer | NO | |||
#$campoNOpc4 | Dato numérico opcional | Integer | NO | |||
#$campoNOpc5 | Dato numérico opcional | Integer | NO | |||
#$campoNOpc6 | Dato numérico opcional | Integer | NO | |||
#$campoNOpc7 | Dato numérico opcional | Integer | NO | |||
#$campoNOpc8 | Dato numérico opcional | Integer | NO | |||
#$campoCOpc1 | Cadena opcional | Cadena | NO | |||
#$campoCOpc2 | Cadena opcional | Cadena | NO | |||
#$campoCOpc3 | Cadena opcional | Cadena | NO | |||
#$campoCOpc4 | Cadena opcional | Cadena | NO | |||
#$campoCOpc5 | Cadena opcional | Cadena | NO | |||
#$campoCOpc6 | Cadena opcional | Cadena | NO | |||
#$campoCOpc7 | Cadena opcional | Cadena | NO | |||
#$campoCOpc8 | Cadena opcional | Cadena | NO | |||
#$campoId_idioma | Idioma del contacto | Cadena | NO | 0 | Por defecto el valor es 0, no se asigna idioma al contacto |
5 Webservice Chat
6 Webservice Generación de llamadas
Versión 1.0
Acuerdo de interfaz del servicio de generación de llamadas v1.0
6.1 Introducción
El servicio de generación de llamadas permite la realización de llamadas en el entorno Vivait-Call y Vivait-Suite desde aplicaciones externas.
6.2 Invocación y parámetros en entorno Vivait-Call
El servicio se invoca mediante petición http Get a la siguiente url: http://host:port/WS_generaLlamada? Siendo host y port la ip y el puerto dónde haya sido desplegado el webservice.
6.2.1 Parámetros
Un ejemplo de invocación sería la siguiente: http://localhost:8180/WS_generaLlamada?token=HgdT76Fiopxvcu&origen=40000&destino=40001
Los distintos parámetros que podemos indicar en dicha invocación son los siguientes:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
token | String | Si | Código de autenticación |
Origen | String | Si | Extensión, login numérico o cuenta de agente al que asociar la llamada |
Destino | String | Si | Destino telefónico a alcanzar |
6.2.2 Resultado y códigos de error en entorno Vivait Call
Si el webservice se ejecuta correctamente enviará el código de respuesta http SC_OK 200 y el UCID de la llamada generada.
Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Mensaje | Descripción |
---|---|---|---|
SC_BAD_REQUEST | 400 | Llamada en curso | En caso de que haya una llamada en curso con el mismo origen y destino |
SC_BAD_REQUEST | 400 | Nodo no recuperado | El origen no tiene un nodo asociado |
SC_BAD_REQUEST | 400 | Excepción no controlada | |
SC_BAD_REQUEST | 400 | Falta parámetro token | No se ha recibido el token de autenticación |
SC_BAD_REQUEST | 400 | Error al comprobar token | No se ha podido validar el token |
SC_BAD_REQUEST | 400 | Parámetros origen o destino no encontrados | Falta alguno de los parámetros obligatorios |
6.3 Invocación y parámetros en entorno Vivait-Suite
El servicio se invoca mediante petición http Get a la siguiente url: http://host:port/WS_generaLlamada/acd? Siendo host y port la ip y el puerto dónde haya sido desplegado el webservice.
6.3.1 Parámetros
Un ejemplo de invocación sería la siguiente:
http://localhost:8180/WS_generaLlamada/acd?token= HgdT76Fiopxvcu &origen=40000&destino=40001&grupoACD=89090
Los distintos parámetros que podemos indicar en dicha invocación son los siguientes:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
token | String | No | Código de autenticación |
Origen | String | Si | login numérico o cuenta de agente al que asociar la llamada |
Destino | String | Si | Destino telefónico a alcanzar |
grupoACD | String | Si | GrupoACD al que el agente está logado y en el cuál vamos a meter la llamada condicionada a que la atienda el agente |
6.3.2 Resultado y códigos de error en entorno Vivait Suite
Si el webservice se ejecuta correctamente enviará el código de respuesta http SC_OK 200 y el UCID de la llamada generada.
Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Mensaje | Descripción |
---|---|---|---|
SC_BAD_REQUEST | 400 | Llamada en curso | En caso de que haya una llamada en curso con el mismo origen y destino |
SC_BAD_REQUEST | 400 | Nodo no recuperado | El origen no tiene un nodo asociado |
SC_BAD_REQUEST | 400 | GrupoACD o agente no asignado | El agente o el grupoACD no han sido encontrados o el agente no está logado en el grupo indicado |
SC_BAD_REQUEST | 400 | Excepción no controlada | |
SC_BAD_REQUEST | 400 | Falta parámetro token | No se ha recibido el token de autenticación |
SC_BAD_REQUEST | 400 | Error al comprobar token | No se ha podido validar el token |
SC_BAD_REQUEST | 400 | Parámetros origen o destino no encontrados | Falta alguno de los parámetros obligatorios |
7 Conexión externa a tracker
7.1 Introducción
A través de los distintos webservices incluidos dentro de la aplicación web Vivait-Tracker, cualquier aplicación externa podrá descargar o reproducir las grabaciones disponibles en el entorno Vivait-Suite.
7.2 Webservices desplegados
7.2.1 Login en la plataforma
7.2.1.1 Introducción
Este webservice permitirá logarse en la plataforma para la posterior descarga o reproducción de grabaciones. Para poder utilizar las funcionalidades de la aplicación Vivait-Tracker es necesario disponer de un usuario dado de alta en la plataforma Vivait-Suite con los permisos correspondientes.
Una vez este webservice sea invocado, se asociará una sesión al usuario, permitiéndole realizar la descarga o reproducción de grabaciones.
7.2.1.2 Invocación
Para poder invocar a dicho webservice, se deberá hacer una petición POST http a la siguiente url:
http://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/remotelogin
siendo xxx.xxx.xxx.xxx:xxxx la ip y el puerto donde haya sido desplegado la aplicación Vivait-Tracker.
Se deberán pasar los parámetros a través de post.
Un ejemplo de invocación sería la siguiente
https://xxx.xx.xxx.xxx:8443/Vivait-Tracker/remotelogin?param1=demo01¶m2=00448311
Los distintos parámetros que podemos indicar en dicha invocación son los siguientes:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
param1 | String | Si | Cuenta del usuario dado de alta en Vivait-Suite |
param2 | String | Si | Contraseña del usuario |
7.2.1.3 Resultado y códigos de error
Si el webservice se ejecuta correctamente enviará el código de respuesta 200.
Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Descripción |
---|---|---|
SC_NOT_FOUND | 404 | |
SC_BAD_REQUEST | 400 | Sólo acepta parámetros por post |
SC_FORBIDDEN | 403 | Los parámetros son incorrectos |
7.2.2 Solicitud de segmentos pertenecientes al UCID
7.2.2.1 Introducción
Este webservice permitirá conocer los distintos segmentos que conforman la llamada identificada con el UCID facilitado.
7.2.2.2 Invocación
Para poder invocar a dicho webservice, se deberá hacer una petición POST https a la siguiente url:
https://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/infoSegmentos
siendo xxx.xxx.xxx.xxx:xxxx la ip y el puerto donde haya sido desplegado la aplicación Vivait-Tracker.
Se deberán pasar los parámetros a través de post.
Un ejemplo de invocación sería la siguiente
https://xxx.xx.xxx.xxx:8180/Vivait-Tracker/infoSegmentos?param1=10201643591470126599
Los distintos parámetros que podemos indicar en dicha invocación son los siguientes:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
param1 | String | Si | Identificador UCID de la llamada |
7.2.2.3 Resultado y códigos de error
Si el webservice se ejecuta correctamente enviará el código de respuesta 200, acompañado de un JSON con los siguientes datos:
Si, el UCID facilitado no tuviera ningún segmento asociado, el webservices devolvería el código de respuesta 200, acompañado del siguiente JSON
Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Descripción |
---|---|---|
SC_NOT_FOUND | 404 | |
SC_INTERNAL_SERVER_ERROR | 500 |
7.2.3 Descarga de grabaciones
7.2.3.1 Introducción
Este webservice permitirá descargarse cualquier grabación disponible en el entorno de grabaciones de Vivait-Suite, siempre y cuando, el usuario logado con anterioridad, tenga los permisos necesarios para poder descargar dichas locuciones.
7.2.3.2 Invocación
Para poder invocar a dicho webservice, se deberá hacer una petición GET https a la siguiente url:
https://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/downloadWindows/xxxxxxx
siendo xxx.xxx.xxx.xxx:xxxx la ip y el puerto donde haya sido desplegado la aplicación Vivait-Tracker.
El nombre del fichero a descargar “xxxxxx” debe ser el identificador del segmento de la llamada que se quiere descargar.
Un ejemplo de invocación sería la siguiente
https://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/downloadWindows/2214536
7.2.3.3 Resultado y códigos de error
Si el webservice se ejecuta correctamente enviará el código de respuesta 200. Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Descripción |
---|---|---|
SC_NOT_FOUND | 404 | |
SC_INTERNAL_SERVER_ERROR | 500 |
7.2.4 Reproducción de fichero mp3
7.2.4.1 Introducción
Este webservice permitirá reproducir cualquier grabación disponible en el entorno de grabaciones de Vivait-Suite, siempre y cuando, el usuario logado con anterioridad, tenga los permisos necesarios para poder reproducir dichas locuciones.La aplicación está preparada para facilitar archivos en formato ogg o mp3.
7.2.4.2 Invocación
Para poder invocar a dicho webservice, se deberá hacer una petición GET http a la siguiente url:
https://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/audio/xxxxxxx
siendo xxx.xxx.xxx.xxx:xxxx la ip y el puerto donde haya sido desplegado la aplicación Vivait-Tracker.
El nombre del fichero a reproducir “xxxxxx” debe ser el identificador del segmento de la llamada que se quiere reproducir.
Un ejemplo de invocación sería la siguiente
https://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/audio/2214536
7.2.4.3 Resultado y códigos de error
Si el webservice se ejecuta correctamente enviará el código de respuesta 200 o el código 206 (SC_PARTIAL_CONTENT) si se reproduce sólo parte de la grabación disponible (segmentada por rangos)
Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Descripción |
---|---|---|
SC_NOT_FOUND | 404 | |
SC_INTERNAL_SERVER_ERROR | 500 | |
SC_NOT_MODIFIED | 304 | |
SC_PRECONDITION_FAILED | 412 | |
SC_REQUESTED_RANGE_NOT_SATISFIABLE | 416 |
7.2.5 Reproducción de fichero mp3 en extensión telefónica
7.2.5.1 Introducción
Este webservice permitirá reproducir cualquier grabación disponible en el entorno de grabaciones de Vivait-Suite en una extensión o teléfono que se indique, siempre y cuando, el usuario logado con anterioridad, tenga los permisos necesarios.
7.2.5.2 Invocación
Para poder invocar a dicho webservice, se deberá hacer una petición POST http a la siguiente url:
http://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/SpoolService
siendo xxx.xxx.xxx.xxx:xxxx la ip y el puerto donde haya sido desplegado la aplicación Vivait-Tracker.
Se deberán pasar los parámetros a través de post.
Un ejemplo de invocación sería la siguiente
https://xxx.xxx.xxx.xxx:xxxx/Vivait-Tracker/SpoolService?idSegmento= 2214536&extension=6214&pin=1111
Los distintos parámetros que podemos indicar en dicha invocación son los siguientes:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
idSegmento | String | Si | Identificador del segmento de llamada a reproducir |
extension | String | Si | Extensión o número de teléfono al que se realizará la llamada para la reproducción de la grabación |
pin | String | Si | Contraseña a facilitar en la operadora automática para la reproducción de la grabación |
7.2.5.3 Resultado y códigos de error
Si el webservice se ejecuta correctamente enviará el código de respuesta 200 o el código 206 (SC_PARTIAL_CONTENT) si se reproduce sólo parte de la grabación disponible (segmentada por rangos)
Si el webservice no se ejecuta de forma correcta, puede devolver los siguientes códigos de error:
Error | Código | Descripción |
---|---|---|
SC_NOT_FOUND | 404 | |
SC_BAD_REQUEST | 400 | Parámetros pin, extension, ruta Incorrectos |
SC_INTERNAL_SERVER_ERROR | 500 |
8 Webservice infoWS
8.1 Introducción
Webservice InfoWS sirve para recuperar cualquier información de llamadas de la base de datos de VIVAit, así como gestionar inicio o final de grabaciones.
Las dos funciones principales son:
-Obtener información para una llamada
-Gestionar grabaciones bajo demanda (iniciar, finalizar, consultar estado)
.
9 Servicios rest proporcionados por intz-gh
9.1 Introducción
La extensión manda un register al nodo y le dice si está disponible o no (en el nodo registro se ha modificado el chan sip para que avise al gran hermano).
El gran hermano es un elemento que conoce el estado de todo lo que pasa en Vivait , cuando hay un evento sabe como están las extensiones en todo momento (si no se produce un evento en el usuario , el estado aparecerá como desconocido). Los diferentes estados que hay son ( desconocido , no está en uso , en uso , no disponible , sonando , en espera).
Web service envía como está el estado de la extensión a un elemento externo ( portal mdtel , grafana , app del cliente etc…) y este le responde. Se ha actualizado intz.gh en web service.
9.2 Servicio para conocer el estado de una extension
Este webservice permitirá conocer el estado de una extensión.
Invocación
Un ejemplo de invocación sería el siguiente:
http://xxxxxxxx/xxxxxxx/getExtenEsta?exten=${exten}
Respuesta:
.. Content-Type: application/json { "exten": "<extension solicitada>", "idNodo": <ID del nodo que proporciona estados (primario o secundario)>, "esta": "<estado actual: [UNKNOWN|NOT_INUSE|INUSE|BUSY|INVALID|UNAVAILABLE|RINGING|RINGINUSE|ONHOLD]>", "call_limit": <numero maximo de llamadas permitidas por configuracion>, "inuse": <numero de llamadas conectadas>, "ringing": <numero de llamadas entrantes pendientes de descolgado>, "hace": <segundos desde el ultimo cambio de valores> }
9.3 Servicio que devuelve un array de extensiones en un estado
Este webservice permitirá devolver un array de extensiones en un estado
Invocación
Un ejemplo de invocación sería el siguiente:
http://xxxxxxx/xxxxx/getExtenFiltroEsta extenEsta=NOT_INUSE&extenInd=1&limit=100
Respuesta:
.. Content-Type: application/json { "extenInd": <extenInd de ultima extension devuelta (para incluir en siguiente invocacion, si hay mas)> "extenNum": <numero de extensiones conocidas por intz-gh (si extenInd==extenNum, no hay mas extensiones)> "extenMax": <numero de extensiones soportadas por intz-gh> "extenEsta": <estado de las extensiones: [NOT_INUSE|INUSE|BUSY|UNAVAILABLE|RINGING|RINGINUSE|ONHOLD]> "extens": "<array con extensiones>": [ { "exten": "<extension en el estado solicitado>", "idNodo": <ID del nodo que proporciona estados (primario o secundario)>, "hace": <segundos desde el ultimo cambio de valores (estado, inuse o ringing)> } ] }
9.4 Servicio para conocer el estado de un enlace
Este webservice permitirá conocer el estado de un enlace.
Invocación
Un ejemplo de invocación sería el siguiente:
http://xxxxxxxxx/xxxxxxxxx/getEnlaEsta?idNodo=${idNodo}\&peer=${peer}
Respuesta:
.. Content-Type: application/json { "peer": "<peer del enlace>", "idNodo": <ID del nodo que soporta ese enlace (el nombre del peer puede estar repetido en varios nodos)>, "esta": "<estado actual: [UNKNOWN|NOT_INUSE|INUSE|BUSY|INVALID|UNAVAILABLE|RINGING|RINGINUSE|ONHOLD]>", "inuse": <numero de llamadas conectadas>, "ringing": <numero de llamadas entrantes pendientes de descolgado>, "hace": <segundos desde el ultimo cambio de valores> }
9.5 Servicio que devuelve un array de enlaces en un estado
Este webservice permitirá devolver un array de enlaces en un estado
Invocación
Un ejemplo de invocación sería el siguiente:
http://xxxxxxxxxx/xxxxx/getEnlaFiltroEsta?enlaEsta=NOT_INUSE&enlaInd=1&limit=10
Respuesta:
.. Content-Type: application/json { "enlaInd": <enlaInd del ultimo enlace devuelta (para incluir en siguiente invocacion, si hay mas)> "enlaNum": <numero de enlaces conocidos por intz-gh (si enlaInd==enlaNum, no hay mas enlaces)> "enlaMax": <numero de enlaces soportadas por intz-gh> "enlaEsta": <estado de los enlaces: [NOT_INUSE|INUSE|BUSY|UNAVAILABLE|RINGING|RINGINUSE|ONHOLD]> "enlas": "<array con enlaces>": [ { "peer": "<peer del enlace en el estado solicitado>", "idNodo": <ID del nodo que proporciona estados>, "hace": <segundos desde el ultimo cambio de valores (estado, inuse o ringing)> } ] }