Interfaz SMPP
Información de la interfaz
Este protocolo define el protocolo de comunicación SMPP del servicio EngageLab OTP, cuyo objetivo es lograr un envío de mensajes y un reporte de estado eficientes y fiables a través de una conexión TCP. La información de la interfaz incluye la dirección IP, el número de puerto y la información de autenticación necesaria para la conexión. Asegúrese de realizar la configuración correctamente con la cuenta y la contraseña proporcionadas por el canal autorizado.
Dirección SMPP
Dirección smpp: otpsmpp.api.engagelab.cc Obtenga la siguiente información del canal autorizado (por ejemplo, el equipo comercial o de soporte técnico):
- Puerto:
{ port } - Cuenta:
{ system_id } - Contraseña:
{ password }
Establecer la conexión
Paquete de datos del cliente
Una vez establecida la conexión TCP, el primer paquete de datos debe enviar el comando BindTransceiver (es decir, 0x00000009) para la verificación de autenticación. Este paquete de datos debe incluir los siguientes campos:
- system_id: cuenta de sistema asignada al cliente, utilizada para identificar la identidad.
- password: contraseña de acceso correspondiente a la cuenta de sistema, utilizada para la autenticación de identidad.
Respuesta del servidor
Respuesta de éxito
- El servidor enviará el comando
BindTransceiverResp(es decir,0x80000009) como respuesta. - Rellena el campo
system_idcon un valor idéntico al del camposystem_idrecibido.
Respuesta de error
- Si la autenticación falla, el servidor cerrará esa conexión TCP y registrará el motivo del fallo.
Envío de mensajes
Lógica del servidor
El envío de mensajes utiliza el comando SUBMIT_SM (es decir, 0x00000004) para enviar la solicitud de envío del mensaje; la lógica del servidor es la siguiente:
- El servidor analiza el contenido de la solicitud y utiliza siempre el canal SMS para el envío.
- El envío del mensaje es en modo síncrono y el resultado se devuelve mediante el comando
SUBMIT_SM_RESP(es decir,0x80000004). - El estado de entrega se reporta mediante el mensaje; para más detalles, consulte Informe de entrega.
- Se recomienda usar la codificación
UCS2para admitir caracteres especiales y la internacionalización.
Paquete de datos del cliente
El cliente envía el comando SUBMIT_SM (es decir, 0x00000004) para enviar el mensaje, y debe incluir los siguientes campos:
- service_type
- Valores:
MSG/CODE/MRKT - Valor predeterminado:
MSG
- Valores:
- source_addr
- Puede dejarse vacío; actualmente no se usa en OTP.
- destination_addr
- Destino del mensaje; debe tener formato de número de teléfono internacional (por ejemplo,
+6598765432).
- Destino del mensaje; debe tener formato de número de teléfono internacional (por ejemplo,
- short_message
- Contenido del mensaje, en formato JSON, con el siguiente formato:{ "id": "xxx", // ID de la plantilla "language": "default", // idioma utilizado, default por defecto "code": "xx", // código de verificación, solo se usa cuando service_type es code "params": { // pares clave-valor personalizados "key1": "val1" // val con formato de cadena } }
{ "id": "xxx", // ID de la plantilla "language": "default", // idioma utilizado, default por defecto "code": "xx", // código de verificación, solo se usa cuando service_type es code "params": { // pares clave-valor personalizados "key1": "val1" // val con formato de cadena } }Este bloque de código se muestra en una ventana flotante
- Contenido del mensaje, en formato JSON, con el siguiente formato:
- data_coding
- Se recomienda usar la codificación
UCS2para garantizar que los caracteres especiales{}se analicen correctamente. - Si se admite enviar directamente
{}, se puede usar la codificación predeterminada (es decir,0x00).
- Se recomienda usar la codificación
- status del header
- Establecer en
0x00000000.
- Establecer en
Respuesta del servidor
El servidor envía el comando SUBMIT_SM_RESP (es decir, 0x80000004) como respuesta al resultado del envío del mensaje.
Respuesta de éxito
- Valor del campo status del header:
0x00000000 - Campo MESSAGE_ID: ID del mensaje de respuesta, utilizado para asociar el informe de entrega.
Respuesta de error
- El servidor rellena el campo status del header para indicar el motivo del fallo:
| Código de estado | Descripción | Valor |
|---|---|---|
ESME_RINVPARAM |
Parámetro no válido; compruebe el formato del contenido de la solicitud | 0x00000032 |
ESME_RSYSERR |
Error interno del servicio; se recomienda volver a intentarlo más tarde | 0x00000008 |
ESME_RSUBMITFAIL |
Error de envío; puede deberse a un problema con la plantilla u otra causa | 0x00000045 |
ESME_RINVNUMMSGS |
Formato incorrecto del contenido del campo short_message |
0x00000055 |
ESME_RUNKNOWNERR |
Error desconocido; póngase en contacto con el soporte técnico | 0x000000FF |
Informe de entrega
El servidor reporta el informe de entrega mediante el comando DELIVER_SM (es decir, 0x00000005). Los campos concretos son los siguientes:
- service_type
- Valor fijo:
MSG
- Valor fijo:
- source_addr
- Vacío.
- destination_addr
- Idéntico al
destination_addrdel comandoSUBMIT_SM.
- Idéntico al
- data_coding
- Modo de codificación: valor predeterminado
0x00.
- Modo de codificación: valor predeterminado
- esm_class
- Establecer en
0x00.
- Establecer en
- short_message
- Encapsula el informe de entrega con el formato
delivery receipt.
- Encapsula el informe de entrega con el formato
- ReceiptedMessageID en tlv
- ID del mensaje, utilizado para la asociación e identificación.
- MessageState en tlv
- Estado del mensaje; valor del campo
0x0427.
- Estado del mensaje; valor del campo
Análisis del estado
En el campo short_message, los valores de stat tienen el siguiente significado:
| Estado | Significado |
|---|---|
DELIVRD |
Entrega correcta |
UNDELIV |
Error de entrega |
Otras consideraciones
Comandos no válidos
Ante los comandos no válidos enviados por el cliente, el servidor devolverá el comando GENERIC_NACK (es decir, 0x80000000) y registrará los logs correspondientes. El servidor solo admite los siguientes comandos:
- Comando
EnquireLink(es decir,0x00000015) - Comando
Unbind(es decir,0x00000006) - Comando
SubmitSM(es decir,0x00000004) - Comando
DeliverSMResp(es decir,0x80000005) - Comando
BindTransceiver(es decir,0x00000009)
Mantenimiento de la actividad
El cliente debe enviar el comando EnquireLink (es decir, 0x00000015) cada 30 segundos (con una tolerancia de ±5 segundos) para garantizar que la conexión permanezca activa.
Significado de los estados de envío
| Código de estado | Significado |
|---|---|
ESME_RINVPARAM |
Parámetro no válido; compruebe el formato del contenido de la solicitud |
ESME_RINVNUMMSGS |
Formato incorrecto del contenido del campo short_message |
ESME_RSUBMITFAIL |
Error de envío; puede deberse a un problema con la plantilla u otra causa |
ESME_RSYSERR |
Error interno del servicio; se recomienda volver a intentarlo más tarde |
ESME_RUNKNOWNERR |
Error desconocido; póngase en contacto con el soporte técnico |
DELIVRD |
El mensaje se entregó correctamente |
UNDELIV |
El mensaje no se pudo entregar |
Glosario
- SMPP: protocolo de igual a igual para mensajes cortos (Short Message Peer-to-Peer Protocol), utilizado para el intercambio de mensajes de las pasarelas de SMS.
- SUBMIT_SM: comando SMPP para enviar un mensaje corto.
- DELIVER_SM: comando SMPP que el servidor utiliza para reportar el estado de entrega del mensaje.
Si tiene alguna pregunta, póngase en contacto con el Soporte técnico de OTP.










