logoDocumentación
Buscar

OTP SMPP Integration Guide - Enhance Your Security with SMPP

Información de la interfaz

Este protocolo define el protocolo de comunicación SMPP para servicios de OTP, con el objetivo de lograr una entrega de mensajes y un informe de estados eficientes y fiables mediante conexiones TCP. La información de la interfaz incluye la dirección IP, el puerto y las credenciales de autenticación. Es necesario asegurarse de que las credenciales proporcionadas por los canales autorizados estén configuradas correctamente.

Dirección SMPP

Obtener la siguiente información de los canales autorizados (p. ej., ventas o soporte técnico):

  • Dirección IP: { ip }
  • Puerto: { port }
  • Cuenta: { system_id }
  • Contraseña: { password }

Establecimiento de la conexión

Paquete de datos del cliente

Después de establecer una conexión TCP, el primer paquete de datos debe enviar el comando BindTransceiver (0x00000009) para la autenticación. El paquete debe incluir los siguientes campos:

  • system_id: La cuenta del sistema asignada al cliente para la verificación de identidad.
  • password: La contraseña de acceso correspondiente a la cuenta del sistema para la autenticación.

Respuesta del servidor

Respuesta correcta

  • El servidor enviará un comando BindTransceiverResp (0x80000009) como respuesta.
  • El campo system_id se completará con el valor recibido en el campo system_id.

Respuesta de error

  • Si la autenticación falla, el servidor desconectará la conexión TCP y registrará el motivo.

Envío de mensajes

Lógica del servidor

El envío de mensajes utiliza el comando SUBMIT_SM (0x00000004) para enviar solicitudes de entrega de mensajes. La lógica del servidor es la siguiente:

  1. El servidor analiza el contenido de la solicitud y utiliza el canal de SMS para la entrega.
  2. Los mensajes se entregan en modo síncrono y los resultados se devolverán mediante el comando SUBMIT_SM_RESP (0x80000004).
  3. Se enviarán informes de entrega, tal y como se detalla en la sección Informe de entrega.
  4. Se recomienda utilizar la codificación UCS2 para admitir caracteres especiales y la internacionalización.

Paquete de datos del cliente

El cliente envía el comando SUBMIT_SM (0x00000004) para enviar mensajes con los siguientes campos:

  1. service_type
    • Valores: MSG / CODE / MRKT
    • Predeterminado: MSG
  2. source_addr
    • Puede dejarse en blanco; actualmente no se utiliza en OTP.
  3. destination_addr
    • El destino del mensaje; debe estar en formato internacional de número de teléfono (p. ej., +8613800138000).
  4. short_message
    • Contenido del mensaje en formato JSON, tal y como se muestra a continuación:
      { "id": "xxx", // Template ID "language": "default", // Language, default is "default" "code": "xx", // Verification code, used when service_type is "code" "params": { // Custom key-value pairs "key1": "val1" // Value must be a string } }
                    
                    {
        "id": "xxx",          // Template ID
        "language": "default", // Language, default is "default"
        "code": "xx",          // Verification code, used when service_type is "code"
        "params": {            // Custom key-value pairs
          "key1": "val1"       // Value must be a string
        }
      }
      
                  
      Este bloque de código se muestra en una ventana flotante
  5. data_coding
    • Se recomienda utilizar la codificación UCS2 para garantizar que los caracteres especiales {} se analicen correctamente.
    • Si {} se puede enviar directamente, se puede utilizar la codificación predeterminada (0x00).
  6. header status
    • Establecer en 0x00000000.

Respuesta del servidor

El servidor responde a las solicitudes de entrega de mensajes con el comando SUBMIT_SM_RESP (0x80000004).

Respuesta correcta

  • Valor del campo header status: 0x00000000
  • Campo MESSAGE_ID: el ID del mensaje utilizado para asociar informes de entrega.

Respuesta de error

  • El servidor completa el campo header status para indicar el motivo del fallo:
Código de estado Descripción Valor
ESME_RINVPARAM Parámetros no válidos; comprobar el formato de la solicitud 0x00000032
ESME_RSYSERR Error interno del servidor; reintentar más tarde 0x00000008
ESME_RSUBMITFAIL Error de entrega; posiblemente debido a problemas de plantilla 0x00000045
ESME_RINVNUMMSGS Formato de short_message no válido 0x00000055
ESME_RUNKNOWNERR Error desconocido; contactar con soporte técnico 0x000000FF

Informe de entrega

El servidor informa de los resultados de entrega mediante el comando DELIVER_SM (0x00000005). Los campos son los siguientes:

  1. service_type
    • Valor fijo: MSG
  2. source_addr
    • En blanco.
  3. destination_addr
    • Coincide con el campo destination_addr del comando SUBMIT_SM.
  4. data_coding
    • Método de codificación: valor predeterminado 0x00.
  5. esm_class
    • Establecer en 0x00.
  6. short_message
    • Encapsula el informe de entrega en formato delivery receipt.
  7. ReceiptedMessageID en tlv
    • ID del mensaje para la asociación.
  8. MessageState en tlv
    • Estado del mensaje; valor del campo 0x0427.

Análisis de estado

El campo short_message contiene el valor stat, que indica lo siguiente:

Estado Significado
DELIVRD Entregado correctamente
UNDELIV Error de entrega

Información adicional

Comandos no válidos

Para comandos no válidos enviados por el cliente, el servidor devolverá el comando GENERIC_NACK (0x80000000) y registrará el evento. El servidor solo admite los siguientes comandos:

  1. Comando EnquireLink (0x00000015)
  2. Comando Unbind (0x00000006)
  3. Comando SubmitSM (0x00000004)
  4. Comando DeliverSMResp (0x80000005)
  5. Comando BindTransceiver (0x00000009)

Mantenimiento de la conexión

El cliente debe enviar el comando EnquireLink (0x00000015) cada 30 segundos (±5 segundos) para mantener la actividad de la conexión.


Significado del estado de entrega

Código de estado Significado
ESME_RINVPARAM Parámetros no válidos; comprobar el formato de la solicitud
ESME_RINVNUMMSGS Formato de short_message no válido
ESME_RSUBMITFAIL Error de entrega; posiblemente debido a problemas de plantilla
ESME_RSYSERR Error interno del servidor; reintentar más tarde
ESME_RUNKNOWNERR Error desconocido; contactar con soporte técnico
DELIVRD Entregado correctamente
UNDELIV Error de entrega

Terminología

  • SMPP: Short Message Peer-to-Peer Protocol para el intercambio de mensajes entre pasarelas SMS.
  • SUBMIT_SM: Comando SMPP para el envío de mensajes.
  • DELIVER_SM: Comando SMPP para informar del estado de entrega de mensajes.

Para cualquier consulta, se puede contactar con Soporte técnico.

icon
Contacto