Comment configurer les champs de numéro de téléphone SMPP
SMPP (Short Message Peer-to-Peer) est un protocole utilisé par les systèmes de télécommunication pour échanger des messages SMS entre les SMSC (Short Message Service Centers) et les ESME (External Short Messaging Entities). Un élément clé du protocole est la manière dont il encode les numéros de téléphone (adresses source et destination) dans la PDU SMPP (Protocol Data Unit).
Paramètres d'adresse dans SMPP
Les champs clés utilisés pour définir un numéro de téléphone dans SMPP sont :
- addr_ton (Type de numéro)
- addr_npi (Indicateur de plan de numérotation)
- address_range ou source_addr/destination_addr
Type de numéro (TON)
Ce champ définit le format du numéro. Les valeurs courantes incluent :
| Valeur | TON | Description |
|---|---|---|
| 0 | Inconnu | Format inconnu |
| 1 | International | Le numéro inclut l'indicatif du pays |
| 2 | National | Format de numéro local |
| 5 | Alphanumérique | Utilisé pour les noms d'expéditeur comme "MonEntreprise" |
Indicateur de plan de numérotation (NPI)
Ce champ indique le format de numérotation. Valeurs courantes :
| Valeur | NPI | Description |
|---|---|---|
| 0 | Inconnu | Format inconnu |
| 1 | ISDN (E.164) | Format standard international de numéro de téléphone |
| 3 | Données | Réseau de données (X.121) |
Encodage d'une adresse
Lors de l'encodage d'un numéro de téléphone dans SMPP, le système envoie le numéro sous forme de chaîne ASCII terminée par un caractère nul, accompagnée des valeurs TON et NPI appropriées.
Exemple :
Numéro de téléphone : +14155552671 TON : 1 (International) NPI : 1 (ISDN/E.164) Encodé comme : 31 34 31 35 35 35 35 32 36 37 31 00 (ASCII "14155552671" + NULL)
Exemple de PDU SMPP
Voici un exemple de PDU submit_sm incluant un numéro de destination :
0000003F // Longueur de commande (63 octets)
00000004 // ID de commande (submit_sm)
00000000 // Statut de commande
00000001 // Numéro de séquence
74657374 // service_type : "test"
01 // source_addr_ton : International
01 // source_addr_npi : ISDN
31323334 // source_addr : "1234" (ASCII)
00 // Terminateur NULL
01 // dest_addr_ton : International
01 // dest_addr_npi : ISDN
2B393138 // destination_addr : "+918123456789" (ASCII, sans +)
31323334
35363738
3900 // Terminateur NULL
00 // esm_class
00 // protocol_id
00 // priority_flag
00 // schedule_delivery_time (null)
00 // validity_period (null)
00 // registered_delivery
00 // replace_if_present_flag
00 // data_coding (GSM par défaut)
00 // sm_default_msg_id
0D // sm_length (13)
48656C6C // Message court ("Hello, World!")
6F2C2057
6F726C64
2100
Exemple d'expéditeur alphanumérique
Lors de l'utilisation d'un nom d'expéditeur alphanumérique (commun pour les SMS en masse unidirectionnels) :
Expéditeur : "MaMarque" TON : 5 (Alphanumérique) NPI : 0 (Inconnu ou non pertinent) Encodé : Chaîne ASCII "MaMarque" + terminateur NULL
Notes importantes
- Les ID d'expéditeur alphanumériques doivent comporter 11 caractères ou moins.
- Les adresses alphanumériques ne sont pas supportées dans tous les pays.
- Assurez-vous de bien faire correspondre TON et NPI avec le format de votre adresse pour éviter des problèmes de routage.
Conclusion
L'encodage des numéros dans SMPP est crucial pour assurer une bonne livraison des messages. En définissant correctement les valeurs TON, NPI et en encodant l'adresse en ASCII (terminée par NULL), les développeurs peuvent garantir la compatibilité avec les SMSC et les réseaux mobiles.