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.
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