Introducción
La API SMS programable de Vox le permite enviar y recibir mensajes SMS desde y hacia cualquier país del mundo a través de una sencilla API REST.
Inicio
Para poder utilizar la API de Vox, necesita tener una cuenta con Vox, por favor contacte con su representante de Vox.
Autenticación
La API de Vox utiliza el nombre de usuario y la contraseña para autenticar las solicitudes. Puede crear, recuperar y gestionar sus credenciales API poniéndose en contacto con su gestor de cuenta de Vox.
Cada llamada API requiere sus credenciales API como parte del cuerpo JSON:
username: string
password: string
Punto final de la API de SMS
La API de Vox utiliza verbos HTTP para saber si desea crear (POST) un objeto.
El formato de la solicitud debe ser JSON:
POST https://:8002/api
Referencia API
Esta sección proporciona información detallada sobre la solicitud y los parámetros de respuesta, los códigos de estado de la solicitud y los estados de entrega de los mensajes devueltos en los informes de entrega.
Parámetros requeridos
Parámetro | Tipo | Descripción |
---|---|---|
command | string | Tipo de solicitud. Valores posibles: «submit», «query», «mo». Para enviar un mensaje a través de HTTP, especifique command=submit |
ani | string | ID del remitente, puede ser numérico o alfanumérico. Alfanumérico hasta 32 símbolos. Las normativas de destino pueden provocar limitaciones adicionales. |
dnis | string | Número de destino. Debe enviarse en formato internacional E.164 (se permiten hasta 15 dígitos). |
message | string | Representa el contenido del mensaje SMS. |
dataCoding | integer | 0: Alfabeto por defecto SMSC (SMPP 3.4)/específico CM (SMPP 5.0) 1: IA5 (CCITT T.50)/ASCII (ANSI X3.4) 3: Latín 1 (ISO-8859-1) 6: cirílico (ISO-8859-5) 7: Latín/hebreo (ISO-8859-8) 8: UCS2 (ISO/IEC-10646) 10: ISO-2022-JP (Códigos de música) 14: KS C 5601 |
longMessageMode | string | Tipo de procesamiento de mensajes largos. Se permiten los siguientes valores: cut (configuración por defecto) – acorta el mensaje dejando sólo los primeros 140 bytes para ser sentsingle_id_split – divide el mensaje pero devuelve el ID del mensaje común para todos los segmentos. |
Si el mensaje contiene caracteres fuera del rango de las tablas GSM Standard y Extended, la codificación de caracteres se establecerá en 8 – UCS2 (dataCoding=8 como parámetro de consulta).
Parámetros de respuesta
Parámetro | Obligatorio | Descripción |
---|---|---|
message_id | sí | Cadena de ID del mensaje SMS. |
dnis | sí | Si la solicitud contiene más de un número de destino – dnis. |
Nota: La respuesta se devuelve en formato de datos JSON.
Parámetros de consulta de devolución de llamada
Estos son los parámetros de la API Callback con los que puede recuperar información sobre un SMS enviado. Se admiten los métodos GET y POST. Para configurar y dar formato a los parámetros de la API Callback, póngase en contacto con el gestor de su cuenta para que lo configure en su cuenta.
Nombre del parámetro | Descripción |
---|---|
message_id | ID del mensaje |
delivery_time | Hora a la que se generó el informe de entrega |
delivery_status | Estado de la entrega |
ani | Número de receptor |
mcc | Código de país del móvil |
mnc | Código de red móvil |
rate | Coste del mensaje |
result_code | Código de error |
country_name | Nombre del país |
Informes de entrega
Los informes de entrega relacionados con los mensajes SMS enviados están disponibles a través de devoluciones de llamada a una URL de devolución de llamada dedicada. La URL de devolución de llamada es individual para cada cliente de Vox – y puede ser configurada con su Gestor de Cuenta Vox.
Los informes de entrega también pueden consultarse y enviarse como respuesta de la API.
La solicitud GET se utiliza para consultar el informe de entrega y deben incluirse los siguientes parámetros:
Nombre del parámetro | Descripción |
---|---|
messageId | ID del mensaje |
username | Inicio de sesión |
password | Contraseña |
command | Tipo de solicitud. Debe ajustarse al valor «query». |
Todos los parámetros son obligatorios.
Estado de entrega del mensaje
Estos son los estados devueltos en los informes de entrega:
Estado | Descripción |
---|---|
ENROUTE | El mensaje se encuentra en fase de enrutamiento. El estado puede ser devuelto al cliente si el mensaje está en estado ENVIADO |
DELIVRD | El mensaje ha sido entregado al abonado |
UNDELIV | No se puede entregar el mensaje |
ACCEPTD | El mensaje es aceptado por el SMSC |
REJECTD | El mensaje ha sido rechazado por el transportista |
EXPIRED | Periodo de almacenamiento de mensajes expirado |
DELETED | El mensaje fue borrado |
UNKNOWN | Estado de mensaje desconocido. La información sobre los estados se almacena en la base de datos en memoria durante 24 horas (por defecto). Por lo tanto, este estado puede ser devuelto si el cliente ha solicitado un estado bastante tarde y ya se ha eliminado de la memoria. |
IM_EXPD | No se ha recibido el informe de entrega del proveedor de MI dentro del tiempo de espera im_ttl |
Uso de la API
Esta sección muestra cómo utilizar la API SMS de Vox.
Enviar SMS
Este ejemplo muestra cómo enviar un SMS diciendo «¡Hola, soy Vox!» con la codificación de caracteres por defecto
al destinatario +381 63 XXXXXXX:
curl --location 'https://XXXXXXXXX:8002/api' \
--header 'Content-Type: application/json' \
--data '{
"username":"xxxxxx",
"password":"yyyyy",
"command":"submit",
"ani":"Vox SMS",
"dnis":"38163XXXXXXX",
"message":"Hello, this is Vox!"
}'
Respuesta:
{
"message_id": "9be2ea-32028-e8cb8-11552-36b84-24825"
}
Enviar SMS masivos
Este ejemplo muestra cómo enviar un SMS A GRANEL diciendo «¡Hola, soy Vox 123!» con la codificación de caracteres predeterminada a varios destinatarios:
curl --location 'https://XXXXXXXXX:8002/api' \
--header 'Content-Type: application/json' \
--data '{
"username":"xxxxxx",
"password":"yyyyy",
"command":"submit",
"ani":"Vox SMS",
"dnis":"38163XXXXXXX, 38164YYYYYYY",
"message":"Hello, this is Vox!"
}'
Respuesta:
[{"dnis":"38163XXXXXXX ","message_id":"5b4c46a8-8dc9-34b4-f55f-3bef56819305"},
{"dnis":"38164YYYYYYY ","message_id":"5b4c46a8-46bc-7uu6-4a16-7d4e5a0d14af"}]
Codificación del mensaje
Este ejemplo muestra cómo enviar un SMS con caracteres Unicode:
curl --location 'https://XXXXXXXXX:8002/api' \
--header 'Content-Type: application/json' \
--data '{
"username":"xxxxxx",
"password":"yyyyy",
"command":"submit",
"ani":"Vox SMS",
"dnis":"38163XXXXXXX",
"dataCoding":"8",
"message":"Hello, this is Vox ❤️ !"
}'
Enviar mensajes largos
Este ejemplo muestra cómo enviar un SMS con un texto que supera el número máximo de caracteres permitido (160 para UTF-8, 70 para Unicode).
curl --location 'https://XXXXXXXXX:8002/api' \
--header 'Content-Type: application/json' \
--data '{
"username":"xxxxxx",
"password":"yyyyy",
"command":"submit",
"ani":"Vox SMS",
"dnis":"38163XXXXXXX",
"longMessageMode":"single_id_split",
"message":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
}'
Respuesta:
Response:
{
"message_id": "1175d2-11575-48a3a-03818-eedf2-16692"
}
Protocolo SMPP
Esta sección proporciona los detalles técnicos necesarios para que los arquitectos y desarrolladores de software puedan crear clientes Short Message Peer-to-Peer (SMPP) que se integren con la interfaz SMPP de Vox. Estos detalles incluyen los requisitos de integración, los métodos admitidos, los tipos de enlace, los requisitos de autenticación, los esquemas de codificación de datos, los temporizadores, los informes de entrega, los códigos de error y otros detalles de los mensajes.
Importante: Vox es compatible con la versión 3.4
Introducción
El SMPP es un protocolo abierto y estándar de la industria (véase la definición en Wikipedia) diseñado para simplificar las interconexiones entre varias entidades. El SMPP también permite enviar y recibir mensajes cortos de texto (SMS) a través de Internet.
Conectarse a Vox utilizando el protocolo SMPP requiere un conocimiento profundo de SMPP. Para saber más antes de seguir leyendo sobre las particularidades de la integración SMPP de Vox, visite smpp.org. Allí también podrá encontrar documentos de referencia para la v3.4 de la especificación (las versiones que soporta Vox).
Configuración SMPP requerida
En cada ESME debe configurarse lo siguiente:
Característica | Descripción |
---|---|
Dirección de la pasarela SMPP | La dirección del Vox (servidor) al que se conectará el cliente. |
Puerto | El puerto al que se conectará el cliente y en el que escuchará Vox. |
Nombre de usuario | Identifica al cliente que solicita vincularse a Vox. Sirve como nombre de usuario. Tipo: Cadena C-Octet Tamaño máximo: 16 octetos. |
Contraseña | Autentica al cliente que solicita enlazarse a Vox Tipo Cadena C-Octet Tamaño máximo: 9 octetos |
PDU compatibles
Vox soporta los siguientes comandos de unidad de datos de protocolo (PDU):
ESME to Vox | Vox to ESME |
---|---|
bind_transceiver | bind_transceiver_resp |
bind_transmitter | bind_transmitter_resp |
bind_receiver | bind_receiver_resp |
submit_sm | submit_sm_resp |
enquire_link | enquire_link_resp |
enquire_link_resp | enquire_link |
deliver_sm_resp | deliver_sm |
unbind | unbind_resp |
unbind_resp | unbind |
Tipos de sesión admitidos
Vox permite tres tipos de sesiones iniciadas por ESME:
- Transmisor (TX)
- Receptor (RX)
- Transceptor (TRX)
Los clientes pueden habilitar hasta los tres tipos de sesión, aunque se prefieren los enlaces TRX persistentes. Póngase en contacto con su representante de Vox para habilitar y configurar estas sesiones.
Información de conexión
Dirección de la pasarela SMPP: sms.voxcarrier.com
Puerto: 2876
Dirección IP: 163.172.233.79
Autenticación
Cada ESME que solicite enlazarse a la Vox debe proporcionar un nombre de usuario para identificarse y una contraseña para autenticarse.
Obtenga estas credenciales rellenando el formulario de interconexión SMPP de Vox. Su representante de Vox le comunicará la última versión. Una vez creada su cuenta, le proporcionarán su nombre de usuario (ID del sistema) y su contraseña.
Las contraseñas SMPP no pueden ser recuperadas para usted por Vox.
Restablecimiento de la contraseña – Puede restablecer la contraseña del SMPP pidiendo a su representante de Vox que lo haga por usted.
Requisitos operativos
Los clientes deben seguir estos requisitos operativos cuando se conecten a Vox a través de SMPP, con el fin de que Vox proporcione el máximo nivel de calidad, seguridad y conectividad.
Los clientes deben:
- Disponga de un número suficiente de enlaces para soportar el 100% del tráfico de clientes.
- Asegúrese de que el campo con la dirección de la pasarela SMPP es configurable. Ocasionalmente Vox puede cambiar la dirección de la pasarela SMPP.
- Disponga de una lógica de conmutación por error automática para redirigir el tráfico a los enlaces activos disponibles en cada momento.
- Implemente la encriptación Transport Layer Security (TLS) 1.2 para todas las comunicaciones SMPP.
Enviar SMS
- Establecer una sesión mediante una solicitud bind
Tras introducir los parámetros de conectividad proporcionados por Vox (IP, puerto, nombre de usuario, contraseña) en el cliente SMPP, se establecerá una conexión entre su sistema y Vox mediante una de las operaciones bind descritas anteriormente.
Si desea poder enviar SMS salientes y recibir los DLR, necesita una sesión de transceptor o una sesión de emisor y otra de receptor.
Dispondrá del mismo ancho de banda independientemente del número de sesiones que establezca.
- Acuso de recibido de la solicitud de enlace
Después de que Vox reciba una solicitud bind con los parámetros de autenticación correctos, se emitirá un bind_resp y la sesión estará disponible para la comunicación.
- Enviar un mensaje
Los mensajes se envían a Vox utilizando la operación submit_sm. La operación submit_sm y la PDU se describen detalladamente en la documentación de SMPP 3.4.
- Acuso de recibido del mensaje enviado
Después de que Vox reciba una solicitud submit_sm correcta, se emitirá un submit_sm_resp. El submit_sm_resp contiene el ID del mensaje en el parámetro message_id, que es un identificador único para cada mensaje. Puede variar en formato y longitud.
El envío del mensaje a Vox se finaliza con la emisión del submit_sm_resp. Los mensajes se almacenan en el SMSC de Vox y serán entregados al receptor. Si el primer intento de entrega no tiene éxito – por ejemplo, el teléfono móvil receptor está apagado – se realizarán nuevos intentos de entrega del mensaje. El mensaje se conservará en el SMSC de Vox hasta 48 horas, transcurridas las cuales caducará.
- Envío de un recibo de entrega (DLR), opcional
Una vez que un mensaje alcanza un estado final (entregado, no se puede entregar, caducado), Vox crea un acuso de de recibido si así se solicita en el submit_sm inicial. El DLR se le enviará a través de una sesión de receptor o transceptor existente mediante la operación deliver_sm. El propio acuse de recibo se incluye en el parámetro de texto de la PDU deliver_sm.
- Acuso de recibido del DLR presentado
Debe acusar recibo de un deliver_sm con un deliver_sm_resp, de lo contrario Vox seguirá reenviando el deliver_sm.
Recibir SMS
- Establecer una sesión mediante una solicitud bind
Tras introducir los parámetros de conectividad proporcionados por Vox (IP, puerto, nombre de usuario, contraseña) en el cliente SMPP, se establecerá una conexión entre su sistema y Vox mediante una de las operaciones de enlace descritas anteriormente. Para recibir SMS de Vox, se necesita una sesión de receptor o transceptor. La sesión debe permanecer abierta para que podamos entregarle los mensajes.
- Acuso de recibido de la solicitud de enlace
Después de que Vox reciba una solicitud bind con la autenticación correcta, se emitirá un bind_resp y la sesión estará disponible para la comunicación.
- Recepción de un mensaje
Cuando Vox recibe un mensaje en uno de los números de entrada que le han sido asignados, éste es retransmitido a su plataforma mediante la operación deliver_sm. Para más detalles sobre la operación deliver_sm y la PDU, consulte la documentación de SMPP 3.4.
- Acuso de recibido del mensaje recibido
Tras recibir un deliver_sm, deberá acusar recibo respondiendo con un deliver_sm_resp. De lo contrario, le volveremos a enviar el deliver_sm.