SMPP v3.3 & v3.4 Integration Guide
Everything you need to establish and maintain an SMPP connection to the SBS TELECOM platform — connection parameters, bind types, PDU reference, TPS configuration, and production best practices.
Connection Parameters
Use the following parameters to establish your SMPP session. Credentials (system_id and password) are provisioned when your SMPP account is created.
SMPP v3.3 and SMPP v3.4smpp.sbstelecom.co.uk2775 (standard) · 8775 (SSL/TLS)system_id and password provided at account provisioningRequired every 60 seconds or less to maintain sessionConfigurable per account (contact your account manager)Configurable — contact us for multi-bind requirementsDelivered via deliver_sm on the same or a receiver bindSession Establishment
import smpplib.client
import smpplib.gsm
import smpplib.consts
client = smpplib.client.Client(
'smpp.sbstelecom.co.uk', 2775
)
client.connect()
client.bind_transceiver(
system_id='YOUR_SYSTEM_ID',
password='YOUR_PASSWORD',
system_type='',
addr_ton=smpplib.consts.SMPP_TON_INTL,
addr_npi=smpplib.consts.SMPP_NPI_ISDN,
)
# Session is now active
# Send submit_sm PDUs to deliver messagesChoosing the Right Bind Type
bind_transmitterTransmitter
Send-only bind. Use when your application only needs to submit outbound messages (MT) and does not need to receive delivery receipts or inbound messages via SMPP.
bind_receiverReceiver
Receive-only bind. Use when your application only needs to receive inbound messages (MO) or delivery receipts, and does not submit outbound messages.
bind_transceiverTransceiver
Bidirectional bind combining transmitter and receiver functionality. The most common choice for most integrations — send MT messages and receive delivery receipts on the same connection.
Supported PDU Types
bind_transmitter / bind_receiver / bind_transceiverClient → ServerEstablish an SMPP session in the specified bind mode.submit_smClient → ServerSubmit an outbound SMS message for delivery.submit_sm_respServer → ClientAcknowledgement of submit_sm with message ID and status.deliver_smServer → ClientDelivery receipt or inbound MO message delivered to your application.deliver_sm_respClient → ServerAcknowledgement of deliver_sm. Must be sent promptly to prevent congestion.enquire_linkBothKeepalive PDU to maintain the session when no traffic is flowing. Send at least every 60 seconds.enquire_link_respBothResponse to enquire_link.unbindBothGracefully terminate the SMPP session.Production Best Practices
Following these practices will ensure your SMPP integration operates reliably in production with maximum uptime.
- Implement enquire_linkSend enquire_link at least every 60 seconds when no other PDUs are being exchanged to keep the session alive.
- Respond to deliver_sm promptlyAlways send deliver_sm_resp immediately. Delayed responses cause server-side queuing and session degradation.
- Implement exponential backoffOn connection failure, use exponential backoff with jitter before reconnecting — don't hammer the server.
- Handle session loss gracefullyYour application should detect session loss, log the event, and initiate a clean reconnect without losing queued messages.
- Respect TPS limitsSubmit messages at or below your agreed TPS. Exceeding TPS results in throttle responses and queued messages.
- Use sequence numbers correctlyIncrement sequence numbers per session and match responses to requests. Do not reuse sequence numbers.
Managing Throughput
Your SMPP account is provisioned with a configured TPS (transactions per second) limit. This determines the maximum message submission rate.
If you exceed your TPS, the server returns ESME_RTHROTTLED. Implement backpressure — pause submissions briefly and retry. Do not close the session on throttle.
# submit_sm_resp with throttle command_status: ESME_RTHROTTLED (0x00000058) # Recommended: back off 100ms and retry # Do NOT disconnect on throttle
Contact your account manager to increase your TPS allocation. Higher TPS tiers are available for enterprise accounts.
Ready to Connect via SMPP?.
Contact our technical team for SMPP credentials, TPS configuration, and integration support.