Cómo configurar el campo de Hora de Entrega Programada en SMPP
¿Qué es el campo de Hora de Entrega Programada?
El campo Hora de Entrega Programada en SMPP (Protocolo de Mensajes Cortos entre Pares) es un parámetro opcional en la PDU submit_sm
que permite encolar un mensaje para su entrega en una fecha y hora futuras. Este campo es crítico para:
- Retrasar la entrega de mensajes a horas de baja demanda
- Programar campañas sensibles al tiempo (ej. mensajes de cumpleaños)
- Coordinar mensajes entre zonas horarias
Formato y Estructura del Campo
La especificación SMPP v3.4 define este campo como una Cadena C-Octeto
(terminada en nulo) con un formato específico de fecha y hora:
AAMMDDhhmmssnnp
Donde:
Componente | Descripción | Rango |
---|---|---|
AA | Últimos dos dígitos del año | 00-99 |
MM | Mes | 01-12 |
DD | Día | 01-31 |
hh | Hora (formato 24h) | 00-23 |
mm | Minutos | 00-59 |
ss | Segundos | 00-59 |
nn | Décimas de segundo (opcional) | 00-99 |
p | Desplazamiento de zona horaria (ej. +, -) | +/- seguido de 4 dígitos (HHMM) |
-
NULL
(entrega inmediata)-
000000000000000
(entrega inmediata, sistemas heredados)
Ejemplos de Cadenas de Tiempo
Cadena de Tiempo | Interpretación |
---|---|
231015143000000+ |
15 Oct 2023 14:30:00 UTC+0 |
231015143000000-0800 |
15 Oct 2023 14:30:00 UTC-08:00 |
000000000000000 |
Entrega inmediata (heredado) |
NULL |
Entrega inmediata (recomendado) |
Casos de Uso
1. Mensajes de Cumpleaños
Programar un mensaje para entregar exactamente a medianoche en el cumpleaños del destinatario:
scheduled_delivery_time: "231016000000000+" // 16 Oct 2023 00:00:00 UTC+0
2. Entrega en Horas de Baja Demanda
Evitar congestión de red enviando mensajes masivos de noche:
scheduled_delivery_time: "231015020000000+" // 15 Oct 2023 02:00:00 UTC+0
3. Coordinación de Zonas Horarias
Entregar mensajes a las 9 AM hora local para destinatarios en Nueva York (UTC-5):
scheduled_delivery_time: "231015090000000-0500" // 15 Oct 2023 09:00:00 UTC-05:00
Ejemplos de PDUs SMPP
Ejemplo 1: Entrega Inmediata (NULL)
0000001D // Longitud de Comando (29 bytes) 00000004 // ID de 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 // Bandera de Prioridad 00 // Hora de Entrega Programada (NULL: inmediata) 00 // Período de Validez 00 // Entrega Registrada 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 ("¡Hola!")
Ejemplo 2: Entrega Futura (15 Oct 2023 14:30 UTC)
0000002A // Longitud de Comando (42 bytes) 00000004 // ID de Comando (SubmitSM) 00000002 // 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 // Bandera de Prioridad 3233313031353134333030303030302B00 // "231015143000000+" (16 bytes + nulo) 00 // Período de Validez 00 // Entrega Registrada 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 ("¡Hola!")
Interacciones con Otros Campos
- validity_period: Define cuánto tiempo el SMSC intentará la entrega. Comienza a contar desde la hora programada.
- priority_flag: Mensajes de mayor prioridad pueden saltar colas de programación en algunos SMSCs.
Errores Comunes
- Usar hora local sin especificar el desplazamiento de zona horaria.
- Formatear incorrectamente la cadena de fecha (ej. mes inválido "13").
- Asumir que todos los SMSCs soportan entrega programada (verificar con el proveedor).
- Establecer una hora en el pasado, causando entrega inmediata.
Algunos SMSCs ignoran las décimas de segundo (
nn
) o restringen qué tan adelante se pueden programar mensajes (ej. máximo 7 días).
Conclusión
El campo Hora de Entrega Programada permite control preciso sobre cuándo se entregan los mensajes SMS. Su uso correcto requiere un formateo cuidadoso de las cadenas de tiempo y coordinación con las capacidades del SMSC. Siempre pruebe mensajes programados con su proveedor y consulte la especificación SMPP v3.4 para casos especiales (ej. años bisiestos, transiciones de zona horaria).
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