Comment configurer le champ Scheduled Delivery Time dans SMPP
Qu'est-ce que le champ Scheduled Delivery Time ?
Le champ Scheduled Delivery Time dans SMPP (Short Message Peer-to-Peer Protocol) est un paramètre optionnel dans la PDU submit_sm
qui permet de programmer un message pour une livraison à une date et une heure ultérieures. Ce champ est essentiel pour :
- Retarder la livraison des messages en dehors des heures de pointe
- Planifier des campagnes sensibles au temps (par exemple, messages d'anniversaire)
- Coordonner les messages dans différents fuseaux horaires
Format et structure du champ
La spécification SMPP v3.4 définit ce champ comme une C-Octet String
(terminée par un caractère nul) avec un format de date-heure spécifique :
YYMMDDhhmmssnnp
Où :
Composant | Description | Plage |
---|---|---|
YY | Deux derniers chiffres de l'année | 00-99 |
MM | Mois | 01-12 |
DD | Jour | 01-31 |
hh | Heure (format 24h) | 00-23 |
mm | Minute | 00-59 |
ss | Seconde | 00-59 |
nn | Dixièmes de seconde (optionnel) | 00-99 |
p | Décalage horaire (par exemple, +, -) | +/- suivi de 4 chiffres (HHMM) |
-
NULL
(livraison immédiate)-
000000000000000
(livraison immédiate, systèmes hérités)
Exemples de chaînes de temps
Chaîne de temps | Interprétation |
---|---|
231015143000000+ |
15 oct. 2023 14:30:00 UTC+0 |
231015143000000-0800 |
15 oct. 2023 14:30:00 UTC-08:00 |
000000000000000 |
Livraison immédiate (hérité) |
NULL |
Livraison immédiate (recommandé) |
Cas d'utilisation
1. Messages d'anniversaire
Programmer un message pour qu'il soit livré exactement à minuit le jour de l'anniversaire du destinataire :
scheduled_delivery_time: "231016000000000+" // 16 oct. 2023 00:00:00 UTC+0
2. Livraison en heures creuses
Éviter la congestion du réseau en envoyant des messages en masse la nuit :
scheduled_delivery_time: "231015020000000+" // 15 oct. 2023 02:00:00 UTC+0
3. Coordination des fuseaux horaires
Livrer des messages à 9 heure locale pour les destinataires à New York (UTC-5) :
scheduled_delivery_time: "231015090000000-0500" // 15 oct. 2023 09:00:00 UTC-05:00
Exemples de PDU SMPP
Exemple 1 : Livraison immédiate (NULL)
0000001D // Longueur de commande (29 octets) 00000004 // ID de commande (SubmitSM) 00000001 // Numéro de séquence 00 // TON source 00 // NPI source 736F7572636500 // Adresse source ("source") 00 // TON destination 00 // NPI destination 36353433323100 // Adresse destination ("654321") 00 // Classe ESM 00 // ID de protocole 00 // Drapeau de priorité 00 // Scheduled Delivery Time (NULL : immédiat) 00 // Période de validité 00 // Livraison enregistrée 00 // Remplacer si présent 00 // Codage des données (DCS=0x00) 00 // ID de message par défaut 07 // Longueur du message (7 septets) C8329BFD06DDDF72 // Charge utile ("Hello!")
Exemple 2 : Livraison future (15 oct. 2023 14:30 UTC)
0000002A // Longueur de commande (42 octets) 00000004 // ID de commande (SubmitSM) 00000002 // Numéro de séquence 00 // TON source 00 // NPI source 736F7572636500 // Adresse source ("source") 00 // TON destination 00 // NPI destination 36353433323100 // Adresse destination ("654321") 00 // Classe ESM 00 // ID de protocole 00 // Drapeau de priorité 3233313031353134333030303030302B00 // "231015143000000+" (16 octets + nul) 00 // Période de validité 00 // Livraison enregistrée 00 // Remplacer si présent 00 // Codage des données (DCS=0x00) 00 // ID de message par défaut 07 // Longueur du message (7 septets) C8329BFD06DDDF72 // Charge utile ("Hello!")
Interactions avec d'autres champs
- validity_period : Définit la durée pendant laquelle le SMSC tentera la livraison. Le compte à rebours commence à l'heure programmée.
- priority_flag : Les messages prioritaires peuvent contourner les files d'attente de programmation sur certains SMSC.
Pièges courants
- Utiliser l'heure locale sans spécifier le décalage horaire.
- Formater incorrectement la chaîne de date (par exemple, mois invalide "13").
- Supposer que tous les SMSC prennent en charge la livraison programmée (vérifier avec le fournisseur).
- Définir une heure dans le passé, ce qui entraîne une livraison immédiate.
Certains SMSC ignorent les fractions de seconde (
nn
) ou limitent la durée de programmation des messages (par exemple, 7 jours maximum).
Conclusion
Le champ Scheduled Delivery Time permet un contrôle précis de la livraison des SMS. Son utilisation correcte nécessite un formatage minutieux des chaînes de temps et une coordination avec les capacités du SMSC. Testez toujours les messages programmés avec votre fournisseur et référez-vous à la spécification SMPP v3.4 pour les cas particuliers (par exemple, années bissextiles, transitions de fuseaux horaires).
More information
- Comment configurer le champ Type de service SMPP
- Comment configurer les champs de numéro de téléphone SMPP
- Comment configurer le champ Classe ESM SMPP
- Comment configurer le champ PID SMPP
- Comment configurer le champ Priorité SMPP
- Comment configurer le champ Heure programmée SMPP
- Comment configurer le champ Période de validité SMPP
- Comment configurer le champ Livraison enregistrée SMPP
- Comment configurer le champ Remplacer si présent SMPP
- Comment configurer le champ sm_default_msg_id
- Comment configurer le champ DCS SMPP
- Comment calculer le champ Longueur SM SMPP
- Comment insérer des données dans le champ SM SMPP