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