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.