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 :

ValeurTONDescription
0InconnuFormat inconnu
1InternationalLe numéro inclut l'indicatif du pays
2NationalFormat de numéro local
5AlphanumériqueUtilisé 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 :

ValeurNPIDescription
0InconnuFormat inconnu
1ISDN (E.164)Format standard international de numéro de téléphone
3DonnéesRé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