MX Telecom SMS Gateway SMPP Interface - Details
Overview
The MX Telecom SMPP interface supports a subset of the SMS Forum's SMPP v3.4 Specification (http://smsforum.net). It is backwards compatible with Logica's SMPP v3.3.
- Supported SMPP versions and PDUs
- Binding with the SMPP interface
- Supported characters
- SMPP v3.4 TLV Parameters
- Account Setup
Supported SMPP versions and PDUs
The SMPP interface supports a subset of the SMS Forum's SMPP v3.4 specification, and is backward compatible with Logica's Telepath implementation of SMPP v3.3. It also supports multiple binds for redundancy and load-balancing.
The following PDUs are supported:
- BIND_TRANSMITTER
- BIND_RECEIVER
- BIND_TRANSCEIVER
- UNBIND
- SUBMIT_SM
- ENQUIRE_LINK
- DELIVER_SM (initiated by MX Telecom)
The SMS Gateway will respond with a GENERIC_NACK reply to any other PDUs.
Binding with the SMPP interface
The SMPP interface is as similar as possible to the Logica Telepath implementation, with additional TLVs that provide:
- Identification of yourself, the carrier, and the SMS
- Extended delivery report information
- The ability to add note and subaccount information
- Age verification information from the carrier
The SMS Gateway's inactivity timeout is set at five minutes. It is recommended that SMPP clients send ENQUIRE_LINK every minute.
We also recommend binding as transceiver rather than transmitter and receiver if possible.
If the additional TLVs do not distinguish your messaging enough, or you require more messaging throughput, you can use multiple binds to the SMPP interface. Binds can be per carrier if required.
Note that for Partner -> MX TLVs which have a value specified to be of type C-Octet String, terminating the string with a null byte is optional. We recommend adding the null byte; however, if it is missing the parameter should still be passed correctly by the SMS Gateway.
For MX -> Partner TLVs which have a value specified to be of type C-Octet String, the SMS Gateway will always add the terminating null byte.
Supported characters
| data_coding value | Character set |
|---|---|
| 0 | Modified Latin-9 |
| 1 | GSM 03.38 |
| 4 | 8-bit binary |
| 8 | UCS2 |
| F7 | GSM 03.38 class 3 |
The default character set is Modified Latin-9.
See our FAQ for a description of the Modified Latin-9 and GSM 03.38 character sets.
SMPP v3.4 TLV Parameters
The SMPP v3.4 TLV parameters are detailed below.
TLVs for mobile originated (MO) messages
-
ID: 0x3050
Name: AV Status
Direction: MX -> Partner
Length: 2
Value: 0 if Age verification failed; 1 if it passed. Other values are reserved and should be ignored.
This optional parameter is passed if Age Verification is enabled for MO messages to a particular Short Code.
-
ID: 0x3040
Name: Message ID
Direction: MX -> Partner
Length: Variable
Value: String (not null terminated).
This is an optional parameter that can be included with MO messages. It is the SMS ID used to uniquely identify an SMS message as it passes through the SMS Gateway. It is a positive 64 bit integer that, when sent as a Message ID value, is formatted into a decimal and passed as a string. In our billing records, the SMS ID appears against the message.
-
ID: 0x3010
Name: Operator code
Direction: MX -> Partner
Length: Variable
Value: String (not null terminated). See Network Codes.
This signifies which operator the originating MSISDN belongs to for MO messages, rather than relying on one pipe per operator.
TLVs for mobile terminated (MT) messages
-
ID: 0x3000
Name: MT Username
Direction: Partner -> MX
Length: Variable
Value: C-Octet String.
This parameter, used for MT messages, encompasses the destination operator for the message, the tariff and any other information that might be relevant (age verification requirements, subscription status etc).
-
ID: 0x3031
Name: Note
Direction: Partner -> MX
Length: Variable 1-160 bytes + optional null byte
Value: C-Octet String.
This TLV allows you to specify a "note" for the message that is stored in the billing record. This has no effect on the delivery of the message but can be used as opaque data.
-
ID: 0x3030
Name: Subaccount
Direction: Partner -> MX
Length: Variable 1-30 bytes + optional null byte
Value: C-Octet String.
This TLV allows you to specify the sub-account to be stored in the transaction log. The MX Telecom Partner Center can provide reporting based on this field. Sub-accounts do not need to be preconfigured.
-
ID: 0x3070
Name: Purpose code
Direction: Partner -> MX
Length: Variable
Value: String (see below)
Verizon requires you to identify the purpose of some standard rate messages sent as part of a premium rate campaign. The possible values are:
| Value | Description |
|---|---|
| opt_in_premium | Use for standard rate messages sent during the opt-in process. |
| premium_content | Use when delivering purchased premium content in a standard rate message. |
This TLV is required by T-Mobile in the United States only.
-
ID: 0x3060
Name: Optin1
Direction: Partner -> MX
Length: Variable
Value: C-Octet string
This TLV describes how the first opt-in occurred. It takes the format source:sourceid, where both source and sourceid are mandatory.
It is required for premium rate messages on services that require double or single opt-in.
| Value | Description |
|---|---|
| sms:smsid | The SMS ID returned by the SMS Gateway that corresponds to the first mobile
originated (MO) SMS opt-in message. For example: sms:123455678 |
| url:website | The URL where a web opt-in occurred. For example: url:http://example.com |
| other:text | Description of any other opt-in scenario. For example: other:at+point+of+sale |
This TLV is required by T-Mobile in the United States only.
-
ID: 0x3061
Name: Optin1TS
Direction: Partner -> MX
Length: 4
Value: unsigned 32-bit integer
This TLV specifies the time that the first opt-in occurred. This timestamp is in seconds since 01/01/1970 (also known as a Unix timestamp). For example, the 5th September 2010 at 07:30:00 is: 1283689800. You do not need to specify this parameter if the end user's first opt in was through an SMS message, i.e., where the value of Optin1 is sms:smsid.
This TLV is required by T-Mobile in the United States only.
-
ID: 0x3062
Name: Optin2
Direction: Partner -> MX
Length: Variable
Value: C-Octet string
This TLV describes how the second opt-in occurred. It takes the format source:sourceid, where both source and sourceid are mandatory.
It is required for premium rate messages on services that require double opt-in.
| Value | Description |
|---|---|
| sms:smsid | The SMS ID returned by the SMS Gateway that corresponds to the second mobile
originated (MO) SMS opt-in message. For example: sms:123455678 |
| url:website | The URL where a web opt-in occurred. For example: url:http://example.com |
| other:text | Description of any other opt-in scenario. For example: other:at+point+of+sale |
| pin:text | PIN used for PIN opt-in services. For example: optin2=pin:1337 |
This TLV is required by T-Mobile in the United States only.
-
ID: 0x3063
Name: Optin2TS
Direction: Partner -> MX
Length: 4
Value: unsigned 32-bit integer
This TLV specifies the time that the second opt-in occurred. This timestamp is in seconds since 01/01/1970 (also known as a Unix timestamp). For example, the 5th September 2010 at 07:30:00 is: 1283689800.
You do not need to specify this parameter if the end user's second opt in was through an SMS message, i.e., where the value of Optin2 is sms:smsid.
TLVs for delivery reports
-
ID: 0x001E
Name: receipted_message_id
Direction: MX -> Partner
Length: Variable
Value: C-Octet String.
The receipted_message_id is a standard SMPP TLV parameter passed in delivery reports. This is the SMS ID used to uniquely identify an SMS message as it passes through the SMS Gateway. It is a positive 64 bit integer that, when sent as a receipted_message_id value, is formatted as a hexadecimal number and null terminated. The SMS ID in the delivery report will match the ID returned by the SMS Gateway when the message was originally submitted.
-
ID: 0x3020
Name: Report reason
Direction: MX -> Partner
Length: 4 bytes
Value: Unsigned 32bit Integer, as defined on the Delivery Report Reasons page.
This is an extension of the delivery report status; the information that is available varies from operator to operator.
Account Setup
Please contact us for further information.

