API Cloud v1.0
Bienvenido a la documentación de API Cloud v1.0 de netelip.
La API Cloud proporciona una interfaz programática para realizar todas las acciones que habitualmente se llevan a cabo a través del panel de control. Esta API está diseñada para facilitar la automatización de tareas, la integración con otros sistemas y la gestión remota, permitiendo así un control completo sobre las funcionalidades principales que ofrece el panel de control.
Con esta API podrás realizar operaciones tales como:
- Consultar datos: obtén información detallada y en tiempo real sobre los diferentes aspectos gestionados por el panel de control.
- Actualizar configuraciones: realiza cambios en las configuraciones del sistema, adaptando el funcionamiento de acuerdo con las necesidades específicas de cada contexto.
- Automatizar procesos: implementa flujos de trabajo automatizados para aumentar la eficiencia y reducir los errores operativos.
Cada una de las operaciones está disponible a través de endpoints seguros y documentados, permitiendo que los desarrolladores puedan interactuar con la API de manera sencilla y confiable.
Para conocer todas las APIs disponibles, información general y restricciones aplicadas a su uso consulte "Documentación APIs".
¿Por dónde empezar?
Para comenzar a utilizar API Cloud es necesario crear una cuenta de netelip, desde el siguiente enlace.
Si ya tienes creado la cuenta accede a tu panel de control de netelip, "Editar perfil" o en el siguiente enlace, y genera un token de seguridad pulsando sobre el botón
Una vez generado el token de seguridad, ponte en contacto con netelip para indicadnos que IP de acceso a la API tenemos que habilitar junto con tu token de seguridad e ID de cliente (El ID de cliente se obtiene pulsando sobre el avatar en el panel de control).
Características
Todas las llamadas a la API Cloud se realizan mediante métodos HTTP estándar, incluidos los métodos (POST, GET) contra la URL base https://cloud.netelip.com/apiweb, y todas las respuestas devuelven JSON estándar.
A todas las peticiones realizadas hay que añadir la siguiente cabecera:
| Parámetro | Descripción |
|---|---|
| api-id | ID correspondiente al token de seguridad de la cuenta de netelip |
A continuación puedes consultar los endpoints de cada servicio de netelip:
API Voice
Crear API Voice
curl -X GET https://cloud.netelip.com/apiweb/createapivoice \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
Crea y activa el servicio de API Voice gratuito durante un mes.
- URL: /createapivoice
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá información sobre el APIVoice creado.
{
"status": "OK",
"data": {
"apivoice": {
"name": "API 9b9f0",
"creationdate": "2024-04-24 16:37:30.000000",
"expirationdate": "2024-05-24 16:37:30.000000"
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "APIVoice is already activated and created, use another method to create a new APIVoice"
}
Listar API Voice
curl -X GET https://cloud.netelip.com/apiweb/apivoice/list \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
Lista API Voice de la cuenta.
- URL: /apivoice/list
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", listará las API Voice disponibles.
{
"status": "OK",
"data": {
"apivoice": [
{
"id": 1689,
"name": "API c558f",
"creationdate": "2024-04-30 08:48:49.000000",
"expirationdate": "2024-05-30 08:48:49.000000"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Información de API Voice
curl -X POST https://cloud.netelip.com/apiweb/apivoice/details \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id":"1226"}'
Obtiene información de APIVoice de la cuenta.
- URL: /apivoice/details
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id | ID de APiVoice |
Si la respuesta es "OK", devolverá información sobre el API Voice solicitado.
{
"status": "OK",
"data": {
"apivoice": {
"id": 1226,
"name": "API eaba7",
"creationdate": "2022-04-12 16:20:16.000000",
"expirationdate": "2024-08-12 16:20:16.000000",
"urlReceiveCalls": "https://midominio.com/entrante.php",
"urlMakeCalls": "https://midominio.com/dial_solo_numero.php",
"IP": "192.168.1.112",
"token": "06d636492dc510e3e84884f886691766af15d8c58181d4178d79aba85181ab3d",
"urlReportCalls": "https://midominio.com/reportes.php",
"typeReport": "vpbx",
"urlEvents": "https://midominio.com/eventos.php",
"urlRegisters": "https://midominio.com/registros.php",
"listenExtensionsEvents": [
{
"username": "8466271361100",
"ext": "100"
},
{
"username": "8466271361102",
"ext": "102"
},
{
"username": "8466271361104",
"ext": "104"
},
{
"username": "8466271361106",
"ext": "106"
},
{
"username": "8466271361108",
"ext": "108"
},
{
"username": "8466271361110",
"ext": "110"
},
{
"username": "8466271361112",
"ext": "112"
},
{
"username": "8466271361209",
"ext": "209"
},
{
"username": "8466271361409",
"ext": "409"
}
],
"listenEvents": [
"ring",
"hangup",
"answer",
"busy",
"noanswer",
"notavailable"
]
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Editar APIVoice
curl -X POST https://cloud.netelip.com/apiweb/apivoice/edit \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id":"1226","name":"prueba","urlReceiveCalls":"http://prueba.com/entrante1.php","urlMakeCalls":"http://prueba.com/dial_solo_numero1.php","IP":"192.168.1.113","urlReportCalls":"http://prueba.com/reportes1.php","typeReport":"general", "urlEvents":"http://prueba.com/eventos1.php","urlRegisters":"prueba.com/registros1.php","listenExtensionsEvents":"100,101,102", "listenEvents":"ring,hangup"}'
Edita APIVoice de la cuenta.
- URL: /apivoice/edit
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id | ID de APiVoice a editar | |
| name | Nombre que se dará a API Voice | |
| urlReceiveCalls | URL recepción de llamadas. Dirección web destinataria de la actual API Voice que gestionará la llamada recibida | |
| urlMakeCalls | URL realización de llamadas. Dirección web destinataria de la actual API Voice que gestionará la llamada realizada | |
| IP | IP que a la cual se dará acceso a poder realizar llamadas. En caso de dejarlo vacío se podrá realizar llamadas desde cualquier IP | |
| urlReportCalls | URL de reporte de llamadas. URL a la que se enviará el informe de llamadas realizadas/recibidas de los últimos 5 minutos | |
| typeReport | Tipo de registro de llamadas. Selecciona el registro de llamadas a recibir: Genérico: Informe de llamadas de la cuenta de Netelip. vPBX: Histórico de llamadas de la centralita virtual | general(Informe de llamadas de la cuenta de Netelip) o vpbx(Histórico de llamadas de la centralita virtual) |
| urlEvents | URL eventos de llamadas. URL a la que se enviarán los cambios de estado de las extensiones de vPBX | |
| urlRegisters | URL eventos de registro. URL a la que se enviarán los registros de las extensiones de vPBX | |
| listenExtensionsEvents | Extensiones de vPBX de las que se le notificará de un cambio de estado | Por ejemplo:100,102 |
| listenEvents | Eventos que se notificarán de las extensiones de vPBX anteriores | Los valores son: ring, hangup, notavailable, busy, answer, noanswer. Por ejemplo:ring,hangup |
Si la respuesta es "OK", devolverá la información del API Voice editado.
{
"status": "OK",
"data": {
"apivoice": {
"id": 1226,
"name": "prueba",
"creationdate": "2022-04-12 16:20:16.000000",
"expirationdate": "2024-08-12 16:20:16.000000",
"urlReceiveCalls": "https://midominio.com/entrante1.php",
"urlMakeCalls": "https://midominio.com/dial_solo_numero1.php",
"IP": "192.168.1.113",
"token": "06d636492dc510e3e84884f886691766af15d8c58181d4178d79aba85181ab3d",
"urlReportCalls": "https://midominio.com/reportes1.php",
"typeReport": "general",
"urlEvents": "https://midominio.com/eventos1.php",
"urlRegisters": "https://midominio.com/registros1.php",
"listenExtensionsEvents": [
{
"username": "8466271361100",
"ext": "100"
},
{
"username": "8466271361101",
"ext": "101"
},
{
"username": "8466271361102",
"ext": "102"
}
],
"listenEvents": [
"ring",
"hangup"
]
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Eliminar API Voice
curl -X POST https://cloud.netelip.com/apiweb/apivoice/delete \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id":"1226"}'
Elimina APIVoice de la cuenta.
- URL: /apivoice/delete
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id | ID de APiVoice |
Si la respuesta es "OK", devolverá información sobre el APIVoice eliminado.
{
"status": "OK",
"data": {
"apivoice": {
"id": 1690,
"name": "prueba"
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Generar token
curl -X POST https://cloud.netelip.com/apiweb/apivoice/generatetoken \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id":"1226"}'
Genera token de API Voice necesario para realizar una llamada con API Voice.
- URL: /apivoice/generatetoken
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id | ID de APiVoice |
Si la respuesta es "OK", devolverá información sobre el API Voice solicitado.
{
"status": "OK",
"data": {
"apivoice": {
"id": 1690,
"name": "prueba",
"creationdate": "2024-04-30 11:42:44.000000",
"expirationdate": "2024-05-30 11:42:44.000000",
"urlReceiveCalls": "http://url.com/entrante1.php",
"urlMakeCalls": "http://url.com/dial_solo_numero1.php",
"IP": "192.168.1.113",
"token": "7acf4fd91723c83d011981e92991d60f2cfa2fa1a7f5c8f72a9a130def331ac4",
"urlReportCalls": "http://url.com/reportes1.php",
"typeReport": null,
"urlEvents": "",
"urlRegisters": "",
"listenExtensionsEvents": [],
"listenEvents": []
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Línea SIP
Listar identificadores de llamada
curl -X GET https://cloud.netelip.com/apiweb/linesip/callerids \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
Lista los identificadores de llamada de la cuenta.
- URL: /linesip/callerids
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá los identificadores de llamada que tiene la cuenta.
{
"status": "OK",
"data": {
"callerids": [
"anonymous",
"34851000015",
"34666666666"
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "This account already has a vPBX activated"
}
Crédito
curl -X GET https://cloud.netelip.com/apiweb/linesip/credit \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
Muestra el crédito actual de la cuenta.
- URL: /linesip/credit
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá el crédito actual de la cuenta.
{
"status": "OK",
"data": {
"credit": {
"credit": 0.015,
"creditlimit": 0,
"balance": 0.015,
"currencysymbol": "€",
"currency": "EUR",
"creditType": "common"
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "This account already has a vPBX activated"
}
Numeración telefónica
Listar numeración telefónica
curl -X GET https://cloud.netelip.com/apiweb/numbers \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
Lista la numeración telefónica de la cuenta
- URL: /numbers
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá los números de teléfono que tiene la cuenta.
{
"status": "OK",
"data": {
"numbers": [
{
"did": "34902750300",
"country": "Spain",
"province": "(902) Red Inteligente",
"startdate": "2022-01-19 11:00:40.000000",
"expirationdate": "2024-05-19 11:00:40.000000",
"formatCLI": "local",
"destinationName": "Fax2Mail",
"destination": "SIP/34902750300@FAX2MAIL",
"comment": null
},
{
"did": "34901001801",
"country": "Spain",
"province": "(901) Red Inteligente",
"startdate": "2016-07-14 11:53:48.000000",
"expirationdate": "2024-07-14 11:53:48.000000",
"formatCLI": "e164",
"destinationName": "676658491",
"destination": "676658491",
"comment": null
},
{
"did": "34900525202",
"country": "Spain",
"province": "(900) Red Inteligente",
"startdate": "2022-07-28 11:34:19.000000",
"expirationdate": "2024-08-28 11:34:19.000000",
"formatCLI": "local",
"destinationName": "Servidor SIP",
"destination": "SIP/34900525202@185.8.244.123",
"comment": null
},
{
"did": "34851000015",
"country": "Spain",
"province": "Malaga - Vocal nomada",
"startdate": "2024-01-03 09:43:19.000000",
"expirationdate": "2025-02-03 09:43:19.000000",
"formatCLI": "local",
"destinationName": "vPBX",
"destination": "SIP/34851000015@vpbx-eu.netelip.com",
"comment": null
},
{
"did": "17866281079",
"country": "United States",
"province": "Miami",
"startdate": "2022-04-06 17:03:38.000000",
"expirationdate": "2025-04-06 17:03:34.000000",
"formatCLI": "e164",
"destinationName": "vPBX",
"destination": "SIP/17866281079@vpbx-eu.netelip.com",
"comment": "número de estados unidos"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "This account already has a vPBX activated"
}
Info de un número de teléfono
curl -X POST https://cloud.netelip.com/apiweb/number \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"number":"13052858624"}'
Obtiene información sobre un número de teléfono de la cuenta
- URL: /number
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| number | Número de teléfono |
Si la respuesta es "OK", devolverá información sobre el número de teléfono solicitado.
{
"status": "OK",
"data": {
"number": {
"did": "13052858624",
"country": "United States",
"province": "Miami",
"startdate": "2019-08-28 11:46:53.000000",
"expirationdate": "2024-10-28 11:46:51.000000",
"formatCLI": "e164",
"routing": {
"destinationName": "vPBX",
"destination": "SIP/13052858624@vpbx.netelip.com",
"Contact": "e164",
"server": "vpbx.netelip.com"
},
"sms": {
"receive": true,
"activated": false,
"email": "",
"url": ""
},
"comment": "netelip Directo Diana atiende Adrián"
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "This account already has a vPBX activated"
}
Editar número de teléfono
curl -X POST https://cloud.netelip.com/apiweb/number/edit \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"number":"13052858513","formatCLI":"e164","destinationCall":"vpbx","destinationSMS":"1","destinationSMSEmail":"juan@midominio.com","destinationSMSURL":"https://midominio.com/test.php"}'
Edita el enrutamiento de un número de teléfono de la cuenta
- URL: /number/edit
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| number | Número de teléfono | |
| formatCLI | Formato del identificador de llamada entrante | e164. Convierte el identificador de llamada a formato E.164 (código de país + código de área + número). local. Convierte el identificador de llamada a formato local (código de área + número). |
| destinationSMS | Activa/desactiva la recepción de sms. No está disponible en todos los números de teléfono | 1, activa; 0, desactiva |
| destinationSMSEmail | Establece el email como destino del sms | |
| destinationSMSURL | Establece la URL como destino del sms | |
| destinationCall | Tipo de destino de la llamada de teléfono | deactivate, desactiva la recepción de llamadas; callforwarding, desvía la llamada recibida hacia otro número de teléfono; sipline, la llamada es enrutada hacia la cuenta de VoIP; sipserver, la llamada es enrutada hacia un servidor SIP; fax2mail, el número de teléfono solo recepciona faxes; vpbx, enruta la llamada al servicio de vPBX; apivoice, enruta la llamada al servicio de API Voice |
| destinationCallCallforwarding | Número de teléfono de destino cuando se desvía la llamada(destinationCall=callforwarding) | |
| destinationCallContactE164 | Se indica a su dispositivo el número de teléfono al que esta llamadando. INVITE sip:numero_de_telefono@... Solo cuando destinationCall=sipline | |
| destinationCallIntelligentForward | Número de teléfono de desvío en caso de no poder contestar la llamada o no estar disponible su cuenta de VoIP. Al añadir un desvío de llamada en la cuenta de VoIP, el buzón de voz será deshabilitado. Solo cuando destinationCall=sipline | |
| destinationCallSipserver | Enruta las llamadas recibidas hacia la IP, dominio, subdominio o SIP URI de tu servidor SIP. Solo cuando destinationCall=sipserver | |
| prefixplus | Se indica a su servidor SIP el número de teléfono al que está llamando. INVITE sip:+numero_de_telefono@... Solo cuando destinationCall=sipserver | 1, activa; 0, desactiva |
| destinationCallFax2mail | Email donde se reciben los faxes. Solo cuando destinationCall=fax2mail | |
| description | Nota, comentario al número de teléfono |
Si la respuesta es "OK", devolverá la confirmación de la actualización junto a la información del número de teléfono.
{
"status": "OK",
"data": "successfully updated",
"number": {
"did": "13052858513",
"country": "United States",
"province": "Miami",
"startdate": "2019-08-28 11:46:51.000000",
"expirationdate": "2024-10-28 11:46:48.000000",
"formatCLI": "e164",
"routing": {
"destinationName": "vPBX",
"destination": "SIP/13052858513@vpbx.netelip.com",
"Contact": "e164",
"server": "vpbx.netelip.com"
},
"sms": {
"receive": true,
"email": "juan@midominio.com",
"url": "https://midominio.com/test.php"
},
"comment": null
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Compra
Listar países disponibles con numeración para comprar
curl -X GET https://cloud.netelip.com/apiweb/numbers/buy/countries \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
- URL: /numbers/buy/countries
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá información sobre los países disponibles para comprar.
{
"status": "OK",
"data": {
"countries": [
{
"country_id": 3,
"country_prefix": "213",
"country_name": "Algeria",
"country_ISO": "DZ"
},
{
"country_id": 10,
"country_prefix": "54",
"country_name": "Argentina",
"country_ISO": "AR"
},
{
"country_id": 13,
"country_prefix": "61",
"country_name": "Australia",
"country_ISO": "AU"
},
{
"country_id": 14,
"country_prefix": "43",
"country_name": "Austria",
"country_ISO": "AT"
},
{
"country_id": 17,
"country_prefix": "973",
"country_name": "Bahrain",
"country_ISO": "BH"
},
{
"country_id": 47,
"country_prefix": "57",
"country_name": "Colombia",
"country_ISO": "CO"
},
{
"country_id": 52,
"country_prefix": "506",
"country_name": "Costa Rica",
"country_ISO": "CR"
},
{
"country_id": 256,
"country_prefix": "385",
"country_name": "Croatia",
"country_ISO": "HR"
},
{
"country_id": 56,
"country_prefix": "357",
"country_name": "Cyprus",
"country_ISO": "CY"
},
{
"country_id": 57,
"country_prefix": "420",
"country_name": "Czech Republic",
"country_ISO": "CZ"
},
{
"country_id": 254,
"country_prefix": "372",
"country_name": "Estonia",
"country_ISO": "EE"
},
{
"country_id": 107,
"country_prefix": "81",
"country_name": "Japan",
"country_ISO": "JP"
},
{
"country_id": 117,
"country_prefix": "371",
"country_name": "Latvia",
"country_ISO": "LV"
},
{
"country_id": 122,
"country_prefix": "423",
"country_name": "Liechtenstein",
"country_ISO": "LI"
},
{
"country_id": 138,
"country_prefix": "52",
"country_name": "Mexico",
"country_ISO": "MX"
},
{
"country_id": 165,
"country_prefix": "507",
"country_name": "Panama",
"country_ISO": "PA"
},
{
"country_id": 168,
"country_prefix": "51",
"country_name": "Peru",
"country_ISO": "PE"
},
{
"country_id": 171,
"country_prefix": "48",
"country_name": "Poland",
"country_ISO": "PL"
},
{
"country_id": 198,
"country_prefix": "34",
"country_name": "Spain",
"country_ISO": "ES"
},
{
"country_id": 230,
"country_prefix": "58",
"country_name": "Venezuela",
"country_ISO": "VE"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Listar ciudades disponibles con numeración para comprar
curl -X POST https://cloud.netelip.com/apiweb/numbers/buy/cities \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id_country":"10"}'
- URL: /numbers/buy/cities
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id_country | ID del país para comprar numeración telefónica |
Si la respuesta es "OK", devolverá información sobre las ciudades disponibles para comprar.
{
"status": "OK",
"data": {
"cities": [
{
"id": "2645be62-eb92-439a-b1c8-2b32ebfc4db0",
"name": "Bahia Blanca",
"prefix": "291",
"tariff": "11.9500",
"tariff6": "8.9500",
"tariff12": "5.9500",
"activationfee": "0.0000"
},
{
"id": "93dc0eff-dd36-47ba-ab6f-d302cbf2f95d",
"name": "Buenos Aires",
"prefix": "11",
"tariff": "11.9500",
"tariff6": "8.9500",
"tariff12": "5.9500",
"activationfee": "0.0000"
},
{
"id": "42f41fb1-d1f4-4062-9eae-8014deb84873",
"name": "Cordoba",
"prefix": "351",
"tariff": "11.9500",
"tariff6": "8.9500",
"tariff12": "5.9500",
"activationfee": "0.0000"
},
{
"id": "4ad549a5-fa6f-463b-b727-0a25f0c4fc93",
"name": "Villa Mercedes",
"prefix": "2657",
"tariff": "11.9500",
"tariff6": "8.9500",
"tariff12": "5.9500",
"activationfee": "0.0000"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Listar numeración disponible para comprar según país y ciudad
Actualmente solo disponible para numeración española.
curl -X POST https://cloud.netelip.com/apiweb/numbers/buy/listnumbers \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id_country":"198","id_city":"60"}'
- URL: /numbers/buy/listnumbers
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id_country | ID del país disponible para comprar numeración telefónica. Solo disponible para numeración española | 198 |
| id_city | ID de la ciudad disponible para comprar numeración telefónica. Solo ID de ciudades Españolas |
Si la respuesta es "OK", devolverá información sobre la numeración disponible para comprar.
{
"status": "OK",
"data": {
"numbers": [
{
"id": "44639",
"number": "34900525782"
},
{
"id": "26569",
"number": "34900525943"
},
{
"id": "2163",
"number": "34900525836"
},
{
"id": "2221",
"number": "34900525894"
},
{
"id": "46649",
"number": "34900525861"
},
{
"id": "47035",
"number": "34900525583"
},
{
"id": "47039",
"number": "34900525587"
},
{
"id": "8781",
"number": "34900525614"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Listar requisitos para la activación del número a comprar
Sin la documentación válida que se pida no se podrá activar el número que se compre y acabará por ser eliminado de la cuenta.
curl -X POST https://cloud.netelip.com/apiweb/numbers/buy/requirements \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id_country":"198","id_city":"60"}'
- URL: /numbers/buy/requirements
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id_country | ID del país disponible para comprar numeración telefónica | |
| id_city | ID de la ciudad disponible para comprar numeración telefónica |
Si la respuesta es "OK", devolverá información sobre la numeración disponible para comprar.
{
"status": "OK",
"data": {
"requeriments": [
{
"field": "identifyDocument",
"type": "file",
"info": "Please, consult the identification document necessary to attach. Click <a href=//www.netelip.com/documentacion-requerida-por-pais/ target=_blank>here</a>"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Subir documentación para la compra y activación del número teléfono a comprar
Sin la documentación válida que se pida no se podrá activar el número que se compre y acabará por ser eliminado de la cuenta.
curl -X POST https://cloud.netelip.com/apiweb/numbers/buy/uploadrequirements \
-H 'Content-Type: multipart/form-data' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-F 'nationalIdentifyDocument=@"/home/antonio/Escritorio/PRUEBAFAX.pdf"' \
-F 'invoice1Six=@"/home/antonio/Escritorio/PRUEBAFAX.pdf"' \
-F 'especificDocumentRequired=@"/home/antonio/Escritorio/PRUEBAFAX.pdf"' \
-F 'id_country=80' \
-F 'id_city=0b086b11-a718-46bc-b004-c821d7925d0f' \
-F 'quantity=2' \
-F 'name="Antonio"' \
-F 'contactPhone="999999999"' \
-F 'localAddress="c/lafuente,nº2, Málaga, Málaga"'
- URL: /numbers/buy/uploadrequirements
- Método de envío de petición: POST
- Tipo de petición: form-data
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id_country | ID del país disponible para comprar numeración telefónica | |
| id_city | ID de la ciudad disponible para comprar numeración telefónica | |
| dids | ID de los números de teléfono españoles a comprar. Si son varios números a comprar los IDs tienen que ir separados por ",". Solo para compras de números españoles | Compra de un número: 2000, Compra de 2 números: 2000,2002 |
| quantity | Cantidad de números de teléfono a comprar. Solo para compras de números no españoles | |
| name | Nombre del titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo texto | |
| contactPhone | Teléfono de contacto del titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo texto | |
| globalAddress | Dirección del titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo texto | |
| localAddress | Dirección del titular correspondiente al área del número de teléfono. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo texto | |
| identifyDocument | Documento que identifica al titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| identifyDocumentAdministrator | Documento que identifica al administrador (Para cuentas de empresa). Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| documentCompanyUntilAdministrator | Documento que identifica a la empresa (Para cuentas de empresa). Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| nationalIdentifyDocument | Documento nacional al número de teléfono que identifica al titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| invoice1Six | Factura que identifica al titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| invoice1Three | Factura que identifica al titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| invoice2Three | Factura que identifica al titular. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| especificDocumentRequired | Documento específico solicitado por el país. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero | |
| passportDni | Pasaporte o DNI. Este campo hay que añadirlo si lo pide los requisitos del número a comprar. Campo fichero |
Los parámetros a añadir en la petición corresponden a los requisitos de la numeración que se quiere compra, los parámetros a añadir se obtiene del comando "Listar requisitos para la activación del número a comprar".
Si la respuesta es "OK", devolverá información con el ticket de referencia creado para la compra del número de teléfono.
{
"status": "OK",
"data": {
"refTicket": "663c88349c264",
"nDids": "2"
},
"description": "Documentation successfully uploaded"
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Realiza la compra de numeración telefónica
curl -X POST https://cloud.netelip.com/apiweb/numbers/buy/purchase \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id_country":"10","id_city":"93dc0eff-dd36-47ba-ab6f-d302cbf2f95d","quantity":"1","refDidTicket":"663e3320b76d7"}'
- URL: /numbers/buy/purchase
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id_country | ID del país disponible para comprar numeración telefónica | |
| id_city | ID de la ciudad disponible para comprar numeración telefónica | |
| dids | ID de los números de teléfono españoles a comprar. Si son varios números a comprar los IDs tienen que ir separados por ",". Solo para compras de números españoles | Compra de un número: 2000, Compra de 2 números: 2000,2002 |
| quantity | Cantidad de números de teléfono a comprar. Solo para compras de números no españoles | |
| refDidTicket | Id ticket que hace referencia a la documentación subida para la compra | |
| callbackurl | URL a la que se enviará el/los número/s comprados |
Si la respuesta es "OK", devolverá información de la referencia de la compra.
{
"status": "OK",
"purchase": {
"reference": "A24000976553",
"status": "complete"
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
vDrive
Crear vDrive
curl -X GET https://cloud.netelip.com/apiweb/createvdrive \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
Activa y crea el servicio de vDrive para el usuario principal de la cuenta. Será creado con una cuota de 1 GB en modo gratuito.
- URL: /createvdrive
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá información sobre el servicio de vDrive creado.
{
"status": "OK",
"data": {
"vdrive": {
"quota": "1 GB",
"quotauser": "1 GB",
"group": "3422644815",
"mode": "mini",
"expirationdate": null
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Failed to create vdrive user"
}
vPBX Centralita virtual
Crear una vPBX
curl -X POST https://cloud.netelip.com/apiweb/createvpbx \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"nExtensions":1}'
Genera una centralita virtual básica para la cuenta de netelip, solo con el número de extensiones indicadas por el parámetro.
- URL: /createvpbx
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| nExtensions | Número de extensiones a crear | Valores comprendidos entre 1 y 10 |
Si la respuesta es "OK", devolverá información sobre las extensiones creadas.
{
"status": "OK",
"data": {
"maxExtensions": 1,
"totalExtensions": 1,
"extensions": [
{
"number": 100,
"name": "100",
"username": "0009537468100",
"password": "TdSXfHA5ZL",
"server": "vpbx-eu.netelip.com"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "This account already has a vPBX activated"
}
Información de la vPBX
curl -X GET https://cloud.netelip.com/apiweb/vpbx/info \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
Obtiene información de la vPBX de la cuenta.
- URL: /vpbx/info
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá información sobre la vPBX de la cuenta.
{
"status": "OK",
"data": {
"SIPaccount": "3422644815",
"creationdate": "2024-04-24 11:08:58.000000",
"expirationdate": "2024-05-24 11:08:58.000000",
"active": true,
"callRecording": false,
"transcribe": false,
"sentiment": false,
"integrations": false,
"POP": "EU",
"maxExtensions": 1,
"maxVirtualExtensions": 10,
"maxTimegroups": 10,
"maxTimegroupsMultiple": 10,
"maxMusicOnHold": 4,
"maxSounds": 20,
"maxDenyFilter": 10,
"maxAcceptFilter": 10,
"maxQueues": 10,
"maxIvr": 20,
"maxApiDtmf": 0,
"extensions": [
{
"number": 100,
"name": "100",
"username": "3422644815100"
}
],
"virtualExtensions": [],
"IVRs": [],
"queues": [],
"numbers": [],
"denyFilterList": [],
"acceptFilterList": [],
"timegroupsList": []
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "This account already has a vPBX activated"
}
Grabación de llamadas
Activa/desactiva el servicio de grabación de llamadas en vPBX
curl -X POST https://cloud.netelip.com/apiweb/vpbx/activatecallrecording \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"callrecording":"yes"}'
- URL: /vpbx/activatecallrecording
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| callrecording | Activar/desactivar el servicio de grabación de llamada de una vPBX | "yes" o "no", activa o desactiva |
Si la respuesta es "OK", devolverá el estado del servicio de la grabacion de llamadas, siendo true o false.
{
"status": "OK",
"data": {
"callrecording": true
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Listar grabaciones de llamadas
curl -X POST https://cloud.netelip.com/apiweb/vpbx/callrecordings \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"calltype":"out","day":"","month":"2024/05","dst":"","src":"","page":1,"pageresult":10}'
- URL: /vpbx/callrecordings
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| calltype | Tipo de llamada | out, llamadas realizadas; in, llamadas recibidas; extension, llamadas entre extensiones; meetme, sala de conferencias; c2c, click to call |
| day | Día en el que se busca. Si se deja vacío se mostrará todos los días del mes en la búsqueda | |
| month | Mes y año en el que se busca | Formato del texto es: YYYY/MM |
| dst | Destino de la grabación de llamada | |
| src | Origen de la grabacion de llamadas, nº de extensión | Nº de extensión de la vpbx |
| page | Nº de página a mostrar | Número entero mayor de 0 |
| pageresult | Nº de registros a mostrar en cada página | Número entero entre 1 y 100 |
Si la respuesta es "OK", devolverá las grabaciones de llamadas encontradas con los filtros anteriores.
{
"status": "OK",
"data": {
"callrecordings": {
"totalNumRows": 937,
"numRows": 10,
"calls": [
{
"date": "2024-05-15 00:17:57.000000",
"src": "13054404224",
"dst": "0051944474135",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 155,
"file": "2396421854137_0051944474135_1715725077.gsm"
},
{
"date": "2024-05-14 23:58:25.000000",
"src": "34951204938",
"dst": "00526251259837",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 156,
"file": "137_4200526251259837_1715723905.gsm"
},
{
"date": "2024-05-14 23:06:30.000000",
"src": "525541708213",
"dst": "00525540257897",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 83,
"file": "2396421854137_00525540257897_1715720790.gsm"
},
{
"date": "2024-05-14 22:48:27.000000",
"src": "576028912887",
"dst": "00573106544704",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 12,
"file": "2396421854137_00573106544704_1715719707.gsm"
},
{
"date": "2024-05-14 22:42:32.000000",
"src": "541152194179",
"dst": "005491164904878",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 2,
"file": "2396421854137_005491164904878_1715719352.gsm"
},
{
"date": "2024-05-14 22:39:33.000000",
"src": "525541708213",
"dst": "00523310968649",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 26,
"file": "2396421854137_00523310968649_1715719173.gsm"
},
{
"date": "2024-05-14 22:36:29.000000",
"src": "525541708213",
"dst": "00527772932788",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 74,
"file": "2396421854137_00527772932788_1715718989.gsm"
},
{
"date": "2024-05-14 22:17:24.000000",
"src": "576028912887",
"dst": "00525529283768",
"extension": "124",
"usernameExtension": "2396421854124",
"duration": 738,
"file": "124_4200525529283768_1715717844.gsm"
},
{
"date": "2024-05-14 21:26:52.000000",
"src": "541152194179",
"dst": "005492625670155",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 86,
"file": "2396421854137_005492625670155_1715714812.gsm"
},
{
"date": "2024-05-14 21:18:27.000000",
"src": "13054404224",
"dst": "0050255752030",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 355,
"file": "2396421854137_0050255752030_1715714307.gsm"
}
]
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Descargar grabación de llamadas
curl -X POST https://cloud.netelip.com/apiweb/vpbx/callrecording/download \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"calltype":"out","filename":"100_900525900_1715678249.gsm"}'
- URL: /vpbx/callrecording/download
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| calltype | Tipo de llamada | out, llamadas realizadas; in, llamadas recibidas; extension, llamadas entre extensiones; meetme, sala de conferencias; c2c, click to call |
| filename | Nombre del fichero a descargar | El valor se sacará de el campo "file" en la respuesta de "listar grabaciones" |
Si la respuesta es "OK", devolverá información y contenido del fichero codificado en base64.
{
"status": "OK",
"data": {
"file": {
"MIMEType": "audio/mpeg",
"fileExtension": "mp3",
"fileSize": "7.59KB",
"contentBase64": "/+NIxAA2/G4QVOZSBBWFKADwKxNUT45AkDA5LMPhIxgEDNxA5ZchRpcpVizVoWVgDACMkQaNWhgFgSZIhU1caIhU5ZFsY0KgScREzVVMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Transcripción de llamadas
Activa/desactiva el servicio de transcripción de llamadas
curl -X POST https://cloud.netelip.com/apiweb/vpbx/activatetranscription \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"transcription":"yes"}'
- URL: /vpbx/activatetranscription
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| transcription | Activar/desactivar el servicio de transcripción de llamada de una vPBX | "yes" o "no", activa o desactiva |
Si la respuesta es "OK", devolverá el estado del servicio de la transcripción de llamadas, siendo true o false.
{
"status": "OK",
"data": {
"transcription": true
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Listar transcripciones de llamadas
curl -X POST https://cloud.netelip.com/apiweb/vpbx/transcriptions \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"calltype":"out","day":"","month":"2024/05","dst":"","src":"","page":1,"pageresult":1}'
- URL: /vpbx/transcriptions
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| calltype | Tipo de llamada | out, llamadas realizadas; in, llamadas recibidas; extension, llamadas entre extensiones; meetme, sala de conferencias; c2c, click to call |
| day | Día en el que se busca. Si se deja vacío se mostrará todos los días del mes en la búsqueda | |
| month | Mes y año en el que se busca | Formato del texto es: YYYY/MM |
| dst | Destino de la grabación de llamada | |
| src | Origen de la grabacion de llamadas, nº de extensión | Nº de extensión de la vpbx |
| page | Nº de página a mostrar | Número entero mayor de 0 |
| pageresult | Nº de registros a mostrar en cada página | Número entero entre 1 y 100 |
| searchIn | Búsqueda en el texto de la transcripción o en el valor del sentimiento de la llamada. Si se deja vacío se muestra todo | transcription, para buscar en el texto de la transcripción; feeling, para buscar por el valor del sentimiento de llamada |
| condition | Condición de búsqueda en el texto de la transcripción o en el valor del sentimiento de la llamada. Si se deja vacío se muestra todo | Para transcripción el valor es contiene. Para sentimiento, los valores son: >=,<=,= |
| value | Valor de búsqueda en el texto de la transcripción o en el valor del sentimiento de la llamada. Si se deja vacío se muestra todo | Si se busca por sentimiento, value tiene que ser un valor entre 0 y 10 |
Si la respuesta es "OK", devolverá las transcripciones de llamadas encontradas con los filtros anteriores.
{
"status": "OK",
"data": {
"transcriptions": {
"totalNumRows": 745,
"numRows": 1,
"calls": [
{
"date": "2024-05-15 01:48:35.000000",
"src": "5760289128877",
"dst": "00525541708213",
"extension": "137",
"usernameExtension": "2396421854137",
"duration": 146,
"file": "5760289128877_00525541708213_1715730515.gsm",
"statusTranscribe": "complete",
"textTranscription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur convallis scelerisque enim eu egestas. Nullam leo metus, iaculis a sem vitae, dictum convallis mauris. Interdum et malesuada\nNullam vitae tristique magna. Mauris tempor vel est ut accumsan. Pellentesque ornare molestie dolor, sit amet convallis augue viverra eget\n",
"statusFeel": "complete",
"scoreFeeling": 7,
"detailsScoreFeeling": "La conversación parece ser cordial y productiva, con ambas partes intercambiando información relevante para la contratación de un servicio."
}
]
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Sentimiento de llamadas
Activa/desactiva el servicio de sentimiento de llamadas
curl -X POST https://cloud.netelip.com/apiweb/vpbx/activatesentiment \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"sentiment":"yes"}'
- URL: /vpbx/activatesentiment
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| sentiment | Activar/desactivar el servicio de sentimiento de llamada de una vPBX | "yes" o "no", activa o desactiva |
Si la respuesta es "OK", devolverá el estado del servicio de sentimiento de llamadas, siendo true o false.
{
"status": "OK",
"data": {
"sentiment": true
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Extensiones
Listar extensiones
curl -X GET https://cloud.netelip.com/apiweb/vpbx/extensions \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d'
- URL: /vpbx/extensions
- Método de envío de petición: GET
- Tipo de petición: Json
Si la respuesta es "OK", devolverá el listado de extensiones.
{
"status": "OK",
"data": {
"maxExtensions": 5,
"totalExtensions": 2,
"POP": "EU",
"extensions": [
{
"name": "100",
"extension": 100,
"username": "4392639324100"
},
{
"name": "Ext 101",
"extension": 101,
"username": "4392639324101"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Crear extensión
curl -X POST https://cloud.netelip.com/apiweb/vpbx/extension/add \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"numberextension":"","name":"","forward":"voicemail","destinationforward":"info@midominio.com","durationring":"30"}'
- URL: /vpbx/extension/add
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| numberextension | Número de la extensión a crear | Por defecto será el siguiente nº disponible, sino un número de extensión válido |
| name | Nombre de la extensión a crear | Por defecto será "Ext "seguido del nº de extensión, sino el nombre que se inserte |
| callerid | Identificador de llamada con el que saldrá al realizar una llamada saliente | Por defecto "anonymous", sino un identificador de llamada existente válido |
| language | Idioma en que se reproducirá las locuciones predefinidas de la extensión. Por ejemplo "La extensión no está disponible" | Los valores son "es" para español y "en" para inglés. Por defecto "es" |
| forward | Desvío de llamada en caso de no contestar, estar ocupado o no disponible la extensión | Los valores son "voicemail" se dirige la llamada al buzón de voz ó "callforward" desvío de llamada a un numero de teléfono. Si se deja vacío no se activa el desvío de llamada |
| destinationforward | Destino del desvío de llamada de la extensión | Un email para el buzón de voz o un número de teléfono para un desvío de llamada |
| durationring | Duración en segundos que sonará la extensión cuando se le llama. Una vez pasado este tiempo se desviará la llamada (si se ha activado) o finalizará | Nº de segundos entre 1 y 60 |
| record_active | Activación de la grabación de llamadas salientes | "yes", "no". Por defecto "no" |
| record_active_extensions | Activación de la grabación de llamadas entre extensiones | "yes", "no". Por defecto "no" |
| transcribe_active | Activación de la transcripción de llamadas saliente | "yes", "no". Por defecto "no" |
| transcribe_extensions_active | Activación de la transcripción de llamadas entre extensiones | "yes", "no". Por defecto "no" |
| sentiment_active | Activación del sentimiento de llamadas salientes | "yes", "no". Por defecto "no" |
| sentiment_extensions_active | Activación del sentimiento de llamadas entre extensiones | "yes", "no". Por defecto "no" |
| vdrive_integration | Activa la subida de la grabaciones de llamadas salientes en vDrive | "yes", "no". Por defecto "no" |
| vdrive_integration_extensions | Activa la subida de la grabaciones de llamadas entre extensiones en vDrive | "yes", "no". Por defecto "no" |
Si la respuesta es "OK", devolverá informacion sobre la extensión creada.
{
"status": "OK",
"data": {
"maxExtensions": 4,
"totalExtensions": 4,
"extensions": {
"number": 103,
"name": "Ext 103",
"username": "1111111111103",
"password": "GmdJpqT7EV",
"server": "vpbx-eu.netelip.com",
"language": "es",
"callerid": "<anonymous>",
"forward": "voicemail",
"destinationforward": "info@midominio.com",
"durationring": 30,
"record_active": false,
"record_active_extensions": false,
"transcribe_active": false,
"transcribe_extensions_active": false,
"sentiment_active": false,
"sentiment_extensions_active": false
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Obtener información de una extensión
curl -X POST https://cloud.netelip.com/apiweb/vpbx/extension/details \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"numberextension":"100"}'
- URL: /vpbx/extension/details
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| numberextension | Número de la extensión |
Si la respuesta es "OK", devolverá informacion sobre la extensión solicitada.
{
"status": "OK",
"data": {
"extensions": {
"number": "100",
"name": "100",
"username": "111111111100",
"password": "5WNq4mBV4J",
"server": "vpbx-eu.netelip.com",
"language": "es",
"callerid": "<anonymous>",
"durationring": 60,
"record_active": false,
"record_active_extensions": false,
"transcribe_active": false,
"transcribe_extensions_active": false,
"sentiment_active": false,
"sentiment_extensions_active": false
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Editar extensión
curl -X POST https://cloud.netelip.com/apiweb/vpbx/extension/edit \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"numberextension":"100","name":"Juan","forward":"voicemail","destinationforward":"juan@midominio.com","durationring":"30"}'
- URL: /vpbx/extension/edit
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| numberextension | Número de la extensión a editar | |
| name | Nombre de la extensión | Por defecto será "Ext "seguido del nº de extensión, sino el nombre que se inserte |
| callerid | Identificador de llamada con el que saldrá al realizar una llamada saliente | Por defecto "anonymous", sino un identificador de llamada existente válido |
| language | Idioma en que se reproducirá las locuciones predefinidas de la extensión. Por ejemplo "La extensión no está disponible" | Los valores son "es" para español y "en" para inglés. Por defecto "es" |
| forward | Desvío de llamada en caso de no contestar, estar ocupado o no disponible la extensión | Los valores son "voicemail" se dirige la llamada al buzón de voz ó "callforward" desvío de llamada a un numero de teléfono. Si se deja vacío no se activa el desvío de llamada |
| destinationforward | Destino del desvío de llamada de la extensión | Un email para el buzón de voz o un número de teléfono para un desvío de llamada |
| durationring | Duración en segundos que sonará la extensión cuando se le llama. Una vez pasado este tiempo se desviará la llamada (si se ha activado) o finalizará | Nº de segundos entre 1 y 60 |
| record_active | Activación de la grabación de llamadas salientes | "yes", "no". Por defecto "no" |
| record_active_extensions | Activación de la grabación de llamadas entre extensiones | "yes", "no". Por defecto "no" |
| transcribe_active | Activación de la transcripción de llamadas saliente | "yes", "no". Por defecto "no" |
| transcribe_extensions_active | Activación de la transcripción de llamadas entre extensiones | "yes", "no". Por defecto "no" |
| sentiment_active | Activación del sentimiento de llamadas salientes | "yes", "no". Por defecto "no" |
| sentiment_extensions_active | Activación del sentimiento de llamadas entre extensiones | "yes", "no". Por defecto "no" |
| vdrive_integration | Activa la subida de la grabaciones de llamadas salientes en vDrive | "yes", "no". Por defecto "no" |
| vdrive_integration_extensions | Activa la subida de la grabaciones de llamadas entre extensiones en vDrive | "yes", "no". Por defecto "no" |
Si la respuesta es "OK", devolverá informacion sobre la extensión editada.
{
"status": "OK",
"data": {
"extensions": {
"number": "100",
"name": "Juan",
"username": "1111111111100",
"password": "5WNq4mBV4J",
"server": "vpbx-eu.netelip.com",
"language": "es",
"callerid": "<anonymous>",
"forward": "voicemail",
"destinationforward": "juan@midominio.com",
"durationring": 30,
"record_active": false,
"record_active_extensions": false,
"transcribe_active": false,
"transcribe_extensions_active": false,
"sentiment_active": false,
"sentiment_extensions_active": false
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Eliminar extensión
curl -X POST https://cloud.netelip.com/apiweb/vpbx/extension/delete \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"numberextension":"100"}'
- URL: /vpbx/extension/delete
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| numberextension | Número de la extensión |
Si la respuesta es "OK", devolverá información el número de extensión eliminada.
{
"status": "OK",
"data": {
"extension": "100"
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Cambiar contraseña SIP
curl -X POST https://cloud.netelip.com/apiweb/vpbx/extension/refreshpass \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"numberextension":"100"}'
- URL: /vpbx/extension/refreshpass
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| numberextension | Número de la extensión |
Si la respuesta es "OK", devolverá informacion sobre la extensión editada.
{
"status": "OK",
"data": {
"extensions": {
"number": "100",
"name": "prueba100",
"username": "1111111111100",
"password": "d7spbMBrwX",
"server": "vpbx-eu.netelip.com"
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Cambiar identificador de llamada
curl -X POST https://cloud.netelip.com/apiweb/vpbx/extension/changecallerid \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"numberextension":"104","callerid":"34951204950"}'
- URL: /vpbx/extension/changecallerid
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| numberextension | Número de la extensión | |
| callerid | Identificador de llamada a mostrar | Número de teléfono válido que se puede obtener de la petición "Mostrar identificadores de llamada" o "anonymous" |
Si la respuesta es "OK", devolverá información sobre la extensión e identificador de llamada modificado.
{
"status": "OK",
"data": {
"extensions": {
"number": "104",
"callerid": "34951204950"
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Llamadas
Listar llamadas
curl -X POST https://cloud.netelip.com/apiweb/vpbx/calls \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"typesearch":"","user":"","dst":"","calltype":"out","destsrc":"","startdate":"2024-03-01","enddate":"2024-03-30", "page":1,"pageresult":2}'
curl -X POST https://cloud.netelip.com/apiweb/vpbx/calls \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"typesearch":"","user":"","dst":"","calltype":"in","destsrc":"","startdate":"2024-03-01","enddate":"2024-03-30", "page":1,"pageresult":2}'
curl -X POST https://cloud.netelip.com/apiweb/vpbx/calls \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"typesearch":"","user":"","dst":"","calltype":"extension","destsrc":"","startdate":"2024-03-01","enddate":"2024-03-30", "page":1,"pageresult":2}'
- URL: /vpbx/calls
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| typesearch | Tipo de búsqueda. Solo disponible para llamadas recibidas | number, para buscar por número de teléfono enrutado a vPBX; ext, extensión en vPBX |
| user | username de la extensión. Si se deja vacío mostrará todas las extensiones | Por ejemplo: El usuario de la extensión 100, 1111111111100 |
| dst | Nº de teléfono enrutado a vPBX. Solo disponible para llamadas recibidas. Si se deja vacío mostrará todas los números de teléfono | |
| calltype | Tipo de llamada | out, llamadas realizadas; in, llamadas recibidas; extension, llamadas entre extensiones |
| destsrc | Nº de teléfono de origen o destino, según si el tipo de llamada es recibida o realizada. Si es llamada realizada filtrará por el número de teléfono de destino, si es llamada recibida o entre extensiones, por el origen de la llamada | |
| startdate | Fecha de inicio | Fecha válida con formato YYYY-MM-DD |
| enddate | Fecha final | Fecha válida con formato YYYY-MM-DD |
| page | Nº de página a mostrar | Número entero mayor de 0 |
| pageresult | Nº de registros a mostrar en cada página | Número entero entre 1 y 100 |
Si la respuesta es "OK", devolverá las llamadas encontradas con los filtros anteriores.
{
"status": "OK",
"data": {
"totalNumRows": 4710,
"numRows": 2,
"calls": [
{
"starttime": "2024-03-30 20:49:27.000000",
"src": "0050769493318",
"dst": "960645927",
"dstname": "España",
"extension": "Ext 0050769493318",
"terminatecause": "ANSWER",
"sessiontime": 8,
"sessionbill": 0.0013
},
{
"starttime": "2024-03-30 19:29:07.000000",
"src": "00525510910232",
"dst": "960645927",
"dstname": "España",
"extension": "Ext 00525510910232",
"terminatecause": "ANSWER",
"sessiontime": 361,
"sessionbill": 0.0602
}
]
}
}
{
"status": "OK",
"data": {
"totalNumRows": 2822,
"numRows": 2,
"calls": [
{
"id": "1711828139.17388",
"starttime": "2024-03-30 20:48:59.000000",
"src": "0050769493318",
"dst": "5078336937",
"dstname": "",
"attendedby": "Cola de llamadas TP-CRC: Ext 960645927",
"terminatecause": "ANSWERED",
"sessiontime": "36",
"sessionbill": 0
},
{
"id": "1711823323.11912",
"starttime": "2024-03-30 19:28:43.000000",
"src": "00525510910232",
"dst": "525541708213",
"dstname": "",
"attendedby": "Cola de llamadas TP-Ventas-LATAM: Ext 960645927",
"terminatecause": "ANSWERED",
"sessiontime": "385",
"sessionbill": 0
}
]
}
}
{
"status": "OK",
"data": {
"totalNumRows": 373,
"numRows": 2,
"calls": [
{
"starttime": "2024-03-28 14:45:49.000000",
"src": "34951200000",
"dst": "120",
"dstname": "",
"terminatecause": "ANSWERED",
"sessiontime": "77",
"sessionbill": 0
},
{
"starttime": "2024-03-28 14:44:43.000000",
"src": "34951200000",
"dst": "135",
"dstname": "",
"terminatecause": "NO ANSWER",
"sessiontime": "0",
"sessionbill": 0
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Detalles de llamada recibida en una cola de llamadas
curl -X POST https://cloud.netelip.com/apiweb/vpbx/call/details \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"id":"1714739898.282246"}'
- URL: /call/details
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| id | ID de la llamada | El valor del ID de llamada recibida se obtendrá de listar las llamadas recibidas de vPBX |
Si la respuesta es "OK", devolverá información sobre la llamada recibida.
{
"status": "OK",
"data": {
"numRows": 3,
"id": "1714739898.282246",
"call": [
{
"id": "6634dac7ab05d629ac1b3ae6",
"starttime": "2024-05-03 14:38:31.000000",
"destination": "NONE",
"event": "Call queue entry",
"info": "Origin 611111111"
},
{
"id": "6634dadbab05d629ac1b3aff",
"starttime": "2024-05-03 14:38:51.000000",
"destination": "<129> (COL) Leonardo",
"event": "Caller connected to agent",
"info": "Duration of caller on hold: 20 seconds|Duracion del ring: 19 seconds"
},
{
"id": "6634db0bab05d629ac1b3b39",
"starttime": "2024-05-03 14:39:39.000000",
"destination": "<129> (COL) Leonardo",
"event": "The caller connects to the agent, and the call ends for the caller",
"info": "Duration of caller on hold: 20 seconds|Duracion de la llamada: 48 seconds|Starting position in queue: 1"
}
]
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Numeración
Información de enrutamiento
curl -X POST https://cloud.netelip.com/apiweb/vpbx/number \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"number":"13052858624"}'
- URL: /vpbx/number
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| number | Número de teléfono |
Si la respuesta es "OK", devolverá información sobre el enrutamiento del número de teléfono solicitado.
{
"status": "OK",
"data": {
"number": {
"did": 34951208080,
"language": "es",
"composedCallerId": false,
"restrictedCallerId": false,
"sameDestCallerId": true,
"callRecording": true,
"callRecordingVdrive": true,
"transcribe": false,
"sentiment": false,
"filter": 3832,
"routing": {
"app": "extension",
"destination": "103"
}
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}
Editar enrutamiento
curl -X POST https://cloud.netelip.com/apiweb/vpbx/number/edit \
-H 'Content-Type: application/json' \
-H 'api-id: c4aff379c8c19625f43b7885dc8612a8aad06d89d403044355e4ca06e425100d' \
-d '{"number":"13052858624","language":"es","composedCallerId":"1","restrictedCallerId":"1","sameDestCallerId":"0","callRecording":"1","callRecordingVdrive":"0","transcribe":"1","sentiment":"1","filter":"20446","routingApp":"extension","routingDestination":"100"}'
- URL: /vpbx/number/edit
- Método de envío de petición: POST
- Tipo de petición: Json
Parámetros de la petición:
| Parámetro | Descripción | Valor/es |
|---|---|---|
| number | Número de teléfono | |
| language | Idioma para las locuciones por defecto de la vPBX | es, español; en, inglés |
| composedCallerId | Activa/desactiva el identificador de llamada compuesto. Solo se puede activar cuando no se ha activado la opción identificador de llamada es el numero llamado | 1,activa; 0, desactiva |
| restrictedCallerId | Activa/desactiva el identificador de llamada restringido. Solo se puede activar cuando no se ha activado la opción identificador de llamada es el numero llamado | 1,activa; 0, desactiva |
| sameDestCallerId | Activa/desactiva el identificador de llamada es el numero llamado. Solo se puede activar cuando no se ha activado la opción identificador de llamada compuesto ni identificador de llamada restringido | 1,activa; 0, desactiva |
| callRecording | Activa/desactiva la subida de la grabación de llamadas entrantes en vDrive | 1,activa; 0, desactiva |
| transcribe | Activa/desactiva la transcripción de las llamadas entrantes. Es necesario tener activo el servicio de transcripción de llamadas y grabación de llamadas | 1,activa; 0, desactiva |
| sentiment | Activa/desactiva el sentimiento de la llamada entrante | 1,activa; 0, desactiva |
| filter | Establece un filtro de llamadas a las llamadas entrantes. Si no se quiere filtro, se deja vacío el campo | Id de filtro de llamadas |
| routingApp | Aplicación a utilizar en las llamadas al número de teléfono | extension, la llamada se enruta a una extensión; virtualExtension, la llamada se enruta a una extensión virtual; phonenumber, la llamada se desvía a un número de teléfono; sound, reproduce un audio al llamar; queue, la llamada se dirige a una cola de llamadas; ivr, la llamada se dirige a un IVR; dtmf, la llamada se dirige a una aplicación API DTMF; conferenceroom, la llamada se dirige a la sala de conferencias; hangup, se cuelga la llamada |
| routingDestination | ID de destino correspondiente a la aplicación anterior | Por ejemplo: hacia la extensión 100, el valor sería 100 |
Si la respuesta es "OK", devolverá la confirmación de la actualización junto a la información del enrutamiento número de teléfono en vPBX.
{
"status": "OK",
"data": {
"number": {
"did": "13052858624",
"language": "es",
"composedCallerId": true,
"restrictedCallerId": true,
"sameDestCallerId": false,
"callRecording": true,
"callRecordingVdrive": false,
"transcribe": true,
"sentiment": true,
"filter": 20446,
"routing": {
"app": "extension",
"destination": "100"
}
}
}
}
Si la respuesta es "ERROR", devolverá la descripción del error.
{
"status": "ERROR",
"description": "Unauthorized ID"
}