SMPP API: Overview

SMPP Versions

The TeletopiaSMS SMPP server supports both versions 3.3 and 3.4 of the SMPP specifications.

Our SMPP server implementation supports exceeding the password length limitations specified in the SMPP specification.

Connections

We provide primary and backup SMPP servers for redundancy and failover.

The supported bind types are TRANSCEIVER, TRANSMITTER and RECEIVER, and all combinations of bind types are supported on the same account.

We require all the client IP-addresses to be put on an allow-list in order to connect. Secure connections over TLS are also supported.

Default server side values for SMPP connections:

Enquire Link Frequency120 seconds (unless there is activity)
Enquire Link Timeout20 seconds
PDU Send timeout20 seconds
Maximum number of binds2
Throughput: SMS per second (send / receive)10 / unlimited
Default character encodingGSM byte encoded/unpacked (1 byte per character)

NOTE: If the configured maximum throughput is exceeded, the connection will be throttled.

Delivery reports

The format of the delivery receipt follow the format shown in the SMPP v3.4 specification. We have listed some notes about our implementation below.

Delivery report formats

Successfully delivered message:

id:A9612169BCE0E128C56D061DE8F2491B sub:001 dlvrd:001 submit date:2210251754 done date:2210251754 stat:DELIVRD err:000 text:

Failed delivery of message:

id:DE14922826F8753DF305FB90E52B04D9 sub:001 dlvrd:001 submit date:2210251754 done date:2210251754 stat:UNDELIV err:081 text:

The parameters in the delivery receipt text are as follows:

ParameterDescription
idThe message id returned when submitting the message
subNot used, always set to 1
dlvrdNot used, always set to 1
submit dateThe time and date at which the short message was submitted (format YYMMDDhhmm)
done dateThe time and date at which the short message reached it's final state. The format is the same as for the submit date.
statThe final status of the message. The possible values on the TeletopiaSMS SMPP server are:
  • DELIVRD - Message is delivered to destination
  • UNDELIV - Message is undeliverable (see error code for more information)
  • REJECTD - Message is in a rejected state (see error code for more information)
  • EXPIRED - Message validity period has expired (see error code for more information)
err3 character length error code in decimal. See the error codes used by the TeletopiaSMS SMPP server for more information.
textThis field will always be empty

Delivery report TLV

In addition to the delivery report text shown above, we can also send delivery status using SMPP optional parameters (TLV). The TLV parameters used are:

  • receipted_message_id (0x001E) - Containing the message id returned in submit_sm_resp (null terminated octet string)
  • message_state (0x0427) The final state of the message
    • 2 - DELIVERED - Message is delivered to destination
    • 3 - EXPIRED - Message validity period has expired (see error code for more information)
    • 5 - UNDELIVERABLE - Message is undeliverable (see error code for more information)
    • 8 - REJECTED - Message is in a rejected state (see error code for more information)

Supported PDU packets

The following is the supported PDU packets on the TeletopiaSMS SMPP server:

  • generic_nack
  • bind_receiver
  • bind_receiver_resp
  • bind_transmitter
  • bind_transmitter_resp
  • submit_sm
  • submit_sm_resp
  • deliver_sm
  • deliver_sm_resp
  • unbind
  • unbind_resp
  • bind_transceiver
  • bind_transceiver_resp