SMPP Server API#

This document is targeted at software designers/programmers wishing to integrate SMS messaging through a stateful tcp protocol SMPP v3.4, if you feel this does not fit your needs and that you are more “web-service-guy” then you still can try HTTP API.

SMS Messages can be transmitted using SMPP protocol, the following requirements must be met to enable the service :

  • You need a Jasmin user account

  • You need sufficient credit on your Jasmin user account [1]

Note

The ABCs:

  • MT is referred to Mobile Terminated, a SMS-MT is an SMS sent to mobile

  • MO is referred to Mobile Originated, a SMS-MO is an SMS sent from mobile

Features#

The SMPP Server API allows you to send and receive SMS and delivery receipts (DLR) through Jasmin’s connectors, send and receive long (more than 160 characters) SMS and unicode/binary content.

jasmin.cfg / smpp-server#

The jasmin.cfg file (INI format, located in /etc/jasmin) contain a section called smpp-server where all SMPP Server API related config elements are:

 1[smpp-server]
 2id            = "smpps_01"
 3bind          = 0.0.0.0
 4port          = 2775
 5
 6sessionInitTimerSecs = 30
 7enquireLinkTimerSecs = 30
 8inactivityTimerSecs  = 300
 9responseTimerSecs    = 60
10pduReadTimerSecs     = 30
11
12log_level          = INFO
13log_file           = /var/log/jasmin/default-smpps_01.log
14log_format         = %(asctime)s %(levelname)-8s %(process)d %(message)s
15log_date_format    = %Y-%m-%d %H:%M:%S
[smpp-server] configuration section#

Element

Default

Description

id

smpps_01

The SMPP Server id, used to identify the instance in case you use multiple servers per Jasmin process.

bind

0.0.0.0

The SMPP Server API listener will only bind to this specified address, given 0.0.0.0 the listener will bind on all interfaces.

port

2775

The binding TCP port.

sessionInitTimerSecs

30

Protocol tuning parameter: timeout for a bind request.

enquireLinkTimerSecs

30

Protocol tuning parameter: timeout for an enquire_link request.

inactivityTimerSecs

300

Protocol tuning parameter: inactivity timeout.

responseTimerSecs

60

Protocol tuning parameter: global request timeout.

pduReadTimerSecs

30

Protocol tuning parameter: binary pdu ready timeout.

log_*

Python’s logging module configuration.

Binding to SMPP Server#

Using a proper SMPP Client application (or a Jasmin SMPP Client), the following parameters must be considered:

SMPP Server binding parameters#

Parameter

Value / Pattern

Example(s)

Presence

Description / Notes

system_id

Text (30 char. max)

jasmin_user

Mandatory

Username for Jasmin user account.

password

Text (30 char. max)

jasmin_pass

Mandatory

Password for Jasmin user account.

Supported SMPP PDUs#

Jamsin’s SMPP Server is supporting the following PDUs:

  • bind_transmitter

  • bind_transceiver

  • bind_receiver

  • unbind

  • submit_sm

  • deliver_sm

  • enquire_link

Footnotes