Reference section - SMPP

SMPP Protocol Implementation Conformance Statement (PICS)

SMPP PICS

SMPP (Short Message Peer-to-Peer) is an open, industry standard protocol designed to provide a flexible data communications interface for the transfer of short message data between External Short Message Entities (ESME), Routing Entities (RE) and Message Centres (MC). The SMPP protocol is a means by which applications can send SMS messages to mobile devices and receive SMS from mobile devices.

Tyr SMS Gateway
to
and worldwide

SMPP PICS

Abbreviated SMPP Protocol Implementation Conformance Statement (SMPP PICS)

This SMPP PICs statement is made in relation to the Tyr SMS Gateway and SMPP SMS Gateway services from Melrose Labs.

1. SMPP Operations Supported

ItemFunctional Unit/DescriptionSupported
PDU-OUTBINDIs the outbind PDU supported?NO
PDU-BIND-TRANSMITTERIs the bind transmitter PDU supported?YES
PDU-BIND-RECEIVERIs the bind receiver PDU supported?YES
PDU-BIND-TRANSCEIVERIs the bind transceiver PDU supported?YES
PDU-UNBINDIs the unbind PDU supported?YES
PDU-ESME-GENERIC-NACKIs the generic_nack PDU initiated by the EMSE supported?YES
PDU-SMSC-GENERIC-NACKIs the generic_nack PDU initiated by the SMSC supported?YES
PDU-SUBMIT-SMIs the submit_sm PDU supported?

  • schedule_delivery_time - absolute and relative supported
  • validity_period - absolute and relative supported
  • registered_delivery - SMSC delivery receipt supported
  • message_payload TLV (0x0424) supported
YES
PDU-SUBMIT-MULTIIs the submit_multi PDU supported?NO
PDU-DELIVER-SMIs the deliver_sm PDU supported?

  • MO SMS from mobiles via virtual mobile numbers (VMNs), virtual SIM hosting (VSIM) and short codes
  • delivery receipts
  • message_payload TLV (0x0424) supported
YES
PDU-ESME-DATAIs the data_sm PDU initiated by the EMSE supported?

  • registered_delivery - SMSC delivery receipt supported
  • message_payload TLV (0x0424) supported
YES
PDU-SMSC-DATAIs the data_sm PDU initiated by the SMSC supported?YES
PDU-QUERYIs the query_sm PDU supported?YES
PDU-CANCELIs the cancel_sm PDU supported?YES
PDU-REPLACEIs the replace_sm PDU supported?YES
PDU-ESME-ENQUIRE-LINKIs the enquire_link PDU initiated by the EMSE supported?YES
PDU-SMSC-ENQUIRE-LINKIs the enquire_link PDU initiated by the SMSC supported?YES
PDU-ALERTIs the alert_notification PDU supported?YES

Bind PDU

ItemFunctional Unit/DescriptionSupported
BIND-1Is sc_interface_version field supported in a response to the operation?YES
BIND-2Is the interface_version field supported in the bind_transceiver operation?YES

Submit_sm PDU

ItemFunctional Unit/DescriptionSupported
SUBMIT-1Is the use of different values in the service_type field allowed?YES
SUBMIT-2Is the use of default values in the source_addr fields supported?YES
SUBMIT-3Is scheduled_delivery supported?YES
SUBMIT-4Is the replace_if_present functionality supported?YES
SUBMIT-5Are pre-defined short messages supported?NO
SUBMIT-6Is the use of the validity_period field supported?YES
SUBMIT-7Is the user_message_reference field supported?YES
SUBMIT-8Is the source_port field supported?YES
SUBMIT-9Is the destination_port field supported?YES
SUBMIT-10-1Is the sar_msg_ref_num, field supported?YES
SUBMIT-10-2Is the sar_total_segments field supported?YES
SUBMIT-10-3Is the sar_segment_seqnum field supported?YES
SUBMIT-11Is the more_messages_to_send field supported?
SUBMIT-12Is the message_payload field supported?YES
SUBMIT-13Is the privacy_indicator field supported?
SUBMIT-14-1Is the callback_num fields supported?
SUBMIT-14-2Is the callback_num_atag fields supported?
SUBMIT-14-3Is the callback_num_pre_ind fields supported?
SUBMIT-15Is the source_subaddress field supported?
SUBMIT-16Is the dest_subaddress field supported?
SUBMIT-17Is the user_response_code field supported?
SUBMIT-18Is the display_time field supported?
SUBMIT-19Is the sms_signal field supported?
SUBMIT-20Is the ms_validity field supported?
SUBMIT-21Is the number_of_messages field supported?
SUBMIT-22Is the alert_on_msg_delivery field supported?
SUBMIT-23Is the language_indicator field supported?
SUBMIT-24-1Is the its_reply_type field supported?
SUBMIT-24-2Is the its_session_info field supported?
SUBMIT-25Is the ussd_service_op field supported?
SUBMIT-26What is the maximum length of message_payload data supported?
SUBMIT-27Is the payload_type field supported?
SUBMIT-28Is the source_addr_subunit field supported?
SUBMIT-29Is the dest_addr_subunit field supported?
SUBMIT-30Is the ms_msg_wait_facilities field supported?

Deliver_sm PDU

ItemFunctional Unit/DescriptionSupported
DELIVER-1Is the use of different values in the service_type field allowed?YES
DELIVER-2Is the user_message_reference field supported?YES
DELIVER-3Is the source_port field supported?YES
DELIVER-4Is the destination_port field supported?YES
DELIVER-5-1Is the sar_msg_ref_num field supported?YES
DELIVER-5-2Is the sar_total_segments field supported?YES
DELIVER-5-3Is the sar_segment_seqnum fields supported?YES
DELIVER-6Is the user_response_code field supported?
DELIVER-7Is the privacy_indicator field supported?
DELIVER-8Is the message_payload field supported?
DELIVER-9Is the callback_num field supported?
DELIVER-10Is the source_subaddress field supported?
DELIVER-11Is the dest_subaddress field supported?
DELIVER-12Is the network_error_code field supported?
DELIVER-13Is the its_session_info field supported?
DELIVER-14Is the language_indicator field supported?
DELIVER-15Is the message_state field supported?YES
DELIVER-16What is the maximum length of message_payload data supported?64KB
DELIVER-17Is the payload_type field supported?
DELIVER-18Is the receipted_message_id field supported?YES

Data_sm PDU (ESME to SMSC)

ItemFunctional Unit/DescriptionSupported
ESME-DATA-1Is the use of different values in the service_type field allowed?YES
ESME-DATA-2Is the use of default values in the source_addr fields supported?YES
ESME-DATA-3Is the user_message_reference field supported?YES
ESME-DATA-4Is the source_port field supported?YES
ESME-DATA-5Is the destination_port field supported?YES
ESME-DATA-6-1Is the sar_msg_ref_num, field supported?YES
ESME-DATA-6-2Is the sar_total_segments field supported?YES
ESME-DATA-6-3Is the sar_segment_seqnum field supported?YES
ESME-DATA-7Is the privacy_indicator field supported?
ESME-DATA-8-1Is the callback_num fields supported?
ESME-DATA-8-2Is the callback_num_atag fields supported?
ESME-DATA-8-3Is the callback_num_pre_ind fields supported?
ESME-DATA-9Is the source_subaddress field supported?
ESME-DATA-10Is the dest_subaddress field supported?
ESME-DATA-11Is the user_response_code field supported?
ESME-DATA-12Is the display_time field supported?
ESME-DATA-13Is the sms_signal field supported?
ESME-DATA-14Is the ms_validity field supported?
ESME-DATA-15Is the number_of_messages field supported?
ESME-DATA-16Is the alert_on_msg_delivery field supported?
ESME-DATA-17Is the language_indicator field supported?
ESME-DATA-18-1Is the its_reply_type field supported?
ESME-DATA-18-2Is the its_session_info field supported?
ESME-DATA-19Is the more_msgs_to_send field supported?
ESME-DATA-20-1Is the set_dpf field supported?
ESME-DATA-20-2Is the dpf_result field supported?
ESME-DATA-21Is the message_payload field supported?YES
ESME-DATA-22What is the maximum length of message_payload data supported?64KB
ESME-DATA-23Is the delivery_failure_reason field supported?
ESME-DATA-24Is the network_error_code field supported?YES
ESME-DATA-25Is the source_addr_subunit field supported?
ESME-DATA-26Is the dest_addr_subunit field supported?
ESME-DATA-27Is the ms_msg_wait_facilities field supported?
ESME-DATA-28Is the payload_type field supported?
ESME-DATA-29Is the additional_status_info_text field supported?
ESME-DATA-30Is the source_network_type field supported?
ESME-DATA-31Is the source_bearer_type field supported?
ESME-DATA-32Is the source_telematics_id field supported?
ESME-DATA-33Is the dest_network_type field supported?
ESME-DATA-34Is the dest_bearer_type field supported?
ESME-DATA-35Is the dest_telematics_id field supported?
ESME-DATA-36Is the message_state field supported?YES
ESME-DATA-37Is the qos_time_to_live field supported?

Data_sm PDU (SMSC to ESME)

ItemFunctional Unit/DescriptionSupported
SMSC-DATA-1Is the use of different values in the service_type field allowed?YES
SMSC-DATA-2Is the use of default values in the source_addr fields supported?YES
SMSC-DATA-3Is the user_message_reference field supported?YES
SMSC-DATA-4Is the source_port field supported?YES
SMSC-DATA-5Is the destination_port field supported?YES
SMSC-DATA-6-1Is the sar_msg_ref_num, field supported?YES
SMSC-DATA-6-2Is the sar_total_segments field supported?YES
SMSC-DATA-6-3Is the sar_segment_seqnum field supported?YES
SMSC-DATA-7Is the privacy_indicator field supported?
SMSC-DATA-8-1Is the callback_num fields supported?
SMSC-DATA-8-2Is the callback_num_atag fields supported?
SMSC-DATA-8-3Is the callback_num_pre_ind fields supported?
SMSC-DATA-9Is the source_subaddress field supported?
SMSC-DATA-10Is the dest_subaddress field supported?
SMSC-DATA-11Is the user_response_code field supported?
SMSC-DATA-12Is the display_time field supported?
SMSC-DATA-13Is the sms_signal field supported?
SMSC-DATA-14Is the ms_validity field supported?
SMSC-DATA-15Is the number_of_messages field supported?
SMSC-DATA-16Is the alert_on_msg_delivery field supported?
SMSC-DATA-17Is the language_indicator field supported?
SMSC-DATA-18-1Is the its_reply_type field supported?
SMSC-DATA-18-2Is the its_session_info field supported?
SMSC-DATA-19Is the more_msgs_to_send field supported?
SMSC-DATA-20-1Is the set_dpf field supported?
SMSC-DATA-20-2Is the dpf_result field supported?
SMSC-DATA-21Is the message_payload field supported?YES
SMSC-DATA-22What is the maximum length of message_payload data supported?64KB
SMSC-DATA-23Is the delivery_failure_reason field supported?
SMSC-DATA-24Is the network_error_code field supported?YES
SMSC-DATA-25Is the source_addr_subunit field supported?
SMSC-DATA-26Is the dest_addr_subunit field supported?
SMSC-DATA-27Is the ms_msg_wait_facilities field supported?
SMSC-DATA-28Is the payload_type field supported?
SMSC-DATA-29Is the additional_status_info_text field supported?
SMSC-DATA-30Is the source_network_type field supported?
SMSC-DATA-31Is the source_bearer_type field supported?
SMSC-DATA-32Is the source_telematics_id field supported?
SMSC-DATA-33Is the dest_network_type field supported?
SMSC-DATA-34Is the dest_bearer_type field supported?
SMSC-DATA-35Is the dest_telematics_id field supported?
SMSC-DATA-36Is the receipted_message_id field supported?YES
SMSC-DATA-37Is the message_state field supported?YES
SMSC-DATA-38Is the qos_time_to_live field supported?

Query_sm PDU

ItemFunctional Unit/DescriptionSupported
QUERY-1Is the use of default values in the source_addr fields supported?YES

Cancel_sm PDU

ItemFunctional Unit/DescriptionSupported
CANCEL-1Is the use of default values in the source_addr fields supported?YES
CANCEL-2Is the message_id of NULL, and thus cancelling a group of messages supported?NO

Replace_sm PDU

ItemFunctional Unit/DescriptionSupported
REPLACE-1Is the use of default values in the source_addr fields supported?YES

Alert_notification PDU

ItemFunctional Unit/DescriptionSupported
ALERT-1Are the source and ESME address fields always set?
ALERT-2Is the ms_availability_status field supported?

2. Functional Items

2.1 Forward Compatibility Issues

ItemFunctional Unit/DescriptionSupported
FORWARD-1If the application receives an unknown PDU does it return a generic_nack?YES
FORWARD-2Are unsupported and unrecognised optional fields ignored?YES
FORWARD-3Are all 'reserved' values in parameters interpreted as the default value ?YES
FORWARD-4Are unrecognised values in parameter value fields treated as an error ?NO
FORWARD-5Is an inconsistent Optional parameter combinations counted as an error?NO
FORWARD-6Do invalid parameter lengths cause the PDU to be rejected?YES

2.2 Backward Compatibility Issues

ItemFunctional Unit/DescriptionSupported
BACK-1Is it possible to make this implementation only support v3.3 and not use any v3.4 or v5 features?YES
BACK-2Is it possible to make this implementation only support v3.4 and not use any v3.3 (or v5) features?YES

2.3 Implementation Issues

ItemFunctional Unit/DescriptionSupported
IMP-1What is the maximum value for the PDU header field command_length which is supported by the implementation?66560 (bytes)
IMP-2Are all the optional parameters processed in an order independent manner?YES

2.4 Overall Message Types Supported

ItemFunctional Unit/DescriptionSupported
TYPE-1Are normal data messages transmitted?YES
TYPE-2Can SMSC Delivery Receipts be requested and obeyed?YES
TYPE-3Are intermediate notifications supported?YES
TYPE-4Are SME Delivery acknowledgements (Read receipts) supported?N/A
TYPE-5Are SME Manual/User acknowledgements supported?N/A
TYPE-6Are Conversational Aborts supported?N/A

2.5 Timers

ItemFunctional Unit/DescriptionSupported
TIMER-1Is the SMPP session_init_timer implemented?YES (20s)
TIMER-2Is the SMPP enquire_link_timer implemented?YES (60s)
TIMER-3Is the SMPP inactivity_timer implemented?YES (60s)
TIMER-4Is the SMPP response_timer implemented?YES (60s)

2.6 SMSC Specific Questions

ItemFunctional Unit/DescriptionSupported
SMSC-1Can a Store and Forward method of final delivery be used?YES
SMSC-2Can a Datagram method of final delivery be used?YES
SMSC-3Can a Transaction mode method of final delivery be used?NO
SMSC-4Can this initiate a session by using the outbind operation sequence?NO
SMSC-5What is the maximum length of message_id supported in operations?64 characters

3. Implementation Issues

3.1 SMSC Specific Issues

ItemFunctional Unit/DescriptionSupported
IMP-SMSC-1Is information in a bind PDU used for access control?YES
IMP-SMSC-2Can the information in the bind PDU be used for routing messages to the ESME?YES
IMP-SMSC-3In a cancel_sm received from an ESME, must the service_type field be set to the same value as the original message which is being canceled?NO
IMP-SMSC-4In a replace_sm received from an ESME, must the service_type field be set to the same value as the original message which is being replaced?NO

3.2 Link Usage

ItemFunctional Unit/DescriptionSupported
LINK-1Is it possible to have multiple links to the same SMSC using the same access control information?YES
LINK-2Is it possible to have multiple links to the same SMSC using different access control information?YES

3.3 Data Fields

3.3.1 Bind Fields

ItemFunctional Unit/DescriptionSupported
Bind-Field-1Are there any character or other limitations imposed upon values used in the system_id field?NO
Bind-Field-2Are there any character or other limitations imposed upon values used in the system_type field?NO
Bind-Field-3Are there any character or other limitations imposed upon values used in the password field?NO

3.3.2 Submit_sm Fields

ItemFunctional Unit/DescriptionSupported
Submit-Field-1What, if any restrictions are imposed upon the value used in the service_type field?NONE
Submit-Field-2What values in the esme_class field are supported, and in what circumstances?UDHI for UDH in short_message
Submit-Field-3What values in the protocol_id field are supported, and in what circumstances?Valid GSM values
Submit-Field-4What values in the priority field are supported, and in what circumstances?0,1
Submit-Field-5What, if any restrictions are imposed upon the value used in the schedule_delivery_time field?90-days maximum
Submit-Field-6What, if any restrictions are imposed upon the value used in the validity_period field?7-days maximum
Submit-Field-7Which values in the registered_delivery field are supported?0,1
Submit-Field-8Are there any restrictions set upon the values specified in the data_coding field?NONE
Submit-Field-9How many canned messages are supported via the sm_default_allowed field?0
Submit-Field-10What dest_network_type and source_network_type values are supported?N/A
Submit-Field-11What dest_bearer_type, dest_telematics_id, source_bearer_type, source_telematics_id values are supported?N/A
Submit-Field-12What payload_type values are supported?N/A
Submit-Field-13What ms_msg_wait_facilities values are supported?N/A
Submit-Field-14What privacy_indicator values are supported?N/A
Submit-Field-15What language_indicator values are supported?N/A

3.3.3 Deliver_sm Fields

ItemFunctional Unit/DescriptionSupported
Deliver-Field-1What, if any restrictions are imposed upon the value used in the service_type field?NONE
Deliver-Field-2What values in the esme_class field are supported, and in what circumstances?Default message type,
SMSC Delivery Receipt,
Intermedia Delivery Receipt,
UDHI
Deliver-Field-3What values in the protocol_id field are supported, and in what circumstances?Valid GSM values
Deliver-Field-4What values in the priority field are supported, and in what circumstances?NONE
Deliver-Field-5Which values in the registered_delivery field are supported?NONE
Deliver-Field-6Are there any restrictions set upon the values specified in the data_coding field?NONE
Deliver-Field-7What payload_type values are supported?N/A
Deliver-Field-8What privacy_indicator values are supported?N/A
Deliver-Field-9What language_indication values are supported?N/A

3.3.4 Data_sm Fields

ItemFunctional Unit/DescriptionSupported
Data-Field-1What, if any restrictions are imposed upon the value used in the service_type field?NONE
Data-Field-2What values in the esme_class field are supported, and in what circumstances?IGNORED
Data-Field-3Which values in the registered_delivery field are supported?0,1
Data-Field-4Are there any restrictions set upon the values specified in the data_coding field?Valid GSM values
Data-Field-5What dest_network_type and source_network_type values are supported?NONE
Data-Field-6What dest_bearer_type, dest_telematics_id, source_bearer_type, source_telemantics_id values are supported?NONE
Data-Field-7What ms_msg_wait_facilities values are supported?NONE
Data-Field-8What payload_type values are supported?NONE
Data-Field-9What privacy_indicator values are supported?NONE
Data-Field-10What language_indication values are supported?NONE

SMPP Tools and Services

Services from Melrose Labs (e.g. Tyr SMS Gateway and SMPP SMS Gateway ) support SMPP v5 and the earlier versions, v3.3 and v3.4.

SMSC Simulator

Looking to test your SMS application or SMS-enabled application before connecting to a live SMS gateway or SMSC? SMSC Simulator enables you to test using SMPP v3.3, v3.4 and v5.
Read more about SMSC Simulator >

SMPP Clients

Send and receive SMS using an SMPP account and browser-based SMPP client.

* SMPP session between web browser and provider.

SMS Code Bench

SMS messaging code sample and development playground. Collection of editable and runnable code samples in a variety of languages for different SMS interactions.
SMS Code Bench >

Send SMS programmatically with SMPP

Send SMS programmatically with SMPP using Python, Java, Go, Perl, C++, C#, Node.js, Ruby and PHP.

SMPP Load Test

Perform an SMS load test using SMPP from your web browser and view the results in realtime. SMPP Load Test tool submits SMS messages using SMPP at the specified rate. Messages are sent to one or more mobile numbers in a range from a single source address or range of source addresses.
Use the online SMPP Load Test tool >

SMPP Analyser

The SMPP Analyser acts as an SMPP proxy, with the client application binding to the service and the service onward binding to the SMSC or SMS Gateway. Packet captures can be viewed in your browser or exported into Wireshark.
Use the online SMPP Analyser >

Message Hub

Message routing between applications (uses SMPP protocol). For use in IoT, chat applications, asyncronous notification in web applications, and other applications.
Message Hub documentation >

Other

Find out more...

Please provide your name.
Please provide a valid company name.
Please type your message.
Please provide a valid email address.