# APIs

Documentación de las principales APis de uContact para integraciones.

# Autenticación Cliente

Este recurso se usa para obtener una autenticación por token para poder usar las API´s de uContact creado para loguearse desde otra aplicación para poder realizar integraciones.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/m41rw3t/getusertoken?tab=overview "getUserToken") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opcion-http-valor-re" style="border-collapse: collapse; width: 100%; height: 59.575px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 21.1312%; height: 29.7875px;">**Metodo**</td><td class="align-center" style="width: 78.844%; height: 29.7875px;">**Recurso**</td></tr><tr style="height: 29.7875px;"><td style="width: 21.1312%; height: 29.7875px;">POST</td><td style="width: 78.844%; height: 29.7875px;">/Integra/resources/auth/getUserToken</td></tr></tbody></table>

#### Request Headers

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><tbody><tr style="height: 29.7969px;"><td style="width: 21.1544%; height: 29.7969px;">**Clave**</td><td style="width: 78.9444%; height: 29.7969px;">**Valor**</td></tr><tr><td class="align-left" style="width: 21.1544%;">Content-Type</td><td class="align-left" style="width: 78.9444%;">application/x-www-form-urlencoded</td></tr></tbody></table>

#### Request Body

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr-0" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><tbody><tr style="height: 29.7969px;"><td style="width: 21.0084%; height: 29.7969px;">**Parametro**</td><td style="width: 24.9629%; height: 29.7969px;">**Tipo**</td><td style="width: 22.002%;">**Requerido**</td><td style="width: 32.1255%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td class="align-left" style="width: 21.0084%; height: 29.7969px;">user</td><td class="align-left" style="width: 24.9629%; height: 29.7969px;">Texto (String)</td><td style="width: 22.002%;">Si</td><td class="align-left" style="width: 32.1255%; height: 29.7969px;">Nombre de usuario</td></tr><tr><td class="align-left" style="width: 21.0084%;">password</td><td class="align-left" style="width: 24.9629%;">Texto (String)</td><td style="width: 22.002%;">Si</td><td class="align-left" style="width: 32.1255%;">Contraseña del usuario</td></tr></tbody></table>

---

### Ejemplos de codigo

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/auth/getUserToken HTTP/1.1
Host: {{domain}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

user={{User}}&password={{Password}}
```

<span style="color: #bbbbbb; font-size: 1.4em; font-weight: 400;">cURL</span>

```
curl --location --request POST 'https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'user={{UserName}}' \
--data-urlencode 'password={{PasswordUser}}'
```

##### JavaScript

```JavaScript
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("user", "{{UserName}}");
urlencoded.append("password", "{{PasswordUser}}");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "user": "{{UserName}}",
    "password": "{{PasswordUser}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new RestClient("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("user", "{{User}}");
request.AddParameter("password", "{{UserPassword}}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "user={{User}}&password={{UserPassword}}");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

---

### HTTP Response

```
"{{token}}"
```

#### Respuesta de error

```
"0"
```

# Autenticación Agente

Cuando se requiere hacer alguna integración con uContact con actividades de agente se autentica por medio de este recurso en el cual la plataforma toma como logueado al agente al SIP, esto hace que se tome encuenta para las llamadas o tenga interacción por VoIP además de los accesos.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/ixfd2hv/agentlogin?tab=overview "AgentLogin") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opci%C3%B3n-http-valor-re" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 27.8067%; height: 29.7969px;">**Metodo**</td><td class="align-center" style="width: 72.1686%; height: 29.7969px;">**Recurso**</td></tr><tr style="height: 29.7969px;"><td style="width: 27.8067%; height: 29.7969px;">POST</td><td style="width: 72.1686%; height: 29.7969px;">/Integra/resources/auth/AgentLogin</td></tr></tbody></table>

#### Request Headers

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><tbody><tr style="height: 29.7969px;"><td style="width: 27.4507%; height: 29.7969px;">**Clave**</td><td style="width: 72.6481%; height: 29.7969px;">**Valor**</td></tr><tr><td class="align-left" style="width: 27.4507%;">Content-Type</td><td class="align-left" style="width: 72.6481%;">application/x-www-form-urlencoded</td></tr></tbody></table>

#### Request Body

<table border="1" id="bkmrk-parametro-tipo-descr-0" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 27.5581%; height: 29.7969px;">**Parametro**</td><td class="align-center" style="width: 21.5036%; height: 29.7969px;">**Tipo**  
</td><td class="align-center" style="width: 16.3116%;">**Requerido**</td><td class="align-center" style="width: 34.7257%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td style="width: 27.5581%; height: 29.7969px;">agent</td><td style="width: 21.5036%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 16.3116%;">Si</td><td style="width: 34.7257%; height: 29.7969px;">Nombre de usuario del agente</td></tr><tr style="height: 29.7969px;"><td style="width: 27.5581%; height: 29.7969px;">password</td><td style="width: 21.5036%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 16.3116%;">Si</td><td style="width: 34.7257%; height: 29.7969px;">Contraseña del usuario</td></tr></tbody></table>

---

### Ejemplos de Código

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/auth/AgentLogin HTTP/1.1
Host: {{dominio}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 33

agent={{User}}&password={{Password}}
```

<span style="color: #bbbbbb; font-size: 1.4em; font-weight: 400;">cURL</span>

```cURL
curl --location --request POST 'https://{{dominio}}.ucontactcloud.com/Integra/resources/auth/AgentLogin' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'agent={{Usuario}}' \
--data-urlencode 'password={{AgentPassword}}'
```

##### JavaScript

```JavaScript
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("agent", "{{User}}");
urlencoded.append("password", "{{Password}}");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "agent": "{{User}}",
    "password": "{{Password}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```JavaScript
var client = new RestClient("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("agent", "{{User}}");
request.AddParameter("password", "{{Password}}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

##### Java

```JavaScript
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "agent={{User}}&password={{Password}}");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```JavaScript
import http.client

conn = http.client.HTTPSConnection("{{domain}}.ucontactcloud.com")
payload = 'agent={{User}}&password={{Password}}'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/auth/AgentLogin", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

<p class="callout warning">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 "Error" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response</p>

<p class="callout warning">La respuesta recibida es de tipo texto, por lo cual tendrá que convertirla a JSON para poder visualizar los datos correctamente.</p>

#### Respuesta convertida a JSON

```JSON
{
    "id": 4,
    "name": "1997",
    "host": "{{domain}}.ucontactcloud.com",
    "nat": "yes",
    "type": "friend",
    "accountcode": "Vcisneros",
    "callgroup": "",
    "callerid": "1997",
    "canreinvite": "",
    "context": "agents",
    "dtmfmode": "rfc2833",
    "insecure": "",
    "language": "es",
    "mailbox": "",
    "md5secret": "07a46a13aa5434e21e6a9aa870482720",
    "pickupgroup": "",
    "qualify": "yes",
    "secret": "",
    "disallow": "all",
    "allow": "alaw;ulaw",
    "port": "",
    "defaultuser": "1997",
    "subscribecontext": "default",
    "record": "agent",
    "email": "",
    "phonetype": "SoftPhone",
    "LogLevel": "SEVERE",
    "limite": 0,
    "transport": "wss",
    "encryption": "yes",
    "did": "",
    "outboundproxy": "",
    "fullname": "Victor Cisneros",
    "token": "VmNpc25lcm9zOjJhZGUzNjAxLTNhMjgtNDhjNy1hNDg2LTczNTY3ZmI1ZDI2MQ=="
}
```

#### Respuesta de error

```JavaScript
0
```

# Finalizar Sesión

Para finalizar la sessión del agente o usuario una vez deje de utilizarse.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/jll18s1/agentlogoff?tab=overview "AgentLogoff") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opcion-http-valor-re" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 21.5016%; height: 29.7969px;">**Metodo**</td><td class="align-center" style="width: 78.4737%; height: 29.7969px;">**Recurso**</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5016%; height: 29.7969px;">POST</td><td style="width: 78.4737%; height: 29.7969px;">/Integra/resources/api/AgentLogoff</td></tr></tbody></table>

#### Request Headers

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="border-collapse: collapse; width: 100%; height: 89.9875px;"><tbody><tr style="height: 29.7875px;"><td style="width: 21.6483%; height: 29.7875px;">**Clave**</td><td style="width: 78.4506%; height: 29.7875px;">**Valor**</td></tr><tr style="height: 30.6px;"><td class="align-left" style="width: 21.6483%; height: 30.6px;">Content-Type</td><td class="align-left" style="width: 78.4506%; height: 30.6px;">application/x-www-form-urlencoded</td></tr><tr style="height: 29.6px;"><td class="align-left" style="width: 21.6483%; height: 29.6px;">Authorization</td><td class="align-left" style="width: 78.4506%; height: 29.6px;">Basic Token</td></tr></tbody></table>

#### Request Body

<table border="1" class="align-center" id="bkmrk-parametro-tipo-reque" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td style="width: 21.0136%; height: 29.7969px;">**Parametro**</td><td style="width: 20.5192%; height: 29.7969px;">**Tipo**</td><td style="width: 13.8485%;">**Requerido**</td><td style="width: 44.6187%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td class="align-left" style="width: 21.0136%; height: 29.7969px;">agent</td><td class="align-left" style="width: 20.5192%; height: 29.7969px;">Texto (String)</td><td style="width: 13.8485%;">Si</td><td class="align-left" style="width: 44.6187%; height: 29.7969px;">Nombre de usuario que se va a desloguar</td></tr><tr><td class="align-left" style="width: 21.0136%;">interface</td><td class="align-left" style="width: 20.5192%;">Texto (String)</td><td style="width: 13.8485%;">No</td><td class="align-left" style="width: 44.6187%;">Numero de telefono/extensión del sip para el agente</td></tr><tr style="height: 29.7969px;"><td class="align-left" style="width: 21.0136%; height: 29.7969px;">message</td><td class="align-left" style="width: 20.5192%; height: 29.7969px;">Texto (String)</td><td style="width: 13.8485%;">No</td><td class="align-left" style="width: 44.6187%; height: 29.7969px;">Mensaje a guardar</td></tr></tbody></table>


---

### Ejemplos de codigo

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/api/AgentLogoff HTTP/1.1
Host: {{domain}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 55

agent={{user}}&interface=SIP/{{extension}}&message=Desloguear
```

##### cURL

```
curl --location --request POST 'https://{{domain}}.ucontactcloud.com/Integra/resources/api/AgentLogoff' \
--header 'Authorization: Basic {{Token}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'agent={{User}}' \
--data-urlencode 'interface=SIP/{{Extension}}' \
--data-urlencode 'message={{Mensaje}}'
```

##### JavaScript

```JavaScript
var myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("agent", "{{User}}");
urlencoded.append("interface", "SIP/{{Extension}}");
urlencoded.append("message", "{{Mensaje}}");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{domain}}.ucontactcloud.com/Integra/resources/api/AgentLogoff", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{domain}}.ucontactcloud.com/Integra/resources/api/AgentLogoff",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "agent": "{{User}}",
    "interface": "SIP/{{Extension}}",
    "message": "{{Mensaje}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new RestClient("https://{{domain}}.ucontactcloud.com/Integra/resources/api/AgentLogoff");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic {{Token}}");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("agent", "{{User}}");
request.AddParameter("interface", "SIP/{{Extension}}");
request.AddParameter("message", "{{Mensaje}}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "agent={{User}}&interface=SIP/{{Extension}}&message={{Mensaje}}");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/api/AgentLogoff")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{domain}}.ucontactcloud.com")
payload = 'agent={{User}}&interface=SIP/{{Extension}}&message={{Mensaje}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/api/AgentLogoff", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

#### Respuesta Exitosa

```Text
Success
```

#### Respuesta de error

```JSON
0
```

# Colgar Llamada

Cuando se desea colgar una llamada desde fuera de uContact, se utiliza esta API; de esta manera, se puede crear una integración más completa.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/wng0qmj/hangupphone?tab=overview "hangupPhone") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opcion-http-valor-re" style="border-collapse: collapse; width: 100%; height: 148.984px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 20.3956%; height: 29.7969px;">**Metodo**</td><td class="align-center" style="width: 79.6044%; height: 29.7969px;">**Recurso**</td></tr><tr style="height: 29.7969px;"><td style="width: 20.3956%; height: 29.7969px;">POST</td><td style="width: 79.6044%; height: 29.7969px;">/Integra/resources/Agents/HangupPhone</td></tr></tbody></table>

#### Request Headers

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="width: 99.8765%; height: 91.6px;"><tbody><tr style="height: 29.6px;"><td style="width: 29.343%; height: 29.6px;">**Clave**</td><td style="width: 70.7608%; height: 29.6px;">**Valor**</td></tr><tr style="height: 32.4px;"><td class="align-left" style="width: 29.343%; height: 32.4px;">Content-Type</td><td class="align-left" style="width: 70.7608%; height: 32.4px;">application/x-www-form-urlencoded</td></tr><tr style="height: 29.6px;"><td class="align-left" style="width: 29.343%; height: 29.6px;">Authorization</td><td class="align-left" style="width: 70.7608%; height: 29.6px;">Basic Token</td></tr></tbody></table>

#### Request Body

<table border="1" class="align-center" id="bkmrk-parametro-tipo-reque" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><tbody><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">**Parametro**</td><td style="width: 17.4289%; height: 29.7969px;">**Tipo**</td><td style="width: 13.8443%;">**Requerido**</td><td style="width: 48.2077%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td data-colwidth="210" style="width: 20.5192%;">phone

</td><td data-colwidth="549" style="width: 17.4289%;">Numero (Integer)</td><td style="width: 13.8443%;">Si</td><td class="align-left" style="width: 48.2077%; height: 29.7969px;">Numero de telefono/extensión del agente</td></tr></tbody></table>

---

### HTTP Request

#### Ejemplos de codigo

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

##### HTTP

```VBScript
POST /Integra/resources/Agents/HangupPhone HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 10

phone={{AgentPhone}}
```

##### cURL

```VBScript
curl --location --request POST 'https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/HangupPhone' \
--header 'Authorization: Basic {{Token}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'phone={{AgentPhone}}'
```

##### JavaScript

```JavaScript
var myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("phone", "{{AgentPhone}}");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{Instance}}.ucontactcloud.com/Integra/resources/Agents/HangupPhone", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{Instance}}.ucontactcloud.com/Integra/resources/Agents/HangupPhone",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "phone": "{{AgentPhone}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new RestClient("https://{{Instance}}.ucontactcloud.com/Integra/resources/Agents/HangupPhone");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic {{Token}}");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("phone", "{{AgentPhone}}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "phone={{AgentPhone}}");
Request request = new Request.Builder()
  .url("https://{{Instance}}.ucontactcloud.com/Integra/resources/Agents/HangupPhone")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{Instance}}.ucontactcloud.com")
payload = 'phone={{AgentPhone}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Agents/HangupPhone", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

#### Respuesta exitosa

```JSON
1
```

#### Respuesta de error

```JSON
0
```

# Agregar registro a marcador

Agrega un registro a un marcador para lanzar la llamada en cuanto se tenga algún agente disponible, este registro serrá agregado a la cola, es decir se marcarán primero los registros que ya estaban en la cola independientemente, esta cola solo tomará encuenta los registros que no pertenecena una lista de marcación.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/86fjj0d/dialertask?tab=overview "dialerTask") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente</p>

---

### HTTP Request

<table border="1" id="bkmrk-opcion-http-valor-re" style="border-collapse: collapse; width: 100%; height: 59.575px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 20.3956%; height: 29.7875px;">**Metodo**</td><td class="align-center" style="width: 79.6044%; height: 29.7875px;">**Recurso**</td></tr><tr style="height: 29.7875px;"><td style="width: 20.3956%; height: 29.7875px;">POST</td><td style="width: 79.6044%; height: 29.7875px;">/Integra/resources/Dialers/DialerTask</td></tr></tbody></table>

#### Request Header


<table border="1" id="bkmrk-opcion-valor-content" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 20.7664%; height: 29.7969px;">**Clave**</td><td class="align-center" style="width: 79.2336%; height: 29.7969px;">**Valor**</td></tr><tr style="height: 29.7969px;"><td style="width: 20.7664%; height: 29.7969px;">Content-Type</td><td style="width: 79.2336%; height: 29.7969px;">application/x-www-form-urlencoded</td></tr><tr style="height: 29.7969px;"><td style="width: 20.7664%; height: 29.7969px;">Authorization</td><td style="width: 79.2336%; height: 29.7969px;">Basic {{Token}}</td></tr></tbody></table>

#### Request Body

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><tbody><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">**Parametro**</td><td style="width: 17.4289%; height: 29.7969px;">**Tipo**</td><td style="width: 13.8443%;">**Requerido**</td><td style="width: 48.2077%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td data-colwidth="210" style="width: 20.5192%;">call

</td><td data-colwidth="549" style="width: 17.4289%;">JSON String (String)</td><td style="width: 13.8443%;">Si</td><td class="align-left" style="width: 48.2077%; height: 29.7969px;">Objeto Json convertido a texto en donde se agreguen los datos agregados en el siguient ejemplo</td></tr></tbody></table>

##### Ejemplo JSON

<p class="callout warning">Los datos agregados en el siguiente ejemplo son meramente demostrativos, tendrá que reemplazar los datos con los correspondiente a su instancia.</p>

```JSON
{
  "calldate" : null, 			// En caso de requerir se llame a una hora en especifico, ejemplo: '1900-01-01 00:00:00'
  "campaign" : "POWER<-", 		// Nombre de la campaña a agregar el registro
  "destination": "0123456789",	// Numero de teléfono al cual se realizará la marcación
  "alternatives": "",			// Numero alternativo al cual realizarle la llamada en caso de no contactar con el primer teléfono
  "agent" : "",					// Telefono/Extensión del agente en caso de querer que un agente en especifico tome la llamada
  "data": "idcustomer=7",		// Datos para mostrar en el formulario de la instancia o para utilizarlos para algo en especifico
  "source": "source",			// Pendiente
  "bulk": false,				// Pendiente
  "automatic": true				// Pendiente
}
```

##### Descripción de Objeto JSON

<p class="callout warning">En el JSON todos las Key deben estar agregadas, si el campo menciona que no es oblicatorio puede ser agregado con un valor vacio.</p>

<table border="1" id="bkmrk-parametro-tipo-reque" style="border-collapse: collapse; width: 100%; height: 297.969px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 20.5192%; height: 29.7969px;">**Parametro**</td><td class="align-center" style="width: 17.4289%; height: 29.7969px;">**Tipo**</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">**Requerido**</td><td class="align-center" style="width: 48.2077%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">calldate</td><td style="width: 17.4289%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">No</td><td style="width: 48.2077%; height: 29.7969px;">Define la hora en la cual se realizará la marcación, puede ser 'null' o fecha en formato '1900-01-01 00:00:00'.</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">campaign</td><td style="width: 17.4289%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">Si</td><td style="width: 48.2077%; height: 29.7969px;">Nombre de la campaña a la cual se agregará el registro</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">destination</td><td style="width: 17.4289%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">Si</td><td style="width: 48.2077%; height: 29.7969px;">Numero de teléfono al cual se marcará</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">alternatives</td><td style="width: 17.4289%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">No</td><td style="width: 48.2077%; height: 29.7969px;">Numero alternativos a contactar en caso no se logre contacto con el primer numero, puede ser vacio.</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">agent</td><td style="width: 17.4289%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">No</td><td style="width: 48.2077%; height: 29.7969px;">Numero del teléfono/extensión del agente en caso de requerir que un agente en especifico tome la llamada</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">data</td><td style="width: 17.4289%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">No</td><td style="width: 48.2077%; height: 29.7969px;">Datos a agregar para mostrarse en formularios, encuestas o para algún otro propocito dentro de la plataforma.</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">source</td><td style="width: 17.4289%; height: 29.7969px;">Texto (String)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">Si</td><td style="width: 48.2077%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">bulk</td><td style="width: 17.4289%; height: 29.7969px;">Booleano (Boolean)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">Si</td><td style="width: 48.2077%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">automatic</td><td style="width: 17.4289%; height: 29.7969px;">Booleano (Boolean)</td><td class="align-center" style="width: 13.8443%; height: 29.7969px;">Si</td><td style="width: 48.2077%; height: 29.7969px;">  
</td></tr></tbody></table>

---

### Ejemplos de codigo

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

##### HTTP

```VBScript
POST /Integra/resources/Dialers/DialerTask HTTP/1.1
Host: {{Instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 310

call={{Objeto Json}}
```

##### cURL

```VBScript
curl --location --request POST 'https://testclever.ucontactcloud.com/Integra/resources/Dialers/DialerTask' \
--header 'Authorization: Basic VmNpc25lcm9zOjY3NDdjODIzLWY5ZmItNDY0My05NTc0LWNjMjJhOTlhZDRlMQ==' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'call={"calldate" : null,"campaign" : "POWER<-","destination": "1234567890","alternatives": "","agent" : "","data": "idcustomer=7","source": "source","bulk": false,"automatic": true }'
```

##### JavaScript

```JavaScript
var myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("call", "{\"calldate\" : null,\"campaign\" : \"POWER<-\",\"destination\": \"0123456789\",\"alternatives\": \"\",\"agent\" : \"\",\"data\": \"idcustomer=7\",\"source\": \"source\",\"bulk\": false,\"automatic\": true }");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/DialerTask", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/DialerTask",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "call": "{\"calldate\" : null,\"campaign\" : \"POWER<-\",\"destination\": \"0123456789\",\"alternatives\": \"\",\"agent\" : \"\",\"data\": \"idcustomer=7\",\"source\": \"source\",\"bulk\": false,\"automatic\": true }"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new RestClient("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/DialerTask");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic {{Token}}");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("call", "{\"calldate\" : null,\"campaign\" : \"POWER<-\",\"destination\": \"0123456789\",\"alternatives\": \"\",\"agent\" : \"\",\"data\": \"idcustomer=7\",\"source\": \"source\",\"bulk\": false,\"automatic\": true }");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "call={\"calldate\" : null,\"campaign\" : \"POWER<-\",\"destination\": \"0123456789\",\"alternatives\": \"\",\"agent\" : \"\",\"data\": \"idcustomer=7\",\"source\": \"source\",\"bulk\": false,\"automatic\": true }");
Request request = new Request.Builder()
  .url("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/DialerTask")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{Instance}}.ucontactcloud.com")
payload = 'call={{Objeto Json}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Dialers/DialerTask", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

#### Respuesta Exitosa

```JSON
1
```

#### Respuesta de error

```JSON
0
```

# Subir Base

Sube una lista de maración por medio de un archivo CSV o TXT a un marcador pora poder acer integraciones con algún sistema externo a uContact.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/lsahl8e/uploadbase?tab=overview "uploadBase") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente..</p>

---

### HTTP Request

<table border="1" id="bkmrk-opcion-http-valor-re" style="border-collapse: collapse; width: 100%; height: 148.984px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 20.3956%; height: 29.7969px;">**Metodo**</td><td class="align-center" style="width: 79.6044%; height: 29.7969px;">**Recurso**</td></tr><tr style="height: 29.7969px;"><td style="width: 20.3956%; height: 29.7969px;">POST</td><td style="width: 79.6044%; height: 29.7969px;">/Integra/resources/Dialers/uploadbase</td></tr></tbody></table>

#### Request Headers

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="height: 91px; width: 102.593%;"><tbody><tr style="height: 29.6px;"><td style="width: 50.0494%; height: 29.6px;">**Clave**</td><td style="width: 50.0494%; height: 29.6px;">**Valor**</td></tr><tr style="height: 29.6px;"><td class="align-left" style="width: 50.0494%; height: 29.6px;">Content-Type</td><td class="align-left" style="width: 50.0494%; height: 29.6px;">application/x-www-form-urlencoded</td></tr><tr style="height: 29.6px;"><td class="align-left" style="width: 50.0494%; height: 29.6px;">Authorization</td><td class="align-left" style="width: 50.0494%; height: 29.6px;">Basic Token</td></tr></tbody></table>

#### Request Body

<p class="callout info">El parametro "cant" puede agregarse con un valor de 0, una vez se se active la lista se actualizará la cantidad de registros en la lista.</p>

<p class="callout warning">En el campo **fileb64** solamente se deve de enviar el contenido del archivo de texto plano codificado a base64, si se codifica el archivo como tal y se agrega a este campo marcará un error en la consulta.</p>

<table border="1" class="align-center" id="bkmrk-parametro-tipo-reque" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><tbody><tr style="height: 29.7969px;"><td style="width: 20.5192%; height: 29.7969px;">**Parametro**</td><td style="width: 18.54%; height: 29.7969px;">**Tipo**</td><td style="width: 12.7331%;">**Requerido**</td><td style="width: 48.2077%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td data-colwidth="210" style="width: 20.5192%;">filename

</td><td class="align-left" data-colwidth="549" style="width: 18.54%;">Texto (String)</td><td style="width: 12.7331%;">Si</td><td class="align-left" style="width: 48.2077%; height: 29.7969px;">Nombre del archivo a subir</td></tr><tr><td style="width: 20.5192%;">fileb64

</td><td class="align-left" style="width: 18.54%;">Archivo codificación Base64</td><td style="width: 12.7331%;">Si</td><td class="align-left" style="width: 48.2077%;">Archivo a subir codificado a Base64</td></tr><tr><td style="width: 20.5192%;">campaign

</td><td class="align-left" style="width: 18.54%;">Texto (String)</td><td style="width: 12.7331%;">Si</td><td class="align-left" style="width: 48.2077%;">Nombre de la campaña a la cual se subirá el archivo</td></tr><tr><td style="width: 20.5192%;">cant

</td><td class="align-left" style="width: 18.54%;">Numero (Integer)</td><td style="width: 12.7331%;">Si</td><td class="align-left" style="width: 48.2077%;">Numero de registros del archivo

</td></tr><tr><td style="width: 20.5192%;">username

</td><td class="align-left" style="width: 18.54%;">Texto (String)</td><td style="width: 12.7331%;">Si</td><td class="align-left" style="width: 48.2077%;">Nombre de usuario que subirá el archivo de lista de maracacipon</td></tr></tbody></table>

---

### Ejemplos de codigo

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

##### HTTP

```VBScript
POST /Integra/resources/Dialers/uploadbase HTTP/1.1
Host: {{Instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 604

filename=base_prueba_2.csv&fileb64=UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow%3D%3D&campaign=POWER%3C-&cant=5&username=Vcisneros
```

##### cURL

```VBScript
curl --location --request POST 'https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/uploadbase' \
--header 'Authorization: Basic {{Token}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'filename=base_prueba_2.csv' \
--data-urlencode 'fileb64=UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow==' \
--data-urlencode 'campaign=POWER<-' \
--data-urlencode 'cant=5' \
--data-urlencode 'username=Vcisneros'
```

##### JavaScript

```JavaScript
var myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("filename", "base_prueba_2.csv");
urlencoded.append("fileb64", "UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow==");
urlencoded.append("campaign", "POWER<-");
urlencoded.append("cant", "5");
urlencoded.append("username", "Vcisneros");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/uploadbase", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/uploadbase",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "filename": "base_prueba_2.csv",
    "fileb64": "UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow==",
    "campaign": "POWER<-",
    "cant": "5",
    "username": "Vcisneros"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new RestClient("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/uploadbase");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic {{Token}}");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("filename", "base_prueba_2.csv");
request.AddParameter("fileb64", "UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow==");
request.AddParameter("campaign", "POWER<-");
request.AddParameter("cant", "5");
request.AddParameter("username", "Vcisneros");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "filename=base_prueba_2.csv&fileb64=UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow==&campaign=POWER<-&cant=5&username=Vcisneros");
Request request = new Request.Builder()
  .url("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/uploadbase")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{Instance}}.ucontactcloud.com")
payload = 'filename=base_prueba_2.csv&fileb64=UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow%3D%3D&campaign=POWER%3C-&cant=5&username=Vcisneros'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Dialers/uploadbase", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

#### Respuesta Exitosa

```JSON
1
```

#### Respuesta de error

```JSON
0
```

# Tipificar Llamada

Cuando una llamada es finalizada en uContact se puede agregar una tipificación para tener identificado en que finalizó la llamada y asi poder obtener reportes o bién crear acciones apartir de una tipificación.

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opcion-http-valor-re" style="border-collapse: collapse; width: 100%; height: 148.984px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 20.3956%; height: 29.7969px;">**Metodo**</td><td class="align-center" style="width: 79.6044%; height: 29.7969px;">**Recurso**</td></tr><tr style="height: 29.7969px;"><td style="width: 20.3956%; height: 29.7969px;">POST</td><td style="width: 79.6044%; height: 29.7969px;">Integra/resources/api/DispositionCall</td></tr></tbody></table>

#### Header Request

<table border="1" id="bkmrk-opcion-valor-content" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 20.7612%; height: 29.7969px;">**Clave**</td><td class="align-center" style="width: 79.214%; height: 29.7969px;">**Valor**</td></tr><tr style="height: 29.7969px;"><td style="width: 20.7612%; height: 29.7969px;">Content-Type</td><td style="width: 79.214%; height: 29.7969px;">application/x-www-form-urlencoded</td></tr><tr style="height: 29.7969px;"><td style="width: 20.7612%; height: 29.7969px;">Authorization</td><td style="width: 79.214%; height: 29.7969px;">Basic {{Token}}</td></tr></tbody></table>

#### Parametros

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="border-collapse: collapse; width: 100%; height: 490px;"><tbody><tr style="height: 29.8px;"><td style="width: 20.5192%; height: 29.8px;">**Parametro**</td><td style="width: 17.4289%; height: 29.8px;">**Tipo**</td><td style="width: 13.8443%; height: 29.8px;">**Requerido**</td><td style="width: 48.2077%; height: 29.8px;">**Descripción**</td></tr><tr style="height: 35.4px;"><td data-colwidth="210" style="width: 20.5192%; height: 35.4px;">campaign

</td><td data-colwidth="549" style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">Si</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Nombre de la campaña</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">agent

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">Si</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Nombre de usuario del agente</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">callerid

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">Si</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Numero de telefono del contacto</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">guid

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">Si</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Identificador unico de llamada</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">l1

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">Si</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Nivel 1 de tipificación</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">l2

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Nivel 2 de tipificación</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">l3

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Nivel 3 de tipificación</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">d1

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Dato extra a guardar</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">d2

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Dato extra a guardar</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">comment

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Comentario para la tipificación</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">schedule

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Fecha y hora para agendar llamada formaro AAAA-MM-DD HH:MI:SS</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">camptoreschedule

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Marcador al cual agendar la llamada</td></tr><tr style="height: 35.4px;"><td style="width: 20.5192%; height: 35.4px;">tag

</td><td style="width: 17.4289%; height: 35.4px;">  
</td><td style="width: 13.8443%; height: 35.4px;">No</td><td class="align-left" style="width: 48.2077%; height: 35.4px;">Texto para tag de tipificación o vacio</td></tr></tbody></table>

---

### Ejemplos de codigo

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

##### HTTP

```VBScript
POST /Integra/resources/api/DispositionCall HTTP/1.1
Host: {{Instancia}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 173

campaign=campana-%3E&agent=Vcisneros&callerid=1234567890&guid=f9b7ada3-a4e5-4795-834d-aa1c1a37ee57&l1=Tipificacion1&l2=&l3=&d2=&d2=&comment=&schedule=&camptoreschedule=&tag=
```

##### cURL

```VBScript
curl --location --request POST 'https://{{Instancia}}.ucontactcloud.com/Integra/resources/api/DispositionCall' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{Token}}' \
--data-urlencode 'campaign=campana->' \
--data-urlencode 'agent=Vcisneros' \
--data-urlencode 'callerid=1234567890' \
--data-urlencode 'guid=f9b7ada3-a4e5-4795-834d-aa1c1a37ee57' \
--data-urlencode 'l1=Tipificacion1' \
--data-urlencode 'l2=' \
--data-urlencode 'l3=' \
--data-urlencode 'd2=' \
--data-urlencode 'd2=' \
--data-urlencode 'comment=' \
--data-urlencode 'schedule=' \
--data-urlencode 'camptoreschedule=' \
--data-urlencode 'tag='
```

##### JavaScript

```JavaScript
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic {{Token}}");

var urlencoded = new URLSearchParams();
urlencoded.append("campaign", "campana->");
urlencoded.append("agent", "Vcisneros");
urlencoded.append("callerid", "1234567890");
urlencoded.append("guid", "f9b7ada3-a4e5-4795-834d-aa1c1a37ee57");
urlencoded.append("l1", "Tipificacion1");
urlencoded.append("l2", "");
urlencoded.append("l3", "");
urlencoded.append("d2", "");
urlencoded.append("d2", "");
urlencoded.append("comment", "");
urlencoded.append("schedule", "");
urlencoded.append("camptoreschedule", "");
urlencoded.append("tag", "");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{Instancia}}.ucontactcloud.com/Integra/resources/api/DispositionCall", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{Instancia}}.ucontactcloud.com/Integra/resources/api/DispositionCall",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}"
  },
  "data": {
    "campaign": "campana->",
    "agent": "Vcisneros",
    "callerid": "1234567890",
    "guid": "f9b7ada3-a4e5-4795-834d-aa1c1a37ee57",
    "l1": "Tipificacion1",
    "l2": "",
    "l3": "",
    "d2": "",
    "d2": "",
    "comment": "",
    "schedule": "",
    "camptoreschedule": "",
    "tag": ""
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new RestClient("https://{{Instancia}}.ucontactcloud.com/Integra/resources/api/DispositionCall");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("Authorization", "Basic {{Token}}");
request.AddParameter("campaign", "campana->");
request.AddParameter("agent", "Vcisneros");
request.AddParameter("callerid", "1234567890");
request.AddParameter("guid", "f9b7ada3-a4e5-4795-834d-aa1c1a37ee57");
request.AddParameter("l1", "Tipificacion1");
request.AddParameter("l2", "");
request.AddParameter("l3", "");
request.AddParameter("d2", "");
request.AddParameter("d2", "");
request.AddParameter("comment", "");
request.AddParameter("schedule", "");
request.AddParameter("camptoreschedule", "");
request.AddParameter("tag", "");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "campaign=campana->&agent=Vcisneros&callerid=1234567890&guid=f9b7ada3-a4e5-4795-834d-aa1c1a37ee57&l1=Tipificacion1&l2=&l3=&d2=&d2=&comment=&schedule=&camptoreschedule=&tag=");
Request request = new Request.Builder()
  .url("https://{{Instancia}}.ucontactcloud.com/Integra/resources/api/DispositionCall")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{Instancia}}.ucontactcloud.com")
payload = 'campaign=campana-%3E&agent=Vcisneros&callerid=1234567890&guid=f9b7ada3-a4e5-4795-834d-aa1c1a37ee57&l1=Tipificacion1&l2=&l3=&d2=&d2=&comment=&schedule=&camptoreschedule=&tag='
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/api/DispositionCall", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

#### Respuesta Exitosa

```JSON
"OK"
```

#### Respuesta de error

```JSON
"0"
```

# Crear Agente

Cuando en alguna integración se necesita crear usuarios desde alguna otra plataforma, podemos usar esta API que crea usuarios del tipo agente para que puedan hacer llamadas.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/s8o7ma2/createagent?tab=overview "CreateAgent") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opci%C3%B3n-http-valor-re" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 33.3553%; height: 29.7969px;">**Metodo**</td><td class="align-center" style="width: 66.62%; height: 29.7969px;">**Recurso**</td></tr><tr style="height: 29.7969px;"><td style="width: 33.3553%; height: 29.7969px;">POST</td><td style="width: 66.62%; height: 29.7969px;">/Integra/resources/sip/addsip</td></tr></tbody></table>

#### Request Header


<table border="1" id="bkmrk-opcion-valor-content" style="height: 95px; width: 100%;"><tbody><tr><td class="align-center" style="width: 33.1229%;">**Clave**</td><td class="align-center" style="width: 66.8524%;">**Valor**</td></tr><tr><td style="width: 33.1229%;">Content-Type</td><td style="width: 66.8524%;">application/x-www-form-urlencoded</td></tr><tr><td style="width: 33.1229%;">Authorization</td><td style="width: 66.8524%;">Basic {{Token}}</td></tr></tbody></table>

#### Request Body

<div class="pointer-container" id="bkmrk-%C2%A0"><div class="pointer anim is-page-editable"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg><div class="input-group inline block"> <button class="button outline icon" data-clipboard-target="#pointer-url" title="Copiar Enlace" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div><table border="1" id="bkmrk-parametro-tipo-descr" style="height: 68px; width: 100%;"><tbody><tr><td class="align-center" style="width: 24.9753%;">**Parametro**</td><td class="align-center" style="width: 24.9753%;">**Tipo**  
</td><td class="align-center" style="width: 24.9753%;">**Requerido**</td><td class="align-center" style="width: 24.9753%;">**Descripción**</td></tr><tr><td style="width: 24.9753%;">Phone</td><td class="align-center" style="width: 24.9753%;">Texto</td><td class="align-center" style="width: 24.9753%;">Si</td><td style="width: 24.9753%;">Objeto JSON</td></tr></tbody></table>

#### Ejemplo JSON

<p class="callout info">Los datos que no estan encerrados con {{ }} no serán modificados, serán enviados como datos fijos</p>

```JSON
{
    "LogLevel": "SEVERE",
    "fullname": "{{fullname}}",
    "accountcode": "{{userNameAgent}}",
    "allow": "alaw;ulaw",
    "callerid": "{{phoneNumber}}",
    "id": 407,
    "context": "agentes",
    "defaultuser": "{{phoneNumber}}",
    "did": "",
    "disallow": "all",
    "dtmfmode": "rfc2833",
    "email": "",
    "encryption": "yes",
    "canreinvite": "",
    "insecure": "",
    "host": "dynamic",
    "language": "es",
    "mailbox": "",
    "name": "{{phoneNumber}}",
    "nat": "yes",
    "phonetype": "SoftPhone",
    "pickupgroup": "",
    "callgroup": "",
    "qualify": "yes",
    "record": "agent",
    "secret": "{{passwordAgent}}",
    "subscribecontext": "default",
    "transport": "wss",
    "port": "",
    "outboundproxy": "",
    "type": "friend",
    "limite": "0"
}
```

#### Descripción de objeto JSON

<table border="1" id="bkmrk-parametro-tipo-descr-0" style="border-collapse: collapse; width: 100%; height: 118.963px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 33.3663%; height: 29.7875px;">**Parametro**</td><td class="align-center" style="width: 28.4252%; height: 29.7875px;">**Tipo**  
</td><td class="align-center" style="width: 38.3074%; height: 29.7875px;">**Descripción**</td></tr><tr style="height: 29.7875px;"><td style="width: 33.3663%; height: 29.7875px;">userName</td><td style="width: 28.4252%; height: 29.7875px;">Texto (String)</td><td style="width: 38.3074%; height: 29.7875px;">Nombre de usuario del agente</td></tr><tr style="height: 29.7875px;"><td style="width: 33.3663%; height: 29.7875px;">password</td><td style="width: 28.4252%; height: 29.7875px;">Texto (String)</td><td style="width: 38.3074%; height: 29.7875px;">Contraseña del usuario</td></tr><tr><td style="width: 33.3663%;">fullname</td><td style="width: 28.4252%;">Texto (String)</td><td style="width: 38.3074%;">Nombre completo del agente</td></tr><tr style="height: 29.6px;"><td style="width: 33.3663%; height: 29.6px;"><div><div>phoneNumber</div></div></td><td style="width: 28.4252%; height: 29.6px;">Texto (String)</td><td style="width: 38.3074%; height: 29.6px;">Numero de teléfono del agente (Dato Unico)</td></tr></tbody></table>

---

### Ejemplos de Código

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/sip/addsip HTTP/1.1
Host: {{dominio}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 1228

phone={ "LogLevel": "SEVERE", "fullname": "{{fullname}}", "accountcode": "{{userName}}", "allow": "alaw;ulaw", "callerid": "{{phoneNumber}}", "id": 407, "context": "agentes", "defaultuser": "{{phoneNumber}}", "did": "", "disallow": "all", "dtmfmode": "rfc2833", "email": "", "encryption": "yes", "canreinvite": "", "insecure": "", "host": "dynamic", "language": "es", "mailbox": "", "name": "{{phoneNumber}}", "nat": "yes", "phonetype": "SoftPhone", "pickupgroup": "", "callgroup": "", "qualify": "yes", "record": "agent", "secret": "{{password}}", "subscribecontext": "default", "transport": "wss", "port": "", "outboundproxy": "", "type": "friend", "limite": "0" }
```

##### cURL

```cURL
curl --location --globoff 'https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{Token}}' \
--data-urlencode 'phone={ "LogLevel": "SEVERE", "fullname": "{{fullname}}", "accountcode": "{{userName}}", "allow": "alaw;ulaw", "callerid": "{{phoneNumber}}", "id": 407, "context": "agentes", "defaultuser": "{{phoneNumber}}", "did": "", "disallow": "all", "dtmfmode": "rfc2833", "email": "", "encryption": "yes", "canreinvite": "", "insecure": "", "host": "dynamic", "language": "es", "mailbox": "", "name": "{{phoneNumber}}", "nat": "yes", "phonetype": "SoftPhone", "pickupgroup": "", "callgroup": "", "qualify": "yes", "record": "agent", "secret": "{{password}}", "subscribecontext": "default", "transport": "wss", "port": "", "outboundproxy": "", "type": "friend", "limite": "0" }'
```

##### JavaScript

```JavaScript
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic VmNpc25lcm9zOjdjMjUyODAyLTljNGEtNDcyZi05MjJiLTQwNGFmY2JjM2Q2MA==");

const urlencoded = new URLSearchParams();
urlencoded.append("phone", "{ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }");

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

fetch("https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}"
  },
  "data": {
    "phone": "{ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var options = new RestClientOptions("https://{{dominio}}.ucontactcloud.com")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/Integra/resources/sip/addsip", Method.Post);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("Authorization", "Basic {{Token}}");
request.AddParameter("phone", "{ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "phone={ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }");
Request request = new Request.Builder()
  .url("https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{dominio}}.ucontactcloud.com")
payload = 'phone={ "LogLevel": "SEVERE", "fullname": "{{fullname}}", "accountcode": "{{userName}}", "allow": "alaw;ulaw", "callerid": "{{phoneNumber}}", "id": 407, "context": "agentes", "defaultuser": "{{phoneNumber}}", "did": "", "disallow": "all", "dtmfmode": "rfc2833", "email": "", "encryption": "yes", "canreinvite": "", "insecure": "", "host": "dynamic", "language": "es", "mailbox": "", "name": "{{phoneNumber}}", "nat": "yes", "phonetype": "SoftPhone", "pickupgroup": "", "callgroup": "", "qualify": "yes", "record": "agent", "secret": "{{password}}", "subscribecontext": "default", "transport": "wss", "port": "", "outboundproxy": "", "type": "friend", "limite": "0" }'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/sip/addsip", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

<p class="callout warning">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 Response</p>

<p class="callout warning">La respuesta recibida es de tipo texto, por lo cual tendrá que convertirla a JSON para poder visualizar los datos correctamente.</p>

#### Respuesta exitosa

```JSON
1
```

#### Respuesta de error

```JavaScript
0
```

# Agregar Agente a Campaña

Cuando la integración lo requiere se pueden agregar agentes a una campaña especifica por medio de esta API, a continuación mostramos el como realizar esta acción.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/wfrw3il/addagenttocampaign?tab=overview "AddAgentToCampaign") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opci%C3%B3n-http-valor-re" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 21.8738%; height: 29.7969px;">**Metodo**</td><td class="align-center" style="width: 78.1015%; height: 29.7969px;">**Recurso**</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8738%; height: 29.7969px;">POST</td><td style="width: 78.1015%; height: 29.7969px;">/Integra/resources/queues/addqueuemember</td></tr></tbody></table>

#### Request Headers

<table border="1" class="align-center" id="bkmrk-parametro-tipo-descr" style="height: 91px; width: 105.062%;"><tbody><tr><td style="width: 21.7778%;">**Clave**</td><td style="width: 78.321%;">**Valor**</td></tr><tr><td class="align-left" style="width: 21.7778%;">Content-Type</td><td class="align-left" style="width: 78.321%;">application/x-www-form-urlencoded</td></tr><tr><td class="align-left" style="width: 21.7778%;">Authorization</td><td class="align-left" style="width: 78.321%;">Basic Token</td></tr></tbody></table>

#### Request Body

<table border="1" id="bkmrk-parametro-tipo-descr-0" style="border-collapse: collapse; width: 100%; height: 59.575px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 21.5027%; height: 29.7875px;">**Parametro**</td><td class="align-center" style="width: 19.9019%; height: 29.7875px;">**Tipo**  
</td><td class="align-center" style="width: 58.5706%; height: 29.7875px;">**Descripción**</td></tr><tr style="height: 29.7875px;"><td style="width: 21.5027%; height: 29.7875px;">queuemember</td><td style="width: 19.9019%; height: 29.7875px;">Texto (String)</td><td style="width: 58.5706%; height: 29.7875px;">Array de objetos, en donde se pueden agregar varios usuarios a varias campañas, por cada objeto es un usuario agregado a una campaña.</td></tr></tbody></table>

##### Ejemplo JSON

<p class="callout warning">Los datos agregados en el siguiente ejemplo son meramente demostrativos, tendrá que reemplazar los datos con los correspondiente a su instancia.</p>

```JSON
[
    {
        "membername": "{{UserName}}",
        "queueName": "{{CampaignName}}",
        "interface1": "SIP/{{AgentPhoneNumber}}",
        "penalty": 0,
        "paused": 0
    }
]

```

##### Descripción de Objeto JSON

<p class="callout warning">En el JSON todos las Key deben estar agregadas, si el campo menciona que no es oblicatorio puede ser agregado con un valor vacio.</p>

<table border="1" id="bkmrk-parametro-tipo-descr-1" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><tbody><tr style="height: 29.7969px;"><td class="align-center" style="width: 21.6263%; height: 29.7969px;">**Parametro**</td><td class="align-center" style="width: 21.8768%; height: 29.7969px;">**Tipo**  
</td><td class="align-center" style="width: 56.5958%; height: 29.7969px;">**Descripción**</td></tr><tr style="height: 29.7969px;"><td style="width: 21.6263%; height: 29.7969px;">UserName</td><td style="width: 21.8768%; height: 29.7969px;">Texto (String)</td><td style="width: 56.5958%; height: 29.7969px;">Nombre de usuario del agente</td></tr><tr style="height: 29.7969px;"><td style="width: 21.6263%; height: 29.7969px;">CampaignName</td><td style="width: 21.8768%; height: 29.7969px;">Texto (String)</td><td style="width: 56.5958%; height: 29.7969px;">Nombre de la campaña a la cual se desea agregar el usuario</td></tr><tr><td style="width: 21.6263%;"><div><div>PhoneNumber</div></div></td><td style="width: 21.8768%;">Texto (String)</td><td style="width: 56.5958%;">Numero de teléfono del agente</td></tr></tbody></table>

---

### Ejemplos de Código

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/queues/addqueuemember HTTP/1.1
Host: {{domain}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 221

queuemember=[{"membername":"{{UserName}}","queueName":"{{CampaignName}}","interface1":"SIP/{{AgentPhoneNumber}}","penalty":0,"paused":0}]
```

##### cURL

```cURL
curl --location --globoff 'https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{Token}}' \
--data-urlencode 'queuemember=[{"membername":"{{UserName}}","queueName":"{{CampaignName}}","interface1":"SIP/{{AgentPhoneNumber}}","penalty":0,"paused":0}]'
```

##### JavaScript

```JavaScript
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic {{Token}}");

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

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

fetch("https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}"
  },
  "data": {
    "queuemember": "[{\"membername\":\"{{UserName}}\",\"queueName\":\"{{CampaignName}}\",\"interface1\":\"SIP/{{AgentPhoneNumber}}\",\"penalty\":0,\"paused\":0}]"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember");
request.Headers.Add("Authorization", "Basic {{Token}}");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("queuemember", "[{\"membername\":\"{{UserName}}\",\"queueName\":\"{{CampaignName}}\",\"interface1\":\"SIP/{{AgentPhoneNumber}}\",\"penalty\":0,\"paused\":0}]"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "queuemember=[{\"membername\":\"{{UserName}}\",\"queueName\":\"{{CampaignName}}\",\"interface1\":\"SIP/{{AgentPhoneNumber}}\",\"penalty\":0,\"paused\":0}]");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

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

---

### HTTP Response

<p class="callout warning">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 Response</p>

<p class="callout warning">La respuesta recibida es de tipo texto, por lo cual tendrá que convertirla a JSON para poder visualizar los datos correctamente.</p>

#### Respuesta exitosa

```JSON
1
```

#### Respuesta de error

```JavaScript
0
```

# Hacer Llamada

En algunas ocasiones, es necesario que un agente genere una llamada a un número de teléfono desde otra aplicación, como podría ser un CRM. Se puede utilizar esta API, y la llamada será enviada al agente.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/lly7qi2/agentcall?tab=overview "Agent Call") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opci%C3%B3n-http-valor-re" style="border-collapse: collapse; width: 100%; height: 89.3625px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 22.284%; height: 29.7875px;">**Metodo**</td><td class="align-center" style="width: 77.8396%; height: 29.7875px;">**Recurso**</td></tr><tr style="height: 29.7875px;"><td style="width: 22.284%; height: 29.7875px;">POST</td><td style="width: 77.8396%; height: 29.7875px;">/Integra/resources/Agents/AgentCall</td></tr></tbody></table>

#### Request Header


<table border="1" id="bkmrk-opcion-valor-content" style="width: 116.914%; height: 107px;"><tbody><tr><td class="align-center" style="width: 22.3747%;">**Clave**</td><td class="align-center" style="width: 77.7241%;">**Valor**</td></tr><tr><td style="width: 22.3747%;">Content-Type</td><td style="width: 77.7241%;">application/x-www-form-urlencoded</td></tr><tr><td style="width: 22.3747%;">Authorization</td><td style="width: 77.7241%;">Basic {{Token}}</td></tr></tbody></table>

#### Request Body

<table border="1" id="bkmrk-parametro-tipo-descr" style="border-collapse: collapse; width: 100%; height: 279.788px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 21.997%; height: 29.7875px;">**Parametro**</td><td class="align-center" style="width: 13.4701%; height: 29.7875px;">**Tipo**  
</td><td style="width: 14.5867%; height: 29.7875px;">**Requerido**</td><td class="align-center" style="width: 50.045%; height: 29.7875px;">**Descripción**</td></tr><tr style="height: 46.4px;"><td style="width: 21.997%; height: 46.4px;">callerid</td><td style="width: 13.4701%; height: 46.4px;">Número</td><td class="align-center" style="width: 14.5867%; height: 46.4px;">Si</td><td style="width: 50.045%; height: 46.4px;">DID asignado a la campaña por la cual se realizará la llamada.</td></tr><tr style="height: 29.6px;"><td style="width: 21.997%; height: 29.6px;">agent</td><td style="width: 13.4701%; height: 29.6px;">Texto</td><td class="align-center" style="width: 14.5867%; height: 29.6px;">Si</td><td style="width: 50.045%; height: 29.6px;">Agente que tomará la llamada.</td></tr><tr style="height: 34.4px;"><td style="width: 21.997%; height: 34.4px;"><div><span class="Text__TextContainer-sc-1kqigik-0 ggvUCn sc-fznXWL cEvDCP item-key" data-aether-id="aether-text" data-click="" data-testid="aether-text">phone</span></div></td><td style="width: 13.4701%; height: 34.4px;">Número</td><td class="align-center" style="width: 14.5867%; height: 34.4px;">Si</td><td style="width: 50.045%; height: 34.4px;">Número de teléfono del agente.</td></tr><tr style="height: 29.6px;"><td style="width: 21.997%; height: 29.6px;">tech</td><td style="width: 13.4701%; height: 29.6px;">Texto</td><td class="align-center" style="width: 14.5867%; height: 29.6px;">Si</td><td style="width: 50.045%; height: 29.6px;">Protocolo de comunicación, agregar SIP.</td></tr><tr style="height: 46.4px;"><td style="width: 21.997%; height: 46.4px;">context</td><td style="width: 13.4701%; height: 46.4px;">Texto</td><td class="align-center" style="width: 14.5867%; height: 46.4px;">Si</td><td style="width: 50.045%; height: 46.4px;">Nombre del contexto para flujos por el cual saldrá la llamada. Puede ser "agentes" o "agents"</td></tr><tr style="height: 29.6px;"><td style="width: 21.997%; height: 29.6px;">outqueue</td><td style="width: 13.4701%; height: 29.6px;">Texto</td><td class="align-center" style="width: 14.5867%; height: 29.6px;">Si</td><td style="width: 50.045%; height: 29.6px;">Nombre de la campaña manual.</td></tr><tr style="height: 34px;"><td style="width: 21.997%; height: 34px;">destination</td><td style="width: 13.4701%; height: 34px;">Número</td><td class="align-center" style="width: 14.5867%; height: 34px;">Si</td><td style="width: 50.045%; height: 34px;">Nombre de la campaña por la cual se generará la llamada.</td></tr></tbody></table>

---

### Ejemplos de Código

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/Agents/AgentCall HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 116

callerid={{callerid}}agent={{agent}}&phone={{phone}}&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}
```

##### cURL

```cURL
curl --location 'https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall' \
--header 'Authorization: Basic {{Token}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'callerid={{callerid}}' \
--data-urlencode 'agent={{agent}}' \
--data-urlencode 'phone={{phone}}' \
--data-urlencode 'tech=SIP' \
--data-urlencode 'context={{context}}' \
--data-urlencode 'outqueue={{outqueue}}' \
--data-urlencode 'destination={{destination}}'
```

##### JavaScript

```JavaScript
const myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

const urlencoded = new URLSearchParams();
urlencoded.append("callerid", "{{callerid}}");
urlencoded.append("agent", "{{agent}}");
urlencoded.append("phone", "{{phone}}");
urlencoded.append("tech", "SIP");
urlencoded.append("context", "{{context}}");
urlencoded.append("outqueue", "{{outqueue}}");
urlencoded.append("destination", "{{destination}}");

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

fetch("https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "callerid": "{{callerid}}",
    "agent": "{{agent}}",
    "phone": "{{phone}}",
    "tech": "SIP",
    "context": "{{context}}",
    "outqueue": "{{outqueue}}",
    "destination": "{{destination}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall");
request.Headers.Add("Authorization", "Basic {{Token}}");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("callerid", "{{callerid}}"));
collection.Add(new("agent", "{{agent}}"));
collection.Add(new("phone", "{{phone}}"));
collection.Add(new("tech", "SIP"));
collection.Add(new("context", "{{context}}"));
collection.Add(new("outqueue", "{{outqueue}}"));
collection.Add(new("destination", "{{destination}}"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "callerid={{callerid}}&agent={{agent}}&phone={{phone}}&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}");
Request request = new Request.Builder()
  .url("https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{instance}}.ucontactcloud.com")
payload = 'callerid={{callerid}}&agent={{agent}}&phone={{phone}}&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Agents/AgentCall", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

<p class="callout warning">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" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response.</p>

<p class="callout info">La respuesta exitosa será un GUID como identificador de la llamada; con este dato se podrán realizar futuras acciones mediante APIs.</p>

#### Respuesta exitosa

```XML
8cf8570e-60e7-44ed-b799-3baab211b04d
```

#### Respuesta de error

```JavaScript
0
```

# Obtener Campañas

Para obtener todas las campañas creadas dentro de uContact se puede usar esta API la cual regresa la totalidad de Dialers y Queues.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/3q6h235/getqueues?tab=overview "Get Queues") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opci%C3%B3n-http-valor-re" style="border-collapse: collapse; width: 100%; height: 89.3625px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 22.284%; height: 29.7875px;">**Metodo**</td><td class="align-center" style="width: 77.8396%; height: 29.7875px;">**Recurso**</td></tr><tr style="height: 29.7875px;"><td style="width: 22.284%; height: 29.7875px;">POST</td><td style="width: 77.8396%; height: 29.7875px;">/Integra/resources/queues/getqueues</td></tr></tbody></table>

#### Request Header


<table border="1" id="bkmrk-opcion-valor-content" style="width: 116.914%; height: 107px;"><tbody><tr><td class="align-center" style="width: 22.3747%;">**Clave**</td><td class="align-center" style="width: 77.7241%;">**Valor**</td></tr><tr><td style="width: 22.3747%;">Content-Type</td><td style="width: 77.7241%;">application/x-www-form-urlencoded</td></tr><tr><td style="width: 22.3747%;">Authorization</td><td style="width: 77.7241%;">Basic {{Token}}</td></tr></tbody></table>

#### Request Body

<table border="1" id="bkmrk-parametro-tipo-descr" style="border-collapse: collapse; width: 100%; height: 60.1875px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 21.997%; height: 29.7875px;">**Parametro**</td><td class="align-center" style="width: 13.4701%; height: 29.7875px;">**Tipo**  
</td><td style="width: 14.5867%; height: 29.7875px;">**Requerido**</td><td class="align-center" style="width: 50.045%; height: 29.7875px;">**Descripción**</td></tr><tr style="height: 30.4px;"><td style="width: 21.997%; height: 30.4px;">lastrow</td><td style="width: 13.4701%; height: 30.4px;">Texto</td><td class="align-center" style="width: 14.5867%; height: 30.4px;">No</td><td style="width: 50.045%; height: 30.4px;">Enviar vacio</td></tr></tbody></table>

---

### Ejemplos de Código

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/queues/getqueues HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 8

lastrow=
```

##### cURL

```cURL
curl --location --globoff 'https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{Token}}' \
--data-urlencode 'lastrow='
```

##### JavaScript

```JavaScript
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic {{Token}}");

const urlencoded = new URLSearchParams();
urlencoded.append("lastrow", "");

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

fetch("https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}"
  },
  "data": {
    "lastrow": ""
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues");
request.Headers.Add("Authorization", "Basic {{Token}}");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("lastrow", ""));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "lastrow=");
Request request = new Request.Builder()
  .url("https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{instance}}.ucontactcloud.com")
payload = 'lastrow='
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/queues/getqueues", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

<p class="callout warning">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" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response.</p>

<p class="callout info">La respuesta exitosa será un JSON correspondiente a un array de objetos, en donde cada objeto corresponde a una campaña.</p>

#### Respuesta exitosa

```XML
[
	{
        "name": "DEMO007->",
        "musiconhold": "default",
        "announce": "",
        "context": "",
        "timeout": 15,
        "monitorType": "MixMonitor",
        "monitorFormat": "gsm",
        "announceFrequency": 0,
        "announceRoundSeconds": 0,
        "announceHoldtime": "no",
        "announcePosition": "no",
        "retry": 3,
        "wrapuptime": 0,
        "maxlen": 100,
        "servicelevel": 15,
        "strategy": "linear",
        "joinempty": "yes",
        "leavewhenempty": "no",
        "eventmemberstatus": false,
        "eventwhencalled": true,
        "reportholdtime": false,
        "memberdelay": 0,
        "weight": 0,
        "timeoutrestart": true,
        "ringinuse": false,
        "setinterfacevar": true,
        "periodicAnnounce": "",
        "periodicAnnounceFrequency": "0",
        "did": "18885751288",
        "direction": "outbound",
        "interactions": "",
        "email": "",
        "thresholds": "40-80-20-50-60-180-300-6-3-",
        "welcome": "&  &    &  &;&  &    &  &",
        "schedule": "sun-sat;00:00-23:59",
        "form": "Totality|true",
        "quality": "",
        "dialstring": "SIP/CLEVERSIP/9898",
        "voicemail": "",
        "queue_survey": 1,
        "queue_timeout": 600,
        "auto_answer": "FALSE",
        "show_dispositions": 1,
        "queue_breaks": "",
        "screen_recording": 0,
        "language": "en",
        "transferCampaigns": ""
    }
]
```

#### Respuesta de error

```JavaScript
0
```

# Obtener Dialers

Para obtener la lista de los dialers de uContact, se necesita usar esta API. Por ejemplo, si queremos crear un desplegable desde otra aplicación para mostrar los dialers y realizar alguna acción específica.

<p class="callout info">Usted puede verificar la [Colección de Postman](https://www.postman.com/dev-clever-ideas/ucontact/request/5gymbfm/getdialers?tab=overview "Get Dialers") para ver un ejemplo y probar con su instancia.</p>

<p class="callout info">Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.</p>

---

### HTTP Request

<table border="1" id="bkmrk-opci%C3%B3n-http-valor-re" style="border-collapse: collapse; width: 100%; height: 59.575px;"><tbody><tr style="height: 29.7875px;"><td class="align-center" style="width: 22.284%; height: 29.7875px;">**Metodo**</td><td class="align-center" style="width: 77.8396%; height: 29.7875px;">**Recurso**</td></tr><tr style="height: 29.7875px;"><td style="width: 22.284%; height: 29.7875px;">POST</td><td style="width: 77.8396%; height: 29.7875px;">/Integra/resources/Dialers/get</td></tr></tbody></table>

#### Request Header


<table border="1" id="bkmrk-opcion-valor-content" style="width: 116.914%; height: 107px;"><tbody><tr><td class="align-center" style="width: 22.3747%;">**Clave**</td><td class="align-center" style="width: 77.7241%;">**Valor**</td></tr><tr><td style="width: 22.3747%;">Authorization</td><td style="width: 77.7241%;">Basic {{Token}}</td></tr></tbody></table>

---

### Ejemplos de Código

<p class="callout info">Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.</p>

#### HTTP

```HTTP
POST /Integra/resources/Dialers/get HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
```

##### cURL

```cURL
curl --location --globoff --request POST 'https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get' \
--header 'Authorization: Basic {{Token}}'
```

##### JavaScript

```JavaScript
const myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");

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

fetch("https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
```

##### JQuery

```JavaScript
var settings = {
  "url": "https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

##### C#

```C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get");
request.Headers.Add("Authorization", "Basic {{Token}}");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

```

##### Java

```Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
```

##### Python

```Python
import http.client

conn = http.client.HTTPSConnection("{{instance}}.ucontactcloud.com")
payload = ''
headers = {
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/Dialers/get", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

---

### HTTP Response

<p class="callout warning">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" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response.</p>

<p class="callout info">La respuesta exitosa será un texto en formato JSON correspondiente a un array de objetos, en donde cada objeto corresponde a un dialer.</p>

#### Respuesta exitosa

```JSON
[
	{
        "campaign": "DEMO007<-",
        "schedule": "mon,tue,wed,thu,fri,sat;08:00-21:00",
        "dialertype": "PowerDialer",
        "status": 1,
        "dialstring": "SIP/CLEVERSIP/9898",
        "context": "PowerDialer",
        "exten": "${EXTEN}",
        "am": 0,
        "sound": "",
        "maxchannels": 2,
        "variables": "FORM=Totality:language=default:initialSilence=1500:greeting=2000:afterGreetingSilence=1000:totalAnalysisTime=2500:minWordLength=100:betweenWordSilence=50:maxNumberOfWords=2:silenceThreshold=256",
        "timeout": 30,
        "callerid": "18885751288",
        "retries": 0,
        "callerpres": 20,
        "tbc": -5,
        "dncr": 1,
        "schedulephones": "0=HMW:1=HMW:2=HMW:3=HMW:4=HMW:5=HMW:6=HMW:7=HMW:8=MWH:9=MWH:10=MWH:11=MWH:12=MWH:13=MWH:14=MWH:15=MWH:16=MWH:17=MWH:18=MWH:19=HMW:20=HMW:21=HMW:22=HMW:23=HMW",
        "autoanswer": 1,
        "tbc_nocontact": 0,
        "earlymedia": 0,
        "recyclecount": 0,
        "recycle": "[]",
        "country": "",
        "rule": "NONE",
        "autoconvertcallerid": 0
    }
]
```

#### Respuesta de error

```JavaScript
0
```