NAV
cURL Respuestas JSON

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:

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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

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'

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"}'

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"}'

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"}'

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"'

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"}'

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.

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.

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.

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"}'

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}'

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"}'

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"}'

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}'

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"}'

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'

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"}'

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"}'

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"}'

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"}'

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"}'

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"}'

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}'

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"}'

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"}'

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"}'

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"
}