PDU

Une unité de données de protocole est une commande SMPP sur le réseau, par exemple submit_sm : un en-tête fixe, puis un corps défini par la commande.

Définitions uniquement : un terme expliqué ici n’est pas un service que nous vendons.

Une unité de données de protocole est une commande encodée sur le réseau dans un protocole donné : un en-tête fixe, puis un corps qui dépend de la commande. Dans SMPP, l’en-tête porte la longueur de commande, l’identifiant de commande, le statut de commande et le numéro de séquence.

Le corps d’un submit_sm porte les adresses, le codage des données et le champ short_message. Ce champ contient les données utilisateur et, lorsque esm_class l’indique, un UDH ; le SMSC le convertit en TPDU 3GPP TS 23.040 côté radio.

Le décodeur SMPP analyse dans le navigateur une PDU collée, mais il ne peut lire que les octets qu’on lui fournit.

Une PDU, champ par champ

command_length
32
command_id
0x00000004
command_status
0x00000000
sequence_number
1
service_type
source_addr_ton
0
source_addr_npi
0
source_addr
dest_addr_ton
0
dest_addr_npi
0
destination_addr
esm_class
0x00
L’en-tête est fixe ; le corps change avec la commande.
Description textuelle

Toute PDU commence par une longueur de commande de quatre octets, l’identifiant de commande, le statut de commande et le numéro de séquence. Le corps suit.

Questions fréquentes

Une PDU est-elle identique à un paquet ?

Non. Une PDU appartient à un protocole nommé, avec une structure définie ; dans le domaine du SMS, il s’agit en général d’une commande SMPP ou du message court encodé.

Pourquoi ma PDU se décode-t-elle en un texte erroné ?

Le codage des données et l’en-tête de données utilisateur en sont les causes habituelles.

Peut-on décoder une PDU sans connaître la direction ?

Pas de façon fiable. Une TPDU brute (SMS-SUBMIT ou SMS-DELIVER) a un ordre de champs différent selon le sens ; une PDU SMPP nomme sa commande dans command_id, qui donne donc le sens.

En savoir plus

Sources

  1. 3GPP TS 23.040 : réalisation technique du service de messages courts
  2. 3GPP TS 23.038 : alphabets et informations linguistiques pour les SMS
  3. SMPP v3.4 : en-tête de commande et champ short_message