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