Cómo configurar el campo Período de Validez en SMPP
¿Qué es el campo Período de Validez?
El Período de Validez en SMPP (Protocolo Short Message Peer-to-Peer) es un campo de cadena terminada en nulo en PDUs como submit_sm
que define
cuánto tiempo intentará un SMSC entregar un mensaje antes de descartarlo. Este campo es crítico para:
- Evitar reintentos indefinidos para mensajes no entregables
- Gestionar recursos de almacenamiento del SMSC
- Manejar contenido sensible al tiempo (ej. OTPs, promociones)
Formato y estructura del campo
El período de validez utiliza el mismo formato de tiempo absoluto que el tiempo de entrega programado (especificación SMPP v3.4):
YYMMDDhhmmssnnp
Donde los componentes coinciden con el formato de tiempo de entrega programado. También se admiten atajos de formato relativo:
Formato | Ejemplo | Descripción |
---|---|---|
Absoluto | 231215235959000+ |
15 dic 2023 23:59:59 UTC+0 |
Relativo | 000003000000000R |
3 días desde el momento de envío |
-
NULL
: Usa el período de validez predeterminado del SMSC (típicamente 24-72 horas)-
00
: Validez predeterminada del SMSC (sistemas heredados)
Formatos clave de período de validez
1. Formato de tiempo absoluto
YYMMDDhhmmssnnp // Formato completo 231215143000000+ // 15 dic 2023 14:30:00 UTC+0
2. Formato de tiempo relativo
00000X000000000R // X = Días (00-99) 000003000000000R // 3 días de validez
Casos de uso
1. Expiración de OTP (Validez corta)
validity_period: "000000010000000R" // 1 hora de validez
2. Campaña promocional (Validez extendida)
validity_period: "000007000000000R" // 7 días de validez
3. Expiración a medianoche (Tiempo absoluto)
validity_period: "231215235959000+" // Expira 15 dic 2023 23:59:59 UTC+0
Ejemplos de PDUs SMPP
Ejemplo 1: Validez de 24 horas (Formato relativo)
0000001D // Longitud del comando (29 bytes) 00000004 // ID del comando (SubmitSM) 00000001 // Número de secuencia ... 00 // Bandera de prioridad 00 // Tiempo de entrega programado 303030303234303030303030305200 // "00002400000000R" (24 horas) 00 // Entrega registrada ...
Ejemplo 2: Tiempo de expiración absoluto
0000002A // Longitud del comando (42 bytes) 00000004 // ID del comando (SubmitSM) 00000002 // Número de secuencia ... 00 // Tiempo de entrega programado 3233313231323332353935393030302B00 // "231212235959000+" (12 dic 2023 23:59:59 UTC+0) ...
Interacciones con otros campos
- scheduled_delivery_time: La cuenta regresiva del período de validez comienza desde el tiempo programado si está establecido
- priority_flag: Los mensajes de alta prioridad pueden anular la configuración del período de validez en algunos SMSC
- registered_delivery: Los recibos de entrega se envían incluso después de la expiración del período de validez
Errores comunes
- Usar formato relativo sin el sufijo 'R'
- Establecer períodos de validez más largos que los límites del SMSC (ej. máximo 30 días)
- Inconsistencias en zonas horarias entre el tiempo programado y el período de validez
- Asumir que todos los SMSC admiten formato relativo (verificar con el proveedor)
Muchos SMSC convierten períodos relativos a marcas de tiempo absolutas al recibir el mensaje. La cuenta regresiva continúa incluso si el SMSC se reinicia.
Período de validez vs. valores predeterminados del SMSC
Valor del período de validez | Comportamiento del SMSC |
---|---|
NULL o 00 | Usa el valor predeterminado del SMSC (varía por proveedor) |
Valor explícito | Respeta el valor (dentro de los límites del SMSC) |
Marca de tiempo pasada | El mensaje se descarta inmediatamente |
Conclusión
El campo Período de Validez es esencial para controlar el ciclo de vida del mensaje en SMPP. Mientras que las marcas de tiempo absolutas ofrecen precisión, los formatos relativos brindan simplicidad para casos de uso comunes. Siempre coordine la configuración de validez con las políticas del SMSC y pruebe casos extremos (ej. transiciones de horario de verano). Para implementaciones detalladas, consulte la Sección 5.2.18 de SMPP v3.4 y la documentación de GSM 03.40.
More information
- How to configure the SMPP Service Type field
- How to configure the SMPP Phone Number fields
- How to configure the SMPP ESM Class field
- How to configure the SMPP PID field
- How to configure the SMPP Prioirity field
- How to configure the SMPP Scheduled Time field
- How to configure the SMPP Validity Period field
- How to configure the SMPP Registered Delivery field
- How to configure the SMPP Replace if Present field
- How to configure the sm_default_msg_id field
- How to configure the SMPP DCS field
- How to calculate the SMPP SM Length field
- How to put data into the SMPP SM field