SMPP
Connect to our Messaging Platform via SMPP.
Clients can use SMPP to deliver and receive mobile terminated (MT) messages, mobile originated (MO) messages and delivery reports (DLR messages) to and from the CM.com SMS gateway. CM.com supports SMPP protocol version 3.4.
If you would like to get the South African SMPP settings, please reach out to your Account Manager.
The following SMPP server endpoints are connected through our global load balancer.
- smpp_gw.messaging.cm.com:30006
- smpp_sgw.messaging.cm.com:30007
Delivery receipts
Delivery receipts are sent in the short_message field of a deliver_sm or the message_payload TLV of a data_sm PDU, as per account configuration. In both cases, the message state is available as a message_state TLV attached to the PDU as well as in the actual receipt. Use whichever is more convenient.
Global description
The following format is used:
id:IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII submit date:yyyyMMddHHmmss done date:yyyyMMddHHmmss stat:SSSSSSS err:EEE
The number and order of fields is fixed, and they are separated by a single ASCII space. It is unwise to depend on this, however; for extendibility, you should not assume any number or ordering of fields and accept arbitrary whitespace as separator.
Similarly, though sizes are specified, strings not of fixed length may vary in size -- the specified size only reflects the maximum returned size as currently implemented. In no case will the total message length exceed 255 characters, however.
Field breakdown
Field | Size | Type | Description |
---|---|---|---|
id | 32 | string | The message ID allocated to the message by the SMSC when originally submitted. |
stat | 7 | Fixed length string | The final status of the message as specified in Table Message state values or ENROUTE for receipts of pending messages. |
submit date | 14 | Fixed length string | The time and date at which the short message was sent. Formatted: yyyyMMddHHmmss |
done date | 14 | Fixed length string | The time and date at which the short message reached its final state. Formatted: yyyyMMddHHmmss |
Message state values
Message state | Final message states | Description (from SMPP standard) | CM.com specific description |
---|---|---|---|
DELIVERED | DELIVERD | Message is delivered to destination. | Message was delivered at the handset. |
EXPIRED | EXPIRED | Message validity period has expired. | |
DELETED | DELETED | Message has been deleted. | Not used. |
UNDELIVERABLE | UNDELIV | Message is undeliverable. | Message was not delivered at the handset. |
ACCEPTED | ACCEPTD | Message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service). | Message has been buffered at the operator network. |
UNKNOWN | UNKNOWN | Message is in an invalid state. | Not used. |
REJECTED | REJECTD | Message is in a rejected state. | Message was not accepted by the server. |
Notable differences with the example format given in the standard:
- Strings are not zero-terminated but whitespace-separated. As such, no string contains whitespace.
- The message id is not a 10-digit decimal but a 32-character string.
- The date specifies a 4-digit year, not a 2-digit one, and includes seconds.
- The 'sub', 'dlvrd' and 'text' fields are not available.
Single connection
In order to use a single connection to send messages for all operators and tariffs the following proprietary TLVs are supported for both the DELIVER_SM PDUs and the SUBMIT_SM PDUs (please note that the tariff TLV is not yet used for DELIVER_SM PDUs). The "basic unit" of the tariff field is presently cents for all accounts.
Field | Size octets | Type | Description |
---|---|---|---|
Parameter tag | 2 | Integer | 0x1401 |
Length | 2 | Integer | Length of Value part |
Value | 1-7 | C-Octet string(Decimal) | MCC/MNC of operator |
Field | Size octets | Type | Description |
---|---|---|---|
Parameter tag | 2 | Integer | 0x140A |
Length | 2 | Integer | Length of Value part |
Value | 1-6 | C-Octet string(Decimal) | Tariff in basic unit |
Updated 3 months ago