Le champ DCS SMPP (et l'encodage des caractères SMPP)

Cette page fournit des informations sur la manière d'encoder le champ DCS SMPP.

Comment Ozeki SMS Gateway encode le champ DCS SMPP

Dans la plupart des scénarios, vous n'avez pas besoin de configurer manuellement le champ DCS des PDU SMPP. Ozeki SMS Gateway le fait pour vous. Pour contrôler comment Ozeki SMS Gateway effectue l'encodage, vous pouvez configurer l'alphabet par défaut dans le formulaire de configuration du client SMPP (Figure 1).

Figure 1 - Encodage DCS SMPP

Dans ce formulaire, vous pouvez définir le jeu de caractères préféré, ou demander à Ozeki SMS Gateway d'utiliser une valeur fixe pour le paramètre DCS dans la PDU SMS.

Qu'est-ce que le champ DCS SMPP ?

Le Data Coding Scheme (DCS) dans SMPP (Short Message Peer-to-Peer Protocol) est un champ d'un octet dans les PDU SMPP (Protocol Data Units). Il définit comment la charge utile du message est encodée, permettant une interprétation correcte par l'entité réceptrice. Le DCS spécifie :

  • L'encodage des caractères (par exemple, GSM-7, UCS2, binaire 8 bits)
  • La classe du message (par exemple, SMS Flash)
  • Les indicateurs de compression

Structure et masque de bits du DCS

Le DCS est un masque de bits où chaque groupe de bits a un objectif spécifique :

Bits Description
7-6 Groupe d'encodage : Détermine le type d'encodage général.
5-4 Alphabet : Spécifie le jeu de caractères (si Groupe d'encodage = 00).
3-0 Classe de message/Indicateurs : Indique le type de message (par exemple, Flash) ou la compression.

Valeurs du Groupe d'encodage

Groupe d'encodage (Bits 7-6) Description
00 Encodage de données général (alphabet spécifié dans les bits 5-4)
01 Réservé
10 Encodage UCS2 (16 bits)
11 Encodage de données/Classe de message (par exemple, SMS Flash)

Exemples de valeurs DCS

DCS (Hex) Description Binaire
0x00 Alphabet par défaut GSM-7 00000000
0x04 Données binaires 8 bits 00000100
0x08 UCS2 (Unicode) 00001000
0x10 SMS Flash (GSM-7) 00010000
0xF0 SMS Flash (UCS2) 11110000

Exemples de PDU SMPP avec DCS

Exemple 1 : SubmitSM avec encodage GSM-7 (DCS=0x00)

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        // Priorité
00        // Heure de livraison planifiée
00        // Période de validité
00        // Livraison enregistrée
00        // Remplacer si présent
00        // Encodage de données (DCS=0x00)
00        // ID de message par défaut SM
07        // Longueur SM (7 septets)
C8329BFD06DDDF72  // Message court ("Hello!")
    

Exemple 2 : SubmitSM avec encodage UCS2 (DCS=0x08)

00000024  // Longueur de commande (36 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        // Priorité
00        // Heure de livraison planifiée
00        // Période de validité
00        // Livraison enregistrée
00        // Remplacer si présent
08        // Encodage de données (DCS=0x08)
00        // ID de message par défaut SM
0C        // Longueur SM (12 octets)
00480065006C006C006F0021  // "Hello!" en UCS2
    

Exemple 3 : SMS Flash (DCS=0x10)

0000001D  // Longueur de commande (29 octets)
00000004  // ID de commande (SubmitSM)
00000003  // 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        // Priorité
00        // Heure de livraison planifiée
00        // Période de validité
00        // Livraison enregistrée
00        // Remplacer si présent
10        // Encodage de données (DCS=0x10 : SMS Flash)
00        // ID de message par défaut SM
07        // Longueur SM (7 septets)
C8329BFD06DDDF72  // Message court ("Hello!")
    

Conclusion

Le champ DCS est essentiel pour garantir que les SMS sont encodés et affichés correctement. Les implémentations peuvent varier, consultez donc la spécification SMPP (v3.4 ou v5.0) pour des détails précis sur les masques de bits. Une utilisation correcte du DCS évite les erreurs d'encodage et assure la compatibilité entre les SMSC.

More information