SMS2Serve Router
SMS2Serve Router
SMS2Serve Router
SMPP-gateway software
manual
SMS2Serve Router Component
http://www.sms2serve.com
EDISON
01.10.2010
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
Table of Contents
Introduction ................................................................................................................................... 2
Features ......................................................................................................................................... 2
Functions ....................................................................................................................................... 2
System Requirements.................................................................................................................... 5
SMPP Router Configuration ......................................................................................................... 5
Appendix 1 – List of status codes ............................................................................................... 12
Appendix 2 – Demonstration configuration file ......................................................................... 13
Introduction
SMS2Serve Router – is a reliable high-performance SMS-router that is easy to set up. Its great
performance makes it possible to overcome many of the difficulties that occur within the working process.
For instance, the presence of damaged network components, network attacks, restarts following power
failures and extremely high user traffic. The gateway is based on SMPP v3.4 protocol (Issue 1.2,
11/12/1999).
Features
Our reliable tried and tested telecommunications platform provides the following features:
1. Compatibility with different types of OS: Windows, Linux, Solaris and MacOS
2. SMPP, XML, HTTP, SMTP protocol support
3. Available platforms - Java, .NET
4. Message routing
5. Separate message queue for each connector
6. Convenient VSME-module development
7. High system performance designed to enable the processing of 30 sms messages per second
Functions
The main function of the gateway is to “virtualize” the connection to the Short Message Servicing
Centre (SMSC) and to support the several virtual SMS-services (VSME) that work with it.
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
Main components:
The gateway establishes a connection with the SMSC using various IP addresses. One primary IP
address is selected with the others acting as backups. If there is a loss of connection on the main interface, a
new connection is established via the backup interfaces. The connection status can be checked using the
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
ENQUIRE_LINK command that is sent to all SMSCs. There are different types of SMSC connectors for
different SMSCs. There is also a timer for every SMSC connection.
The SMSC queue module only transfers messages to the routing module if they are related to SMS
transfer.
Routing module
The routing module provides routing and bidirectional message transmission between the SMSC and
VSME. Path selection is based on route configuration data analysis.
Routing rules for the text contained in messages allow for the following templates:
The rules are outlined in the form of conditions and are similar to those of program firewalls. If a
transmission route is not specified, an appropriate line will be allocated (this may be configured in setting).
The connection between the VSME and the gateway is provided through the TCP/IP. The connection
between the VSME and the gateway is verified using connection data (login and password). If the
connection is lost, the system will reestablish it without informing the VSME. All incoming messages
received at the time the VSME connection was lost are saved to the database and are sent to the VSME
immediately after the connection is reestablished.
Database
MySQL and MS SQL are used as a database. Delayed messages are stored in a certain table within
the database.
Statistics
The gateway supports the gathering of statistics on incoming and outgoing SMS messages within the
database. The table of statistics includes the following fields:
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
Addr – address to which the message is sent, or the one that sent the message
Log
The system log records events and data relating to them, including: event time, module, event type
and detailed information on it. There are several logging regimes - from fatal error logging to test mode.
While using test mode the system records all possible events.
System Requirements
Work using the Linux operating system on the server (one processor Intel 2 GHz, 256 Mb RAM). It
is possible to work with several processors and system tweaks on the Sun Solaris platform.
Parameter = value
If there are several values, they are divided by the symbol “;” (without quotation marks). In order to
transfer a new value to a new line, the symbol “\” (without quotation marks) must be used at the end of the
previous line. The list of values must end with the symbol “;” (without quotation marks).
Example:
value3;
For the sake of convenience, the contents of the configuration file are divided into the following
sections:
control.port local TCP/IP port number, which is responsible for program control
(e.g. STOP and RESTART commands, etc).
control.encoding control.encoding encoding of text messages transferred between
the basic program and control program.
Admissible settings values:
Cp866, Cp1251, Windows-1251, KOI8_R, ISO8859_5, MacCyrillic
It is possible to set any value for parameters from the SMSC default section. However, the default
value for this given connector will be cancelled.
{имя коннектора} the connector ID must have a “connector” value. If this value is not
specified or is incorrect, this connector will not be initialized.
{имя коннектора}.class connector class name
Possible values:
ru.edsd.smpp_router.connector.SMSCAsyncConnector – connector
used for SMSC connection. This connector can provide a non-
synchronic algorithm for message-dispatch queues.
ru.edsd.smpp_router.connector.SMSCSyncConnector - connector
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
Секция параметров для коннектора VSME (данная секция описывается для каждого
коннектора
{имя коннектора} the connector ID must have a “connector” value. If this value is
not specified or is incorrect, this connector will not be initialized.
{имя коннектора}.class connector class name
Possible values:
ru.edsd.smpp_router.connector.VSMEAsyncConnector – connector
used for VSME connection. This connector can provide a non-
synchronic algorithm for message-dispatch queues.
ru.edsd.smpp_router.connector.VSMESyncConnector – connector
used for VSME connection. This connector can provide a
synchronic algorithm for message-dispatch queues.
{имя коннектора}.connect.accept_port TCP/IP port where the connection with be established
{имя коннектора}.bind.system_id BIND command settings, which will be used to indicate a
successful connection. Invalid settings will cause connection
request denial and session termination.
{имя коннектора}.bind.password authentication password.
{имя коннектора}.script.start script that will be used before initializing a physical connection.
The script must be located in the “script” folder. However, only
the file name is specified in the settings (without subfolder
indication). If there is no value for this parameter then no action
will be carried out.
{имя коннектора}.script.stop script that will be used after the termination of a physical
connection or in case of a connection error.
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
control.port = 3500
control.encoding = KOI8_R
########################################################################
logger.file.dir = logs
logger.file.level = INFO
logger.file.encoding = Cp1251
logger.console.level = INFO
logger.console.encoding = Cp1251
########################################################################
database.driver_packet = mysql-connector-java-3.0.16-ga-bin.jar
database.driver_class = com.mysql.jdbc.Driver
database.connection_str =
jdbc:mysql://127.0.0.1/smpp_router?useUnicode=true&characterEncoding=Cp1251
database.user_name = root
database.user_pwd = 123
database.time_live_router_info = 60
########################################################################
report.enabled = false
report.mail.host =
report.mail.from =
report.mail.to =
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
########################################################################
SMSC.log_level = ALL
SMSC.timeout_shutdown = 10
SMSC.enquire_link.send = true
SMSC.enquire_link.timeout_wait = 60
SMSC.enquire_link.timeout_wait_resp =3
SMSC.protocol.timeout_err_net = 60
SMSC.protocol.timeout_stop_send = 30
SMSC.protocol.timeout_wait_unbind_resp = 5
SMSC.protocol.status_stop_send = ESME_RMSGQFUL;\
ESME_RTHROTTLED;
SMSC.connect.reconnect = true
SMSC.connect.timeout_error_report = 1800
SMSC.connect.try_count =2
SMSC.connect.try_delay = 30
SMSC.connect.time_out = 20
SMSC.connect.timeout_wait_bind = 10
SMSC.connect.from_host = localhost;
SMSC.route.status_not_route = ESME_ROK
SMSC.route.status_not_connect = ESME_ROK
SMSC.route.status_not_connect_database = ESME_RSYSERR
########################################################################
VSME.log_level = ALL
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
VSME.timeout_shutdown = 10
VSME.script.dir = script
VSME.enquire_link.send = true
VSME.enquire_link.timeout_wait = 30
VSME.enquire_link.timeout_wait_resp =2
VSME.protocol.timeout_err_net = 30
VSME.protocol.timeout_stop_send = 30
VSME.protocol.timeout_wait_unbind_resp = 5
VSME.protocol.status_stop_send = ESME_RMSGQFUL;\
ESME_RTHROTTLED;
VSME.connect.reconnect = true
VSME.connect.timeout_error_report = 1800
VSME.connect.try_count =3
VSME.connect.try_delay =1
VSME.connect.time_out = 60
VSME.connect.timeout_wait_bind = 10
VSME.connect.accept_host = localhost;
VSME.route.status_not_route = ESME_RINVDSTADR
VSME.route.status_not_connect = ESME_RTHROTTLED
VSME.route.status_not_connect_database = ESME_RSYSERR
########################################################################
SMSC_test_1 = connector
SMSC_test_1.class = ru.imtco.smpp_router.connector.SMSCSyncConnector
SMSC_test_1.connect.host = localhost
SMSC_test_1.connect.port = 3100
SMSC_test_1.bind.type = BIND_TRANSCEIVER
EDISON. Software Development Centre
http://www.edsd.com
SMS2Serve
http://www.sms2serve.com
SMSC_test_1.bind.system_id = test_1
SMSC_test_1.bind.password = test_1
SMSC_test_1.bind.system_type = logic
SMSC_test_1.bind.addr_ton = UNKNOWN
SMSC_test_1.bind.addr_npi = UNKNOWN
SMSC_test_1.bind.address_range =
########################################################################
VSME_test_1 = connector
VSME_test_1.class = ru.imtco.smpp_router.connector.VSMEAsyncConnector
VSME_test_1.connect.accept_port = 4100
VSME_test_1.bind.system_id = test
VSME_test_1.bind.password = 123
VSME_test_1.script.start = start_vsme_1.bat
VSME_test_1.script.stop =
########################################################################
VSME_test_2 = connector
VSME_test_2.class = ru.imtco.smpp_router.connector.VSMEAsyncConnector
VSME_test_2.connect.accept_port = 4200
VSME_test_2.bind.system_id = test
VSME_test_2.bind.password = 123
VSME_test_2.script.start =
VSME_test_2.script.stop =
########################################################################
########################################################################