How to configure the SMPP Priority field
What is the Priority Field?
The Priority Flag in SMPP (Short Message Peer-to-Peer Protocol) is a 1-byte field in SMPP PDUs like submit_sm
and deliver_sm
.
It indicates the urgency of a message, influencing how SMSCs (Short Message Service Centers) handle queuing, delivery retries, and routing.
Key use cases include:
- Prioritizing emergency alerts over promotional SMS
- Optimizing network resource allocation
- Meeting SLA requirements for high-priority messages
Priority Field Values and Interpretation
Defined in SMPP v3.4, the priority flag uses a 4-bit value (though only values 0-3 are typically used):
Priority (Hex) | Decimal | Description |
---|---|---|
0x00 | 0 | Lowest priority (bulk messages) |
0x01 | 1 | Normal priority (standard SMS) |
0x02 | 2 | Interactive priority (time-sensitive) |
0x03 | 3 | Highest priority (emergency alerts) |
How Priority Affects Message Handling
1. Queuing Behavior
High-priority messages jump ahead in SMSC queues. Example:
Priority 3: Delivered before Priority 0 messages
2. Delivery Retries
Higher priorities may get more retry attempts. Example SMSC policy:
Priority 3: 5 retries over 24 hours Priority 0: 2 retries over 2 hours
3. Network Routing
Some SMSCs route high-priority messages through dedicated channels.
Example SMPP PDUs
Example 1: Bulk SMS (Priority=0x00)
0000001D // Command Length (29 bytes) 00000004 // Command ID (SubmitSM) 00000001 // Sequence Number 00 // Source TON 00 // Source NPI 736F7572636500 // Source Address ("source") 00 // Dest TON 00 // Dest NPI 36353433323100 // Destination Address ("654321") 00 // ESM Class 00 // Protocol ID (PID) 00 // Priority Flag (0x00: Lowest) 00 // Schedule Delivery Time 00 // Validity Period 00 // Registered Delivery 00 // Replace-if-Present 00 // Data Coding (DCS=0x00) 00 // SM Default Message ID 07 // SM Length (7 septets) C8329BFD06DDDF72 // Payload ("Hello!")
Example 2: Emergency Alert (Priority=0x03)
0000001D // Command Length (29 bytes) 00000004 // Command ID (SubmitSM) 00000002 // Sequence Number 00 // Source TON 00 // Source NPI 736F7572636500 // Source Address ("source") 00 // Dest TON 00 // Dest NPI 36353433323100 // Destination Address ("654321") 00 // ESM Class 00 // Protocol ID (PID) 03 // Priority Flag (0x03: Highest) 00 // Schedule Delivery Time FF // Validity Period (max) 01 // Registered Delivery (receipt) 00 // Replace-if-Present 00 // Data Coding (DCS=0x00) 00 // SM Default Message ID 0A // SM Length (10 septets) E8329BFD0E... // Payload ("ALERT: Flood!")
Interactions with Other Fields
- ESM Class Priority Bits: Bits 3-2 of the ESM Class may override this field on some SMSCs.
- validity_period: High-priority messages often have shorter validity (e.g., 1 hour vs 3 days).
- registered_delivery: Priority 3 messages frequently require delivery receipts.
Common Pitfalls
- Assuming all SMSCs honor priority levels (verify with provider)
- Confusing SMPP Priority with GSM
TP-Status-Report-Indication
- Setting Priority=3 for non-emergency content (may violate regulations)
- Mismatching Priority and validity_period (e.g., Priority=3 with validity=7 days)
Some countries restrict Priority=3 usage to authorized entities (e.g., government alerts).
Priority vs ESM Class Priority Bits
Field | Bits | Priority Levels | Typical Usage |
---|---|---|---|
SMPP Priority Flag | Entire octet | 0-3 | End-to-end priority |
ESM Class (bits 3-2) | 2 bits | 00=Normal, 01=Interactive, 10=Urgent, 11=Emergency | Network-level prioritization |
Conclusion
The Priority field is crucial for managing SMS delivery urgency but requires careful coordination with SMSC capabilities and regulations. Always test priority behavior with your provider and align settings with local telecom guidelines. For detailed implementations, refer to SMPP v3.4 Section 5.2.12 and GSM 03.40 documentation.
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