REST API
RESTfull API uContact 3.0
- 1 Base URL
- 2 API Resource
- 2.1 WEBCALLBACK
- 2.2 WEBSMS
- 2.3 WEB EMAIL
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.