Comment configurer le champ Période de Validité SMPP
Qu'est-ce que le champ Période de Validité ?
La Période de Validité dans SMPP (Short Message Peer-to-Peer Protocol) est un champ de chaîne de caractères terminée par un nul dans les PDU comme submit_sm
qui définit
combien de temps un SMSC tentera de délivrer un message avant de le supprimer. Ce champ est crucial pour :
- Éviter des tentatives infinies pour les messages non livrables
- Gérer les ressources de stockage du SMSC
- Gérer les contenus sensibles au temps (ex : OTP, promotions)
Format et structure du champ
La période de validité utilise le même format de temps absolu que l'heure de livraison programmée (spécification SMPP v3.4) :
YYMMDDhhmmssnnp
Où les composants correspondent au format de l'heure de livraison programmée. Des raccourcis de format relatif sont également supportés :
Format | Exemple | Description |
---|---|---|
Absolu | 231215235959000+ |
15 déc. 2023 23:59:59 UTC+0 |
Relatif | 000003000000000R |
3 jours à partir de l'heure d'envoi |
-
NULL
: Utilise la validité par défaut du SMSC (généralement 24-72 heures)-
00
: Validité par défaut du SMSC (systèmes legacy)
Formats clés de la période de validité
1. Format de temps absolu
YYMMDDhhmmssnnp // Format complet 231215143000000+ // 15 déc. 2023 14:30:00 UTC+0
2. Format de temps relatif
00000X000000000R // X = Jours (00-99) 000003000000000R // Validité de 3 jours
Cas d'utilisation
1. Expiration d'OTP (Validité courte)
validity_period: "000000010000000R" // Validité de 1 heure
2. Campagne promotionnelle (Validité étendue)
validity_period: "000007000000000R" // Validité de 7 jours
3. Expiration à minuit (Temps absolu)
validity_period: "231215235959000+" // Expire le 15 déc. 2023 23:59:59 UTC+0
Exemples de PDU SMPP
Exemple 1 : Validité de 24 heures (Format relatif)
0000001D // Longueur de commande (29 octets) 00000004 // ID de commande (SubmitSM) 00000001 // Numéro de séquence ... 00 // Drapeau de priorité 00 // Heure de livraison programmée 303030303234303030303030305200 // "00002400000000R" (24 heures) 00 // Livraison enregistrée ...
Exemple 2 : Temps d'expiration absolu
0000002A // Longueur de commande (42 octets) 00000004 // ID de commande (SubmitSM) 00000002 // Numéro de séquence ... 00 // Heure de livraison programmée 3233313231323332353935393030302B00 // "231212235959000+" (12 déc. 2023 23:59:59 UTC+0) ...
Interactions avec d'autres champs
- scheduled_delivery_time : Le compte à rebours de la période de validité commence à l'heure programmée si définie
- priority_flag : Les messages haute priorité peuvent outrepasser les paramètres de période de validité sur certains SMSC
- registered_delivery : Les reçus de livraison sont envoyés même après l'expiration de la période de validité
Pièges courants
- Utiliser le format relatif sans le suffixe 'R'
- Définir des périodes de validité plus longues que les limites du SMSC (ex : 30 jours max)
- Incompatibilité des fuseaux horaires entre l'heure programmée et la période de validité
- Supposer que tous les SMSC supportent le format relatif (vérifier avec le fournisseur)
De nombreux SMSC convertissent les périodes relatives en horodatages absolus à la réception du message. Le compte à rebours continue même si le SMSC redémarre.
Période de Validité vs Valeurs par défaut du SMSC
Valeur de la Période de Validité | Comportement du SMSC |
---|---|
NULL ou 00 | Utilise la valeur par défaut du SMSC (varie selon le fournisseur) |
Valeur explicite | Honore la valeur (dans les limites du SMSC) |
Horodatage passé | Message supprimé immédiatement |
Conclusion
Le champ Période de Validité est essentiel pour contrôler le cycle de vie des messages dans SMPP. Alors que les horodatages absolus offrent de la précision, les formats relatifs offrent une simplicité pour les cas d'utilisation courants. Coordonnez toujours les paramètres de validité avec les politiques du SMSC et testez les cas limites (ex : transitions d'heure d'été). Pour des implémentations détaillées, référez-vous à la section 5.2.18 de SMPP v3.4 et à la documentation 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