Comment configurer le champ ESM Class SMPP
Paramètres ESM Class dans Ozeki SMS Gateway
Ozeki SMS Gateway vous permet de configurer manuellement le champ ESM Class (Figure 1)
Qu'est-ce que le champ ESM Class ?
Le Extended Service Message (ESM) Class dans SMPP est un champ de 1 octet dans les PDU SMPP qui contrôle les fonctionnalités avancées de gestion des messages.
Il est utilisé dans les opérations submit_sm
, deliver_sm
et data_sm
pour spécifier :
- Types de messages (par exemple, SMS, accusé de réception)
- Comportement des accusés de réception
- Présence d'un UDH (User Data Header)
- Priorité des messages et indicateurs de routage
Structure et masque binaire de l'ESM Class
L'ESM Class est un masque binaire où chaque bit ou groupe de bits active des fonctionnalités spécifiques :
Bits | Description |
---|---|
7 | Mode de messagerie : 0 = Par défaut, 1 = Datagramme |
6 | Type de message : 0 = Normal, 1 = Accusé de réception |
5 | Indicateur UDHI : 1 = UDH présent dans la charge utile |
4 | Chemin de réponse : 1 = Chemin de réponse demandé |
3-2 | Priorité du message (00 = Normal, 01 = Interactif, 10 = Urgent, 11 = Urgence) |
1-0 | Réservé |
Valeurs courantes de l'ESM Class
ESM (Hex) | Binaire | Description |
---|---|---|
0x00 | 00000000 | Par défaut (aucun traitement spécial) |
0x04 | 00000100 | Indicateur UDHI activé (UDH présent) |
0x08 | 00001000 | Chemin de réponse demandé |
0x20 | 00100000 | Accusé de réception (bit 6 = 1) |
0x30 | 00110000 | Priorité urgente + accusé de réception |
0x60 | 01100000 | Mode datagramme + accusé de réception |
Cas d'utilisation clés
1. SMS concaténés (indicateur UDHI)
Lors de l'envoi de messages multiparties, activez le bit 5 (UDHI=1) et incluez un User Data Header (UDH) dans la charge utile. Exemple pour un message en 3 parties :
ESM Class : 0x40 (binaire 01000000 : UDHI activé) Charge utile : 05 00 03 02 01 // UDH (5 octets : IEI=00, IEDL=03, partie 1 sur 2) C8329BFD06 // Charge utile GSM-7 ("Hello")
2. Demandes d'accusé de réception
Activez le bit 6 (0x20) pour demander un accusé de réception. Souvent combiné avec le champ registered_delivery
:
ESM Class : 0x20 (binaire 00100000) registered_delivery : 0x01 (demande d'accusé)
3. Messagerie prioritaire
Utilisez les bits 3-2 pour prioriser les messages. Exemple pour une priorité urgente :
ESM Class : 0x10 (binaire 00010000 : Priorité urgente)
Exemples de PDU SMPP
Exemple 1 : SMS basique (ESM=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 // ESM Class (0x00 : Par défaut) 00 // Protocol ID (PID) 00 // Priorité 00 // Heure de livraison planifiée 00 // Période de validité 00 // Livraison enregistrée 00 // Remplacer si présent 00 // Codage des données (DCS=0x00) 00 // ID de message par défaut SM 07 // Longueur SM (7 septets) C8329BFD06DDDF72 // Charge utile ("Hello!")
Exemple 2 : SMS concaténé (ESM=0x40)
00000025 // Longueur de commande (37 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") 40 // ESM Class (0x40 : UDHI activé) 00 // Protocol ID (PID) 00 // Priorité 00 // Heure de livraison planifiée 00 // Période de validité 00 // Livraison enregistrée 00 // Remplacer si présent 00 // Codage des données (DCS=0x00) 00 // ID de message par défaut SM 0C // Longueur SM (12 octets) 0500030201C8329BFD06DDDF72 // UDH + "Hello" (Partie 1/2)
Exemple 3 : Accusé de réception (ESM=0x20)
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") 20 // ESM Class (0x20 : Accusé de réception) 00 // Protocol ID (PID) 00 // Priorité 00 // Heure de livraison planifiée 00 // Période de validité 01 // Livraison enregistrée (accusé demandé) 00 // Remplacer si présent 00 // Codage des données (DCS=0x00) 00 // ID de message par défaut SM 07 // Longueur SM (7 septets) C8329BFD06DDDF72 // Charge utile ("Hello!")
Interactions avec d'autres champs
- UDHI (ESM) + DCS : Si UDHI est activé, assurez-vous que le DCS prend en charge UDH (par exemple, GSM-7 ou 8 bits).
- ESM Class + registered_delivery : Utilisez les deux pour demander explicitement des accusés de réception.
- Bits de priorité + Indicateur de priorité : Certains SMSC priorisent les messages en fonction des bits ESM plutôt que du champ de priorité séparé.
Pièges courants
- Activer UDHI sans inclure un User Data Header valide.
- Utiliser les indicateurs d'accusé de réception (ESM=0x20) sans activer
registered_delivery
. - Incompatibilité entre les bits de priorité ESM et le champ
priority_flag
.
La classe ESM est un outil puissant pour contrôler le comportement des messages dans SMPP. Sa conception en masque binaire permet des fonctionnalités telles que la concaténation, les accusés de réception et la priorisation. Vérifiez toujours que le SMSC prend en charge les drapeaux avancés et testez les configurations minutieusement. Pour des détails officiels, reportez-vous à la spécification SMPP v3.4 ou v5.0.
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