An SMPP Connect is your platform’s bind to an upstream operator or vendor. Every route you build sends traffic through one or more connects, so the settings on a connect affect cost, throughput, sender ID handling and DLR accuracy for every client on those routes.

Before you start

Collect these from your vendor in writing:

  • SMSC IP, TX/TRX port and RX port (if separate)
  • System ID, password and system type
  • Allotted TPS and number of sessions (TRX/TX and RX)
  • Billing basis: on submit or on delivery
  • Required TON/NPI values, sender ID rules and (for India) DLT tag requirements
  • Their error code list (for mapping; see How to Map Vendor Error Codes to Global Error Codes)

Also create the vendor under Vendors (Name + HTTP API URL) first, so you can pick it in the connect’s Error Code Map (Vendor) field.

Where to find it

Sidebar → SMPP Client → Connects → click Add.

Basic tab

FieldWhat to enter
Connect NameUnique, alphanumeric, underscores allowed, no spaces, e.g. VendorA_TRANS_01
DescriptionRoute purpose, e.g. “Vendor A – transactional India”
Billing MethodSUBMIT or DELIVERED, matching how the vendor bills you
Account TypeTRANSACTIONAL (24×7) or PROMOTIONAL (restricted sending window)
Error Code Map (Vendor)The vendor whose error mapping applies to this connect
Price MapThe vendor pricing plan used for cost tracking
Cost/RateYour per-message cost on this connect
StatusENABLED, DISABLED or DELETED

Connection tab

FieldNotes
SMSC/Vendor IPThe vendor’s SMPP server address
System Id/Username, Password, System TypeExactly as issued by the vendor
Outgoing SetupWhich of your servers opens the bind (Localhost or a remote server). Use the one whose IP the vendor has whitelisted
TPSThe vendor’s allotted throughput. Never set this higher than agreed; vendors throttle or disconnect
Bind/Connect ModeTRX (one transceiver bind) or TX and RX (separate transmitter/receiver)
TR/TRX Port, TR/TRX SessionsPort and session count for TX/TRX
RX Port, RX SessionsOnly for TX + RX mode

TON/NPI tab

Set dest_addr_ton/npi, alpha_source_addr_ton/npi and numeric_source_addr_ton/npi as the vendor specifies. -1 leaves the value unset. Wrong TON/NPI is a common cause of alphanumeric sender IDs being replaced or messages being rejected. See What is TON and NPI in SMPP?

Sender ID tab

  • Operator Prefix: a prefix added to sender IDs, e.g. BH-.
  • SenderId Type:
    • DYNAMIC: pass through the client’s sender ID
    • FIXED: always use the fixed list
    • ONLY_APPROVED: only approved sender IDs are allowed
    • APPROVED_FAILOVER_FIXED: use the approved sender ID, and fall back to the fixed list if it isn’t approved
  • Fixed Sender Id List: one per line; used when no sender ID is passed.

Delivery Report tab

Set the vendor’s DLR time zone, whether to modify the time zone or override delivery time, message validity support, and the date format (yyMMddHHmmss or yyMMddHHmm). Getting these right makes delivery timestamps in your clients’ reports accurate.

DLT tab (India)

  • DLT Enable, DLT Telemarketer ID
  • Send DLT Template ID: Yes, if the vendor expects the template ID on submit
  • Reject Non DLT Template Message: Yes rejects messages where no DLT template ID is found
  • The Entity ID, Template ID and Telemarketer ID tags are read-only; they show which TLVs carry these values

Click Submit to create the connect.

Bringing the connect online

  1. Edit the new connect and set it to Enabled.
  2. In the Connection manager for that connect, run reload/reconfigure.
  3. Confirm the Sessions column shows the expected number of connected sessions.
  4. Go to System → Controls → SMPP Client and Stop, then Start, the Connect Manager so a queue is created for the new connect.
  5. Send test messages through a test route before adding the connect to any client route.

Common mistakes

  • Billing Method doesn’t match the vendor contract: your margin reports will be wrong from day one.
  • TPS set above allocation: causes throttling errors and queue build-up on your side.
  • Outgoing Setup on a server the vendor hasn’t whitelisted: the bind never comes up.
  • No error mapping for the vendor: clients receive UNDEFINED statuses.

Related articles