Cómo configurar el campo Registered Delivery en SMPP
¿Qué es el campo Registered Delivery?
El campo Registered Delivery en SMPP es una máscara de bits de 1 byte en PDUs como submit_sm
y data_sm
que controla
los acuses de recibo y notificaciones de entrega. Permite a los remitentes rastrear el estado de entrega de los mensajes a través de recibos generados por el SMSC. Sus funciones principales incluyen:
- Solicitar acuses de recibo de entrega final (éxito/fallo)
- Habilitar notificaciones intermedias de entrega
- Gestionar acuses de recibo de SME (Entidad de Mensaje Corto)
Estructura del campo y máscara de bits
Definido en SMPP v3.4, el campo utiliza la siguiente estructura de máscara de bits:
Bit | Descripción |
---|---|
0 | Acuse de recibo del SMSC (0 = desactivado, 1 = activado) |
1 | Acuse de recibo originado por SME (0 = desactivado, 1 = activado) |
2 | Notificación intermedia (0 = desactivado, 1 = activado) |
3-7 | Reservados |
Valores comunes
Valor (Hex) | Binario | Descripción |
---|---|---|
0x00 | 00000000 | No se solicitan acuses de recibo |
0x01 | 00000001 | Solo acuse de recibo del SMSC |
0x03 | 00000011 | Acuse de recibo del SMSC + acuse de recibo de SME |
0x05 | 00000101 | Acuse de recibo del SMSC + notificaciones intermedias |
Casos de uso
1. Acuses de recibo básicos
registered_delivery: 0x01 // Solicitar estado de entrega final
2. Mensajería de alta fiabilidad
registered_delivery: 0x05 // Acuse de recibo + notificaciones intermedias
3. Comunicación bidireccional
registered_delivery: 0x03 // Confirmar entrega tanto en SMSC como en SME
Ejemplos de PDUs SMPP
Ejemplo 1: Sin acuses de recibo (0x00)
0000001D // Longitud del comando (29 bytes) 00000004 // ID del comando (SubmitSM) 00000001 // Número de secuencia 00 // TON de origen 00 // NPI de origen 736F7572636500 // Dirección de origen ("source") 00 // TON de destino 00 // NPI de destino 36353433323100 // Dirección de destino ("654321") 00 // Clase ESM 00 // ID de protocolo 00 // Indicador de prioridad 00 // Tiempo de entrega programada 00 // Período de validez 00 // Registered Delivery (0x00: Sin acuses de recibo) 00 // Reemplazar-si-presente 00 // Codificación de datos (DCS=0x00) 00 // ID de mensaje predeterminado SM 07 // Longitud SM (7 septetos) C8329BFD06DDDF72 // Carga útil ("Hello!")
Ejemplo 2: Acuse de recibo del SMSC (0x01)
0000001D // Longitud del comando (29 bytes) 00000004 // ID del comando (SubmitSM) 00000002 // Número de secuencia ... 00 // Período de validez 01 // Registered Delivery (0x01: Acuse de recibo del SMSC) 00 // Reemplazar-si-presente ...
Ejemplo 3: Notificaciones intermedias (0x05)
0000001D // Longitud del comando (29 bytes) 00000004 // ID del comando (SubmitSM) 00000003 // Número de secuencia ... 05 // Registered Delivery (0x05: Acuse de recibo del SMSC + notificaciones intermedias) ...
Formato de acuse de recibo de entrega
Los SMSCs devuelven acuses de recibo mediante PDUs deliver_sm
con una carga útil con el formato:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Ejemplo de acuse de recibo para un mensaje entregado:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interacciones con otros campos
- esm_class: El bit 6 (indicador de acuse de recibo) debe alinearse con la configuración de registered_delivery
- validity_period: Determina cuánto tiempo intentará el SMSC la entrega antes de enviar un acuse de recibo de fallo
- message_id: Crítico para correlacionar acuses de recibo con mensajes originales
Errores comunes
- Habilitar acuses de recibo pero no escuchar PDUs
deliver_sm
- Asumir que todos los SMSCs admiten acuses de recibo de SME (0x02)
- Incompatibilidad entre los flags
registered_delivery
yesm_class
- Ignorar los límites de tasa del SMSC para la generación de acuses de recibo
Algunos proveedores cobran extra por los acuses de recibo. Confirma los precios antes de habilitarlos.
Conclusión
El campo Registered Delivery es esencial para rastrear el estado de entrega de SMS en SMPP. Mientras que el manejo básico de acuses de recibo (0x01) es ampliamente compatible,
funciones avanzadas como notificaciones intermedias requieren pruebas específicas con el SMSC. Siempre implementa un análisis robusto de acuses de recibo y correlaciona mensajes
usando message_id
. Para un comportamiento detallado, consulta la Sección 5.2.17 de SMPP v3.4 y la documentación de tu proveedor.
More information
- Cómo configurar el campo Tipo de Servicio SMPP
- Cómo configurar los campos de Número de Teléfono SMPP
- Cómo configurar el campo Clase ESM de SMPP
- Cómo configurar el campo PID de SMPP
- Cómo configurar el campo de Prioridad SMPP
- Cómo configurar el campo de Tiempo Programado SMPP
- Cómo configurar el campo de Período de Validez SMPP
- Cómo configurar el campo de Entrega Registrada SMPP
- Cómo configurar el campo Reemplazar si Presente SMPP
- Cómo configurar el campo sm_default_msg_id
- Cómo configurar el campo DCS de SMPP
- Cómo calcular el campo de Longitud SM de SMPP
- Cómo introducir datos en el campo SM SMPP