REST API

RESTfull API uContact 3.0

 

Los servicios Web de tipo REST son creados con una Base URL mas el path del resource mas el nombre del método, luego sus parametros van de tipo FormParam. Los objetos son pasados en JSON y las respuestas son o Plain Text o JSON.

Recordar realizar URL encode cuando sea necesario.

Los metodos son POST a noser que se indique expresamente.

 

Base URL

 

http://<IP-INTEGRASERVER>:8085/Integra/resources/

https://<IP-INTEGRASERVER>:8086/Integra/resources/

 

API Resource

Base URL + api



Metodos

 

 AgentLogin

   Params: 

agent:  Nombre del Agente

password: Password del Agente

message: mensaje extra

force: forzar inicio (1 o 0)

 

 Result:  plain text

    1: Fallo Autenticacion

      3: Ingreso forzado

       0: Login correcto

 

 AgentLogoff

   Params: 

agent:  Nombre del Agente

time: tiempo en segundos desde que se logueo

interface: Tecnologia / número (Ej. SIP/1001)

message:  mensaje extra

 

 Result:  plain text

 

 

 

 

 

 

 AgentPause

   Params: 

agent:  Nombre del Agente

interface: Tecnologia / número (Ej. SIP/1001)

message:  mensaje extra

 

 Result:  plain text

 

 AgentUnPause

   Params: 

agent:  Nombre del Agente

interface: Tecnologia / número (Ej. SIP/1001)

time: tiempo desde pausa

message:  mensaje extra

 

 Result:  plain text

 

 AgentPauseNoLog (no deja registro en historico de pausas)

   Params: 

agent:  Nombre del Agente

interface: Tecnologia / número (Ej. SIP/1001)

message:  mensaje extra

 

 Result:  plain text

 

 AgentUnPauseNoLog (no deja registro en historico de pausas)

   Params: 

agent:  Nombre del Agente

interface: Tecnologia / número (Ej. SIP/1001)

time: tiempo desde pausa

message:  mensaje extra

 

 Result:  plain text

 

 AgentBreak

   Params: 

agent:  Nombre del Agente

interface: Tecnologia / número (Ej. SIP/1001)

motive: Motivo del break (Lunch,Bathroom ,etc)

message:  mensaje extra

 

 Result:  plain text

 

 

 

 

 

 

 

 AgentUnBreak

   Params: 

agent:  Nombre del Agente

interface: Tecnologia / número (Ej. SIP/1001)

motive: Motivo del break (Lunch,Bathroom ,etc)

 

time: tiempo desde pausa

message:  mensaje extra

 

 Result:  plain text

 

 

Tipo: GET

GetMessages (GetMessages/agent={agent}&interface={interface})

   Params: 

agent:  Nombre del Agente

interface: Tecnologia / número (Ej. SIP/1001)

 

 Result:  JSON

 

Este metodo utiliza long polling lo cual queda ahi hasta que tenga algun mensaje para este agente (ver de revisar timeout del lado cliente para que espere siempre). Retorna mensaje de todo tipo de telefonia y para CTI. Important para saber con que channel estoy conectado, si se corta la llamada, si entra una, etc.

 

Agent Resource

 

Bae URL + Agents

 

Metodos

 

 AgentCall

   Params: 

    callerid: callerid de la llamada

agent:  Nombre del Agente

phone: telefono del agente

tech: tecnologia agente

context: contexto de salida

outqueue: cola de salida

destination: numero destino

 

 Result:  plain text

 

 

La llamada es en dos pasos, 1 al ejecutarse se llama al agente, 2 al attender la llamada se dispara automaticamente la llamada al destino.

 

 Hangup

  Params: 

 

channel:  nombre del channel al cortar (Ej. SIP/1001-abos000000)

 

Result:  plain text

 

SendDTMF

   Params: 

channel:  Nombre del channel al pasar un dtmf

dtmf: valor del dtmf

 

 Result:  plain text

Transfer

   Params: 

channel:  Nombre del channel  a redireccionar

context: contexto por el que sale el redirect

exten: exten donde va a ser el redirect (habitualmente el otro interno)

 

 Result:  plain text

getcontext

   Params: 

phone: telefono del agente 

table: tecnologia del agente (sip o iax)

 

 Result:  plain text (contexto donde esta el agente definido)

 

getagentconf  

Params: 

agent: nombre agente

password: password del agente

value: valor a obtener (nombre de columna en tabla)

table: sip o iax

 

 Result:  plain text (contexto donde esta el agente definido)



WEBCALLBACK

ara que el WebCallBack sea posible de integrar con cualquier web de cualquier cliente, fue diseñado con un GET sobre HTTP, de esta forma cualquiera puede invocarlo. Sintaxis:

http://IP:PUERTO/Integra/resources/Utils/CallBack/phone={phone}&tecnology={tecnology}&context={context}&destination={destination}&priority={priority}

Cambiar los valores entre {} por el valor que corresponda.

  • phone: Teléfono del cliente

  • tecnology: tecnología por donde se marca (ejemplo: DAHDI/G1/ o SIP/CARRIER/)

  • context: contexto en donde entra la llamada una vez la atiende el cliente (de ahí selecciona la exten "destination")

  • destination: exten destino en el dialplan (habitualmente un DNIS de una campaña que va a una Cola)

  • prioridad: prioridad de entrada en el contexto en esa extension (siempre entrar luego de CDR(type)=record para que no pise el type webcallback)

  • timeout: 30 segundos deja sonar en el cliente

  • CDR(type): webcallback

La llamada queda en el CDR como si fuera hecha por el cliente (callerid del cliente), pero en type se pone expresamente que es un WebCallBack.

WEBSMS

Eviar SMS via un GET

http://IP:PUERTO/Integra/resources/SMS/SendSMS/destination={destination}&message={message}&api={api}&device={device}

Cambiar los valores entre {} por el valor que corresponda.

destination: numero de telefono destino

message: el mensaje

api: API a usar: dongle o twilio

device: nombre del dispositivo ejemplo dongle0

El mensaje queda el la tabla de sms_repo

WEB EMAIL

Envia Mail desde un servicio Web via POST

http://IP:PUERTO/Integra/resources/Email/SendMail POSTDATA: fromname={fromname}&to={to}&subject={subject}&body={body}

Cambiar los valores entre {} por el valor que corresponda, body puede ser HTML.