How to configure the SMPP Service Type field

The service_type field in SMPP (Short Message Peer-to-Peer) protocol defines the kind of messaging service being requested when submitting a message. This field appears in several SMPP PDUs such as submit_sm, data_sm, and submit_multi.

Field Details

  • Field Name: service_type
  • Data Type: C-Octet String (null-terminated ASCII)
  • Max Length: 6 characters (including null terminator)
  • Purpose: To categorize the message being sent (e.g., voicemail, WAP push, etc.)

Common Values

While service_type is optional and often left blank (null string), it can be used to request specific message handling. Here are common values:

ValueDescription
null or ""Default SMS (no special treatment)
"CMT"Cellular Messaging
"CPT"Cellular Paging
"VMN"Voice Mail Notification
"VMA"Voice Mail Alerting
"WAP"Wireless Application Protocol message
"USSD"USSD message

Custom Values

Some operators or SMSCs may support custom values like "OTP" or "PROMO" to trigger special routing, filtering, or billing rules.

Example Usage in a PDU

Below is an SMPP submit_sm PDU with service_type = "CMT":

0000003F  // Command Length (63 bytes)
00000004  // Command ID (submit_sm)
00000000  // Command Status
00000001  // Sequence Number
434D54    // service_type: "CMT" in ASCII
00        // Null terminator
01        // source_addr_ton: International
01        // source_addr_npi: ISDN
31323334  // source_addr: "1234"
00
01        // dest_addr_ton
01        // dest_addr_npi
35363738  // destination_addr: "5678"
00
00        // esm_class
00        // protocol_id
00        // priority_flag
00        // schedule_delivery_time
00        // validity_period
00        // registered_delivery
00        // replace_if_present_flag
00        // data_coding
00        // sm_default_msg_id
05        // sm_length: 5
48656C6C6F // short_message: "Hello"

When to Use service_type

  • When instructed by your SMS provider for routing purposes.
  • To categorize messages (e.g., alerts, promotions, 2FA).
  • To activate services like voicemail notifications or WAP Push.
  • To trigger special billing or delivery logic.

Important Notes

  • Leaving service_type blank is standard unless otherwise required.
  • Some SMSCs may ignore or override this field.
  • Incorrect values may lead to message rejections or delivery failures.

Conclusion

The service_type field in SMPP is a flexible but often optional way to classify SMS messages. While many systems use the default empty value, certain applications—especially those requiring special treatment by the SMSC—can benefit from explicitly setting this field.

References

  • SMPP 3.4 Specification (Section 4.7)
  • Vendor-specific SMPP documentation (e.g., Twilio, Infobip, Syniverse)

More information