# 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
```