Documentación API Web
Versión 0.01
Introducción
La API Web de los equipos Lyric VoIP es un método para enviar SMS de forma remota. El equipo incorpora un
servidor Web que recibe consultas tipo HTTP GET con la sintaxis descrita más abajo, donde se especifican los
mensajes a enviar. El servidor responde en formato JSON [1] el resultado de la consulta realizada.
JSON es un estándar abierto y ligero basado en texto para intercambio de datos. Consiste en pares ordenados
de datos, por ejemplo:
{ “nombre”: “Juan”, “apellido”: “Tapia”, “edad”: 22 }
La mayor parte de los lenguajes de programación poseen librerías para trabajar adecuadamente con datos con
formato JSON.
Esta documentación incluye, a modo de ejemplo, una aplicación para envío de SMS escrita en Python [2], la
cual lee desde archivos con formato CSV (comma-separated values) el destino y contenido de los mensajes
que se desean enviar.
Comandos API Web
api_queue_sms:
Función: Encola el mensaje de texto indicado en los parámetros de la consulta y devuelve un
ticket asociado al SMS, que sirve para consultar posteriormente el estado de envío del
mensaje
Parámetros: username: Nombre de usuario para autentificación a servicio API SMS
password: Contraseña para autentificación a servicio SMS
content: Contenido del mensaje de texto en formato URL
destination: Número del destino del SMS
api_version: Versión de la API Web soportada por el equipo
Retorno: El resultado (con formato JSON) de la función puede contener los siguientes elementos:
success: 1: Indica que el mensaje fue encolado con éxito
0: Ocurrió algún error
message_id: Ticket del mensaje encolado
error_code: Código del error que ocurrió. Ver sección de códigos de errores
Ejemplo: Consulta:
http://192.168.200.10/cgi-bin/exec?
cmd=api_queue_sms&username=lyric_api&password=lyric_api&content=Contenido+del
+SMS&destination=55555555&api_version=0.01
Respuesta:
{ "success": true, "message_id": 5 }
api_get_status:
Función: Obtiene el estado del mensaje con el ticket indicado en los parámetros
Parámetros: username: Nombre de usuario para autentificación a servicio API SMS
password: Contraseña para autentificación a servicio SMS
message_id: Ticket del mensaje que se desea consultar
api_version: Versión de la API Web soportada por el equipo
Retorno: El resultado (con formato JSON) de la función puede contener los siguientes
elementos:
success: 1: Indica que el estado del mensaje fue consultado con éxito
0: Ocurrió algún error
message_status: 0: Nuevo
1: Procesando
2: Enviado
3: Fallo
error_code: Código del error que ocurrió. Ver sección de códigos de errores
Ejemplo: Consulta:
http://192.168.200.10/cgi-bin/exec?
cmd=api_get_status&username=lyric_api&password=lyric_api&message_id=5&api_ver
sion=0.01
Respuesta:
{ "success": true, "message_status": 0 }
api_get_version:
Función: Devuelve la versión de la API Web que soporta el equipo
Retorno: El resultado (con formato JSON) de la función contiene el siguiente elemento:
api_version: Versión de la API Web
Ejemplo: Consulta:
http://192.168.200.10/cgi-bin/exec?cmd=api_get_version
Respuesta:
{ "api_version": "0.01" }
Códigos de Errores
CÓDIGO DESCRIPCIÓN
DatabaseProblem No se pudo acceder a la base de datos del equipo
APIDisabled API Web se encuentra deshabilitada
DestinationEmpty No se especificó destino del SMS
ContentEmpty Mensaje no tiene contenido
UsernameEmpty No se especificó el nombre de usuario de la API
PasswordEmpty No se especificó la contraseña de la API
APIVersionEmpty No se especificó la versión de la API
BadDestination Destino debe ser numérico
BadUserPassword Nombre de usuario o contraseña incorrecto
BadApiVersion Versión incorrecta de la API
UnixSocketProblem Falló conexión a socket Unix
AppAnswerProblem Aplicación no responde
AppNotificationProblem Respuesta de aplicación errónea
MessageIdEmpty No se especificó ticket del mensaje
DatabaseProblemORIdNotFound No se pudo acceder a base de datos o no existe ticket
Referencias
http://www.json.org/
http://www.python.org/ftp/python/2.7/python-2.7.msi (para Windows)