Saltar a: navegación, buscar

Diferencia entre revisiones de «API de registros VoIP»

Línea 30: Línea 30:
 
===Respuesta del servicio API===
 
===Respuesta del servicio API===
  
El servicio web retorna todas las respuestas en formato [http://es.wikipedia.org/wiki/Extensible_Markup_Language XML]. Todas las respuestas están encerradas en la raíz 'registros', y contiene siempre un campo 'error' que será 0 si el comando o petición enviado al servidor se ejecutó con éxito, o 1 si hubo algún error, en cuyo caso habrá también un campo 'msgerr' que explica dicho error.
+
El servicio web retorna todas las respuestas en formato [https://es.wikipedia.org/wiki/Extensible_Markup_Language XML]. Todas las respuestas están encerradas en la raíz 'registros', y contiene siempre un campo 'error' que será 0 si el comando o petición enviado al servidor se ejecutó con éxito, o 1 si hubo algún error, en cuyo caso habrá también un campo 'msgerr' que explica dicho error.
  
 
Por ejemplo, una respuesta afirmativa sería:
 
Por ejemplo, una respuesta afirmativa sería:

Revisión del 11:46 11 abr 2017


¿Qué es la API de registros VoIP?

Descripción de API

Este servicio web nos permite listar los registros VoIP de un número virtual, una extensión de centralita o un siptrunk.

Forma de uso

Lista de registros

Devuelve la lista de registros VoIP (en XML).

La URL debe ser:

https://scgi.duocom.es/cgi-bin/telefacil2/apiregistrosvoip?usuario_voip=xxxxxxxxx&password_voip=xxxxxxxx

donde:

  • 'usuario_voip' es el número de usuario VoIP (ejemplos: 902009000, 902009009.1234).
  • 'password_voip' es la contraseña del usuario VoIP , establecida en el momento de activarlo.

Respuesta del servicio API

El servicio web retorna todas las respuestas en formato XML. Todas las respuestas están encerradas en la raíz 'registros', y contiene siempre un campo 'error' que será 0 si el comando o petición enviado al servidor se ejecutó con éxito, o 1 si hubo algún error, en cuyo caso habrá también un campo 'msgerr' que explica dicho error.

Por ejemplo, una respuesta afirmativa sería:

HTTP/1.1 200 OK
Date: Mon, 20 Feb 2012 11:43:37 GMT
Server: Apache
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8" ?>

<registros>
  <error>0</error>
</registros>

Una respuesta de error sería:

HTTP/1.1 200 OK
Date: Mon, 20 Feb 2012 11:43:37 GMT
Server: Apache
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8" ?>

<registros>
  <error>1</error>
  <msgerr>Usuario incorrecto.</msgerr>
</registros>

Ejemplos de uso API

Ejemplo de llamada al servicio web en PHP + CURL

Tenga presente que, aunque la aplicación web es accesible mediante una URL, no debe poner nunca enlaces a esta aplicación directamente en el código fuente de sus páginas web, ya que sus visitantes podrían descubrir datos sensibles como su número de usuario y su contraseña simplemente mirando el código HTML.

La aplicación web debe ser llamada siempre desde el servidor, usando para ello alguna de las librerías que permite llamadas a servicios HTTPS.

He aquí un ejemplo en PHP usando cURL, cortesía de tuayudainformatica.com:

<?php
  $usuario = '911010009';
  $pass = 'miClaveSecreta';

  $curl = curl_init("https://scgi.duocom.es/cgi-bin/telefacil2/apiregistrosvoip?
                     usuario_voip=${usuario}&password_voip=${pass}"); // LLAMADA DE LA URL
  curl_setopt($curl, CURLOPT_HEADER, false);  // PARA EVITAR DEVOLUCION DE CABEZERAS HTTP
  curl_setopt($curl, CURLOPT_TIMEOUT, 5);     // TIEMPO DE ESPERA   
  $output = curl_exec($curl);                 // EJECUTAMOS LA LLAMADA
  curl_close($curl);
  $output = substr($output, 0, 1);            // XML
?>

Ejemplo de listado de registros en XML

<?xml version="1.0" encoding="UTF-8" ?>

<registros>
 <error>0</error>
 <registro>
  <pos>1</pos>
  <estado>valido</estado>
  <nombre>"902955955.1234"</nombre>
  <user_agent>Cisco/SPA504G-7.5.5 mac=ddff596ea515</user_agent>
  <ip>83.126.132.62</ip>
  <pais>ES</pais>
  <ip_privada>172.26.0.101</ip_privada>
  <puerto_cliente>16044</puerto_cliente>
  <puerto_servidor>TCP</puerto_servidor>
  <expira>Lun 26/09/2016 15:49:25</expira>
 </registro>
 <registro>
  <pos>2</pos>
  <estado>valido</estado>
  <nombre>"902955955.1234"</nombre>
  <user_agent>Linksys/SPA942-6.1.5(a) mac=000aaaabbbaa</user_agent>
  <ip>185.55.126.82</ip>
  <pais>ES</pais>
  <ip_privada>192.168.1.101</ip_privada>
  <puerto_cliente>16400</puerto_cliente>
  <puerto_servidor>16080 (m2sip)</puerto_servidor>
  <expira>Lun 26/09/2016 15:15:26</expira>
 </registro>
 <registro>
  <pos>3</pos>
  <estado>expirado</estado>
  <nombre></nombre>
  <user_agent>Voip Duocom Europe SL. Android 2.0.1 mac=0123456789ab red=wifi Nexus 6 6.0.1</user_agent>
  <ip>83.126.132.62</ip>
  <pais>ES</pais>
  <ip_privada>192.168.1.122</ip_privada>
  <puerto_cliente>46336</puerto_cliente>
  <puerto_servidor>TLS</puerto_servidor>
  <expira>Jue 22/09/2016 21:17:32</expira>
 </registro>
 <registro>
  <pos>4</pos>
  <estado>expirado</estado>
  <nombre></nombre>
  <user_agent>Voip Duocom Europe SL. Windows32 2.0.0 mac=ba9876543210 red=eth Windows 7 (build 7601, Service</user_agent>
  <ip>83.126.132.62</ip>
  <pais>ES</pais>
  <ip_privada>10.0.2.15</ip_privada>
  <puerto_cliente>48046</puerto_cliente>
  <puerto_servidor>TLS</puerto_servidor>
  <expira>Jue 04/08/2016 13:41:36</expira>
 </registro>
 <registro>
 <pos>5</pos>
  <estado>expirado</estado>
  <nombre>"902955955.1234"</nombre>
  <user_agent>Cisco/SPA504G-7.5.5 mac=ddff596ea515</user_agent>
  <ip>82.33.222.153</ip>
  <pais>ES</pais>
  <ip_privada>172.26.0.101</ip_privada>
  <puerto_cliente>16046</puerto_cliente>
  <puerto_servidor>TCP</puerto_servidor>
  <expira>Mie 22/06/2016 16:08:11</expira>
 </registro>
</registros>


Indice

Página principal >> Desarrolladores >> API de registros VoIP.