Skip to main content

Hacer Llamada

CuandoEn laalgunas integraciónocasiones, loes requierenecesario seque puedenun agregaragente agentesgenere una llamada a unaun campañnúmero de teléfono desde otra aplicación, como podría especificaser porun medioCRM. deSe puede utilizar esta API, ay continuaciónla mostramosllamada elserá comoenviada realizaral esta acción.agente.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


Datos del Recurso

Opción HTTP Valor
Recurso /Integra/resources/queues/addqueuememberAgents/AgentCall
Content-Type application/x-www-form-urlencoded

HTTP

POST /Integra/resources/queues/addqueuememberAgents/AgentCall HTTP/1.1
Host: {{domain}instance}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 221116

queuemember=[{"membername":"callerid={{UserName}callerid}}","queueName":"agent={{CampaignName}agent}}","interface1":"SIP/&phone={{AgentPhoneNumber}phone}}","penalty":0,"paused":0}]&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}



HTTP Request

Parametros de solicitud

Parametro Tipo
Descripción
queuemembercallerid Texto (String)Número ArrayDID deasignado objetos,a enla dondecampaña por la cual se puedenrealizará agregarla varios usuarios a varias campañas, por cada objeto es un usuario agregado a una campaña.

Variables del JSON

(String)
ParametroTipo
Descripciónllamada.
UserNameagent Texto Agente que tomará la llamada.
phone
NúmeroNúmero de teléfono del agente.
techTextoProtocolo de comunicación, agregar SIP.
contextTexto Nombre de usuario del agentecontexto para flujos por el cual saldrá la llamada. Puede ser "agentes" o "agents"
CampaignNameoutqueue Texto (String) Nombre de la campaña manual.
destinationNúmeroNombre de la campaña por la cual se deseagenerará agregarla el usuario
PhoneNumber
Texto (String)Numero de teléfono del agentellamada.



Ejemplos de Código

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

cURL
curl --location --globoff 'https://{{domain}instance}}.ucontactcloud.com/Integra/resources/queues/addqueuemember' \
--header 'Content-Type: application/x-www-form-urlencoded'Agents/AgentCall' \
--header 'Authorization: Basic {{Token}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'queuemember=[{"membername":"callerid={{UserName}callerid}}","queueName":"' \
--data-urlencode 'agent={{CampaignName}agent}}","interface1":"SIP/' \
--data-urlencode 'phone={{AgentPhoneNumber}phone}}","penalty":0,"paused":0}]' \
--data-urlencode 'tech=SIP' \
--data-urlencode 'context={{context}}' \
--data-urlencode 'outqueue={{outqueue}}' \
--data-urlencode 'destination={{destination}}'
JavaScript
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic {{Token}}");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

const urlencoded = new URLSearchParams();
urlencoded.append("queuemember"callerid", "[{\{callerid}}"membername\);
urlencoded.append(":\agent", "{{UserName}agent}}\");
urlencoded.append("phone",\"queueName\":\ "{{CampaignName}phone}}\");
urlencoded.append("tech",\ "interface1\SIP");
urlencoded.append(":\context", "SIP/{{AgentPhoneNumber}context}}\");
urlencoded.append("outqueue",\ "penalty\{{outqueue}}":0,\);
urlencoded.append("paused\destination", ":0}]{{destination}}");

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: urlencoded,
  redirect: "follow"
};

fetch("https://{{domain}instance}}.ucontactcloud.com/Integra/resources/queues/addqueuemember"Agents/AgentCall", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
JQuery
var settings = {
  "url": "https://{{domain}instance}}.ucontactcloud.com/Integra/resources/queues/addqueuemember"Agents/AgentCall",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "queuemember"callerid": "[{\{callerid}}"membername\,
    "agent":\ "{{UserName}agent}}\",\
    "queueName\"phone":\ "{{CampaignName}phone}}\",\
    "interface1\tech": "SIP",
    "context":\ "SIP/{{AgentPhoneNumber}context}}\",\
    "penalty\outqueue": "{{outqueue}}",
    "destination":0,\ "paused\":0}]{{destination}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{domain}instance}}.ucontactcloud.com/Integra/resources/queues/addqueuemember"Agents/AgentCall");
request.Headers.Add("Authorization", "Basic {{Token}}");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("queuemember"callerid", "[{\{callerid}}"membername\));
collection.Add(new(":\agent", "{{UserName}agent}}\"));
collection.Add(new("phone",\"queueName\":\ "{{CampaignName}phone}}\"));
collection.Add(new("tech",\ "interface1\SIP"));
collection.Add(new(":\context", "SIP/{{AgentPhoneNumber}context}}\"));
collection.Add(new("outqueue",\ "penalty\{{outqueue}}":0,\));
collection.Add(new("paused\destination", ":0}]{{destination}}"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "queuemember=[{\"membername\":\"callerid={{UserName}callerid}}\",\"queueName\":\"&agent={{CampaignName}agent}}\",\"interface1\":\"SIP/&phone={{AgentPhoneNumber}phone}}\",\"penalty\":0,\"paused\":0}]&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}");
Request request = new Request.Builder()
  .url("https://{{domain}instance}}.ucontactcloud.com/Integra/resources/queues/addqueuemember"Agents/AgentCall")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{domain}instance}}.ucontactcloud.com")
payload = 'queuemember=[{"membername":"callerid={{UserName}callerid}}","queueName":"&agent={{CampaignName}agent}}","interface1":"SIP/&phone={{AgentPhoneNumber}phone}}","penalty":0,"paused":0}]&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/queues/addqueuemember"Agents/AgentCall", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))




HTTP Response

Las respuestas en las que se obtubo error por parte de los datos enviados por lo general serán entregados con codigo HTTP 200 con un "0" o "1" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code ResponseResponse.

La respuesta recibidaexitosa esserá un GUID como identificador de tipola texto,llamada; porcon loeste cualdato tendráse quepodrán convertirlarealizar afuturas JSONacciones paramediante poder visualizar los datos correctamente.APIs.

Respuesta exitosa

18cf8570e-60e7-44ed-b799-3baab211b04d

Respuesta de error

0