Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Technical Description
Jinny Short Message Service Centre Technical Description
Copyright
Copyright 1997 2011 Jinny Software Ltd. All rights reserved. No part
of this publication, or any software included with it may be reproduced,
stored in a retrieval system, or transmitted in any form or by any means,
including photocopying, electronic, mechanical, recording, or otherwise,
without the prior written permission of the copyright holder.
This document contains proprietary information of Jinny Software Ltd. The
contents are confidential and any disclosure to persons other than the
officers, employees, agents, or subcontractors of the owner or licensee of
this document, without the prior written consent of Jinny Ltd. is strictly
prohibited.
Disclaimer
Jinny makes no representations or warranties with respect to the contents
hereof and specifically disclaims any implied warranties of merchantability
or fitness for any particular purpose. Further, Jinny reserves the right to
revise this publication and to make changes from time to time in the
contents hereof without obligation to notify any person of such revision or
changes.
Feedback
Jinny endeavours to provide accurate and useful documentation for all
Jinny products. To achieve this goal, the documentation group welcomes
your comments and suggestions regarding any aspect of Jinny user
documentation. Send your comments by e-mail to: documents@jinny.ie
Revision History
Version Date Author Modifications
0.1 CFI Initial version
Added MHAs contribution and material from external
0.2 2001-02-25 MHA.TMC
version of this document
Added RAM handling of first time messages and
1.0 2001-06-26 BMC
message handling flow charts
Jinny Short Message Service Centre Technical Description
Statistics
Added GSM to iDEN conversion (section Network
3.6.7 2008-06-27 MHA Interconnect) and related configuration parameters
Updated SMSC global configuration
3.6.8 2008-10-30 FKO Added SMSC charging scenarios
3.6.9 2008-11-06 JSH Remove Hardware Part
Updated configuration and counters
3.6.10 2009-02-20 MHA
Added SMSC-SNMP traps
Added charging parameters sent to the RTCG.
3.6.11 2009-04-09 FKO.JSH
Minor modifications in the charging scenarios.
Added section describing the different SMSC internal
3.6.12 2009-08-05 FKO.JSH
configurable service types
3.6.13 2009-08-11 MHA.JSH Added the Trace section
3.6.14 2009-09-01 PGH.JSH Updated the distribution lists section.
Updated the lawful interception section.
3.6.15 2009-11-06 PGH.JSH.FKO Added description of translation files in the ini file
Added charging error notification
Corrected aim_type DL value in SMSC history file
Added nodes section in SMSC local configuration
Added spam_check_mo_address_range
3.6.16 2010-04-19 MHA
configuration parameter
Added the prepaid sequence id to the GSM MO and
MT TLR
3.6.17 2011-03-16 FKO.JSH Added Prepaid TLR description
Updated the SMPP AIM Configuration
3.6.18 2011-03-24 PGH.JSH.MHA Added user_response to CDMA/TDMA Short Message
TLR (MO and MT)
3.6.19 2011-04-06 MHA.JSH Added Sample TLRs
- Added prepaid_seqid to GSM Status Report TLR
3.6.20 2011-08-29 MHA.JSH - Fixed description of status, command and
cmd_type in SMSC History File
Preface
About this document
This document provides a technical description of the Jinny Short
Message Service Centre (SMSC). It describes the systems behaviour,
the interfaces, the architecture, the internal operations, as well as the
standards conformance. It also includes hardware and operating system
specifications.
Contents
1. Product Change Log ................................................... 11
2. Overview ................................................................ 12
3. System Context ........................................................ 13
3.1. SMSC Software ............................................................... 13
3.2. SMSC Modes of Operation.................................................. 14
3.3. SMSC Network Architecture............................................... 14
3.3.1. SMSC Server High Availability ...................................................... 14
3.3.2. IP Failover .............................................................................. 14
4. Interfaces ............................................................... 15
4.1. Signalling Interface Unit ................................................... 15
4.2. OAM System .................................................................. 15
4.3. Billing System ................................................................ 16
4.4. Prepaid System .............................................................. 17
4.5. External Short Message Entity (ESME) Interfaces ..................... 18
4.5.1. Receiver ................................................................................ 18
4.5.2. Transmitter ............................................................................ 18
4.5.3. Routing .................................................................................. 25
4.5.4. Provisioning ............................................................................ 26
4.5.5. Charging ................................................................................ 27
4.5.6. Statistics ................................................................................ 27
4.5.7. Regulation .............................................................................. 27
4.5.8. ESME Queues ........................................................................... 27
4.5.9. SMPP ..................................................................................... 28
4.5.10. EMI .................................................................................... 32
4.5.11. Open Interface Standard (OIS) .................................................. 34
4.6. MIN-MDN Mapping ........................................................... 34
4.7. Jinny Filtering Engine ...................................................... 35
4.8. Jinny Advertising Engine .................................................. 35
4.9. Statistics ...................................................................... 35
4.9.1. Static Counters ........................................................................ 36
4.9.2. Dynamic Counters .................................................................... 42
4.9.3. Counters Hierarchy .................................................................. 44
6. Commands .............................................................. 68
6.1. Jinny SMSC Commands Overview ........................................ 68
6.2. Group Feature ............................................................... 68
6.2.1. Create Group .......................................................................... 68
6.2.2. Add User(s) to Group................................................................. 69
6.2.3. Remove User(s) from Group ........................................................ 69
6.2.4. Delete Group(s) ....................................................................... 69
6.2.5. Check Groups .......................................................................... 69
6.2.6. Check Group Users ................................................................... 69
2. OVERVIEW
The Jinny Short Message Service Centre (JSMSC) provides services to
Short Message Service (SMS) users in GSM, CDMA and TDMA networks.
The SMSC is the post-office in the network acting as a store-and-forward
device and saving messages locally so that they can be reliably delivered.
It can be connected to various external application server platforms (also
called External Short Messaging Entities (ESMEs)) that can send and
receive messages to mobile subscribers.
Note: The Jinny SMSC supports interfaces to external short messaging entities
using different protocols. Currently the SMSC supports three protocols:
SMPP, EMI and OIS. Each protocol has its own settings and configuration
parameters. If the administrator requires further information regarding the
protocols, the administrator should refer to the appropriate documentation
(0 for the SMPP, 0 for the EMI and 0 for the OIS).
3. SYSTEM CONTEXT
The Jinny SMSC connects to different external entities. It connects to the
mobile network through the Jinny Signalling Interface Unit (SIU)
implementing the Jinny Gateway Mobile-services Switching Centre (GMSC).
It provides three types of protocols - Short Message Peer to Peer (SMPP),
External Machine Interface (EMI), and SEMA Open Interface Specification
(OIS) - to connect External Short Messaging Entities to the SMSC. They
can use TCP/IP or X.25 protocol as a bearer. In a distributed architecture,
the Jinny Application Router (JAR) is needed to provide a single point of
access for the ESMEs and to distribute the traffic among the MPUs. The
SMSC also connects to the following systems:
Billing System.
Operation, Administration, and Maintenance (OAM) System.
Prepaid System.
G
M
Mobile Network Jinny SIU Jinny SMSC
S
C
4. INTERFACES
4.1. Signalling Interface Unit
The SMSC communicates with the rest of the mobile network using the
GSM or IS-41 Mobile Application Part (MAP) protocol over SS7. It can
communicate directly with Mobile Switching Centres (MSC) and Home
Location Registers (HLR) for the purpose of sending and receiving short
messages to and from mobile handsets. It can also communicate with
these elements through Signalling Transfer Points (STP).
The Jinny SMSC connects to the mobile network through the Jinny SIU. It
implements the GSM 03.40 defined GMSC and Inter Working Function
MSC functions for handling messages to and from the SMSC and the GSM
network. It also implements the 3GPP2 C.S0015 and 3GPP2 N.S0005 for
the cellular operations with the CDMA/TDMA network.
The supplied driver supports the MAP/SS7 stack used to connect to the
public land mobile network (PLMN). UNIX processes implement the higher
layers of the stack, (MAP, TCAP, SCCP, and MTP 3).
In the first two cases, the SMSC charges the originator of the short
message while in the next two cases, it either charges the originator or the
receiver (terminating) of the short message depending on the service
configuration. For the status report charging, the recipient address of the
previously submitted MO message will be charged if the status report was
received within a configurable period of time. In addition, the SMSC does
not charge users for background messages.
The administrator defines the type of charging on the ESME services using
the web-based OAM interface.
Please refer the appendix 15.2 Prepaid charging scenario at the end of the
document, for a more detailed description of each charging case.
Please also refer to the SMS Billing Scenarios section in the JMR Technical
Description document.
4.5.1. Receiver
The receiver handles all the incoming messaging traffic from the SMSC to
the ESME. The SMSC administrator defines a virtual service centre address,
and/or a range of addresses that identify the ESME. The SMSC routes all
the received MO messages in accordance with the specified address to the
appropriate ESME.
The SMSC routes the ESME terminating messages and notifications to the
corresponding ESME client via the database, as shown in the figure below:
SMSC DB
ESME Server Normal Messages
SMSC ESME Client
Receiver Notifications
ESME
JQ
4.5.2. Transmitter
The ESME server transmitter handles all the outgoing messages from the
ESME clients to the SMSC, as shown in Fig 3.
Fig 4 Legend
Start
Global Priority
No
Flag ?
MO or MT in VIP
No
List ?
Yes
Yes
Add Message to No
Yes
No Configured SMSC
Message
Table
Add Message to requires storage?
Configured SMSC
Store&Forward
Table
or DIrect mode
Yes
Store Message to
Configured SMSC No
Add Message to Table Add Message to
Configured SMSC Configured SMSC
Queue Queue
Handle Intermediate
notification if requested
(SMPP only)
4.5.3. Routing
The SMSC routes incoming messages to the appropriate ESME receiver,
based on the virtual service centre address using the range of the
destination addresses or the range of the protocol id specified for the
message. Each receiver ESME should have at least one of the routing
methods defined. In addition to the above, a lawful interception allows a
message to be forwarded/copied to a specified ESME (refer to section
below).
B. Address Range
This method of addressing is the most commonly used. It consists of
defining an address range for each ESME client using a regular expression.
Whether it originated from a mobile or from an ESME, each message with a
destination address matching the defined address range, is routed to the
associated ESME.
This method does not require any settings, but the users must know the
defined address ranges in order to access the services provided.
C. PID Range
In GSM networks, the protocol identifier (pid) is the parameter describing
the above protocol, if any. In other words, if this parameter is set, the SM
is not a simple MO-MT message: it is part of a higher protocol using the
SMSC as a bearer. It can be set using the sending options available for the
user: text, FAX, paging, or Email. While the text messages are always
handled by the SMSC, a receiver ESME can be configured to receive any of
the other protocols. Routing based on PID eliminates the need for a short
code.
Based on the GSM 23.040, the pid values are:
PID Description
34 Telefax
38 National Paging System
50 Internet Electronic Mail
Table 4-1 - Pid values
For each
vsc ESME defined
defined?
no
yes
sc_addre
ss
no
matches
vsc?
yes address
range
return defined?
ESME no
id
yes
daddr
matches
no
address
range?
yes
pid range
no
return defined?
ESME
id
yes
pid
matches
no
pid
range?
yes
return
ESME
id
Fig 8 Routing algorithm applied for each message submitted to the SMSC
4.5.4. Provisioning
The SMSC web administration interface provides the administrator the
means to provision the ESME clients. It provides the administrator with all
the configurable parameters for each of the supported protocols as well as
the list of available choices where appropriate.
4.5.5. Charging
The SMSC provides two methods for charging messages that it exchanges
with the ESME clients. The ESME server handles one and the SMSC handles
the other.
The ESME server charges messages it sends to or receives from the SMSC
based on two parameters: default_service_type and charging_type. If
the first one is set, then the ESME server performs charging; otherwise,
the ESME server performs charging based on the messages service type.
The charging_type parameter takes three values: No charging, MO to
be charged and MT to be charged. The ESME server performs the
charging if the value of the charging_type parameter is different from No
charging. In this case, the ESME server charges messages regardless of
their final status, whether delivered or not.
In the case the parameter default_service_type is set and the
parameter charging_type is set to No charging, the SMSC performs the
charging upon the short message reaching a final status.
For the SMPP interface, the SMPP client can use different values for the
parameter service_type in the short message in order for the ESME
server to charge each aim differently. The ESME server can override the
messages service_type value through the SMSC administrator setting the
parameter default_service_type.
For the other two interfaces, EMI and OIS, the ESME server charges
messages only in the case the parameter default_service_type is set.
4.5.6. Statistics
The SMSC provides the SMSC administrator with different counters
informing the administrator about the usage of the external connection
with the SMSC. The counters offer statistics regarding the total usage of all
the external connections as well as statistics per connection.
4.5.7. Regulation
Releases 2.9 of the SMSC introduced regulation of the throughput on the
connections between the external short messaging entities and the SMSC.
The SMSC administrator can specify the throughput of each ESME
connection to the SMSC on a transmitting client (transmitter or
transceiver). One of the main purposes of this feature is to manage the
throughput generated by the ESMEs and to avoid spamming subscribers by
ESME clients. The feature is configured on a per client basis. The value of
the regulated throughput cannot exceed the global maximum rate specified
in the license site and is configured system-wise (rglt_spam_rate) for
messages delivered to the same destination (MSISDN).
4.5.8. ESME Queues
The JSMSC support 2 methods for passing messages to an ESME receiver:
A. Database
This method insures that no messages are lost in case of a sudden failure
and a failover to the secondary node: messages are stored in the database
until delivered to the corresponding receiver ESME. This is suitable for low
traffic applications.
B. Jinny Queue
The method is useful for real-time applications (like the voting application),
where a burst of messages should be handled in a short period of time.
This method is fast and alleviates the system from unnecessary load on the
database.
4.5.9. SMPP
The Jinny SMSC supports version 3.3 and 3.4 of the Short Messaging Peer
to Peer protocol (SMPP). Please refer to the SMPP v3.4 Protocol
Implementation Conformance Statement (PICS) Proforma for a detailed
list of the features supported. Included in the features is support for UDHI
support, Store & Forward, Datagram and Forward (Transactional) modes.
UDHI indicates that the sent or the received message contains GSM User
Data Header Information.
Communication between an SMPP-based ESME and the SMSC requires
either a single or two network connections. Applications or processes, also
known as Application Interface Modules (AIMs) handle each of the
connections. An AIM can connect/bind as a receiver or a transmitter or a
transceiver.
Three parameters identify an SMPP transmitter AIM: system_id,
system_type and password, which identify and authenticate an ESME. The
SMPP server handles multiple AIMs. The SMSC administrator creates and
manages the AIMs through the web-base administration module. Further
information on SMPP configuration can be found in Section 9.2.
Using SMPP an application can perform the following main tasks:
Submit Messages
The ESME submits messages to the SMSC for delivery to subscribers in
accordance with the SMPP specifications. In addition, the ESME can use the
esm_class parameter to send messages in the Datagram Mode and to set
the UDHI flag (as specified in SMPP version 3.4).
Receive Messages
The SMSC delivers messages to ESMEs bound as receivers or transceivers.
Fig 9 and Fig 10 below clarify the above description.
Start
Initialize
Listen on specified
Client connected? No
port
Yes
Yes
Successful
authentication?
No
Yes
Yes
Yes
child parent
4.5.10. EMI
The EMI is a two-way protocol. The EMI application can create an outbound
connection in order to connect to a remote server or as a listener in order
to allow a remote application to connect to it. Each application can send
and receive messages on the same connection.
The Receiver EMI process is responsible for:
Establishing the connection to the ESME.
Delivering new messages.
Delivering notifications of previously submitted messages
The Transmitter EMI process is responsible for:
Accepting a connection.
Authenticating the client.
Receiving and handling of the submission of new messages
Authentication is based on the IP address (and port) of the client and/or on
the session management. Fig 12 shows the flowchart for EMIs transmitter
connection authentication.
Once the SMSC and the ESME establish an EMI connection between each
other, the ESME can use the following operations:
Session Management (operation 60).
Submission of Short Messages (operation 51).
Delivery of Short Messages (operation 52).
Delivery of Notifications (operation 53).
Modification of a Message (operation 54).
If the message was submitted with a notification request, the notification
will be handled in one of the following two cases:
If the notification address is empty, the SMSC delivers all notifications
via the receiver EMI process.
If the notification address is a mobile address, the SMSC sends a short
message to that mobile.
The reader can find further information on EMI configuration in Sec 9.2.2.
4.9. Statistics
The Jinny statistics counters provide an insight into the status and
performance of the system. Their value is either incremental or absolute
based on the counters type. The counters are usually collected at a
configured period, and recorded into a statistics file for an offline checking
and analysis. The administrator can also execute the jstat tool on the
command prompt to get a real-time snapshot of the different counters.
This can be very useful when trying to detect and pinpoint problems. There
are two types of counters: static and dynamic. The tables below give a
description of the available counters.
1
Only available if prepaid checking is done on MO submission
2
Only available if local_routing_expr is defined
3
Only available if local_routing_expr is defined
4
Only available if prepaid checking is enabled
network
smsc.mt-packet-mo Total number of MT messages sent on the network
Counters for messages that expired and deleted messages
smsc. expired Total number of expired messages
Total number of expired messages to be charged by
smsc. expired-prepaid
prepaid subscribers
Total number of expired messages to be charged by
smsc. expired-postpaid
postpaid subscribers
smsc. cancelled Total number of cancelled messages
Total number of cancelled messages to be charged
smsc. cancelled-prepaid
by prepaid subscribers
Total number of cancelled messages to be charged
smsc. cancelled -postpaid
by postpaid subscribers
Counters for internal registers (used mainly for debugging and system monitoring)
Total number of bits sent to the SIU (not a very
smsc.link-bps
useful indication, kept for historical reasons only)
Total number of times the configured link capacity
was reached. If this counter is incrementing, the link
smsc.link-full
value should be set to 0 in the GMSC configuration
of the smsc_conf.ini, to disable the limitation
Total number of messages that were rescheduled for
smsc.retry delivery attempt on next retry time due to a
congestion
smsc.mref Absolute value the number of referenced messages
Total number of attempts to reference a new
message will the reference window is full. If this
smsc.mref-full
value is incrementing, this means that the system is
working on its maximum configured capacity
Total number of reference messages passed to the
smsc.mref-tx
TX process for delivery
smsc.mref-tx-entry Internal counter
smsc.mref-tx-rt Internal counter
Total number of messages to be referenced while
smsc.mref-conflict another message to the same msisdn is already
referenced
smsc.mref-normal Number of normal messages referenced
smsc.mref-retry Number of retry messages referenced
smsc.mref-brdcst Number of broadcast messages referenced
smsc.reference Total number of times referencing new messages
smsc.reference-rt Round trip time for referencing new messages
Total number of MT messages sent to the TX process
smsc.send
for delivery
smsc.send-rt Round trip time to send messages to the TX process
smsc.reference-normal Number of normal messages referenced
smsc.reference-retry Number of retry messages referenced
smsc.reference-normal-rtt Round trip time referencing normal messages
smsc.reference-retry-rtt Round trip time referencing retry messages
Overflow Counters
smsc.overflow-store Total number of overflow messages stored
smsc.overflow-store-sms Total number of overflow SM stored
Total number of overflow MO SM stored due to
smsc.overflow-store-sms-mo
service centre congestion
smsc.overflow-store-sr Total number of overflow SR stored
smsc.overflow-load Total number of overflow messages re-loaded
smsc.overflow-load-sms Total number of overflow SM re-loaded
smsc.overflow-load-sr Total number of overflow SR re-loaded
ESME traffic Counters
Note that additional static counters might be present. The will be for
internal use (debugging and additional information on internal functions).
GMSC connection dynamic counters are used to monitor the state of the
SMSC-GMSC connection. A counter is created for each GMSC defined in the
smsc_conf.ini
ESME dynamic counters are created at the first connection with an ESME
client.
The <esme> value depends on the configuration of each ESME client and
the interface used:
The <type> value depends on the type of the connection with the client:
Type Description
rx Receiver
tx Transmitter
trx Transceiver
Table 4-5 Types
Prepaid IN dynamic counters are created for each connection to the RTCG.
With:
Instance as set in the instance
configuration parameter in the
prepaid_in.ini (0 by default). This value
<inst>
should be set if multiple prepaid_in
instances are running on the same
machine
Number of the connection, starting 1. If
multiple rtcg nodes are defined, the
number is added for each connection
defined. For example
[rtcg_nodes]
<nb> #<index>=<nb of connections> <cycle
hosts> [<host1> <port1> <host2>
<port2>...]
1=3 1 test 4044
2=3 1 test 4044
The <nb> will have values 1 to 6.
The most significant parents and their children are listed below:
5. MESSAGE HANDLING
This document defines a message as one of the following events:
Mobile Originated Short Message submitted to the SMSC.
Mobile Terminated Short Message delivery attempt by SMSC to a
mobile.
Report message delivery attempt by the SMSC to a mobile.
Short Message submitted from an ESME to the SMSC.
Short Message delivery attempt to an ESME by the SMSC.
Report delivery attempt to an ESME by the SMSC.
Appendix 15.1 includes flow charts describing the SMSC message handling
processes.
Table 5-2 shows the list of error cause returned for rejected SMS delivery
Point-to-Point received by the SMSC in CDMA/TDMA networks.
Error Description
2 network resource shortage
98 sms termination denied
97 sms origination problem
100 sms not supported
102 missing expected param
Table 5-2 MO Errors in CDMA/TDMA networks
The SMSC checks the address against an MT black list (if mt_black
is enabled). If found, the message is rejected.
6. The MO address is then checked against the Blocked list of the MT
address. If found, the message is rejected.
7. If the message passes the above checks, the SMSC accepts it for
sending.
8. If the reject-duplicates flag parameter is set, the SMSC checks if
another message matching the same originating address, destination
address and mref, is still pending. If found, the message is accepted
but its content is discarded.
9. The SMSC then checks if the Embedded Command process is enabled
(allow_embedded_cmd set).
10. If not, the SMSC checks the message originator address to see if it is in
the VIP MO white list. If so, the SMSC automatically assigns the
message a priority status and moves it to the front of the SMSCs
message waiting queue.
11. However if it is not a Priority message (or if the global_priority_flag
is not set) then the SMSC checks the database table of MT addresses
with messages waiting to see if other messages are waiting for this MT
address to become reachable.
12. If there are messages waiting for this MT address and the message is
not a priority message then the SMSC adds the message to the
messages table in the database.
13. If the message is a priority message or the address does not have any
other messages waiting for it, the SMSC sends the message to the
Mobile Station via the Gateway MSC function on the Signalling Interface
layer. (The customers purchased license determines the rate at which
the SMSC sends the messages to the Signalling Interface.)
14. If the Embedded Command process is enabled, and if the MO address
matches any Embedded Command user, the SMSC checks if a
command is embedded in the message and processes the message
accordingly.
15. The mobile network will return a response indicating if it successfully
delivered the message or not.
16. If the message reaches a final status, the SMSC generates a delivery
report, upon request, and sends back to the originating SME.
17. If the SMSC could not temporarily send the message (mobile out of
coverage, or memory capacity exceeded), then the SMSC sets all the
messages destined to the same MS to waiting, and (unless the
message is in datagram mode message) adds the destination address
to the retry algorithm.
Table 5-3 below shows a list of Mobile Terminated errors in GSM networks.
It also shows the failure diagnostics.
Error Description
1 Subscriber Unknown
5 Subscriber Unidentified
6 Absent Subscriber 0 = no paging response via the MSC
SM (Map phase 3) 1 = IMSI detached
2 = roaming restriction
Diagnostics 3 = deregistered in the HLR for non
GPRS
4 = MS purged for non GPRS
5 = no paging response via the SGSN
6 = GPRS detached
7 = deregistered in the HLR for GPRS
8 = MS purged for GPRS
9 = Unidentified subscriber via the
MSC
Note: To simplify the interpretation of errors, only the GSM set of errors is used
in the database and transactional log files (DAT files), for both GSM and
CDMA/TDMA networks.
For GSM to iDEN network, the following conversion rules are applied:
If GSM message is received with 7-bit alphabet encoding, the dcs is set
to 0xF7 and the message is converted to 8-bit text.
If GSM message is binary with dcs in the range 0xF4 to 0xF6, the dcs is
set to 0xF8.
If GSM message is received with dcs = 0xF7, no changes are made
If GSM message contains a user data header, the administrator can
choose to remove the user data header, or keep selected information
elements: concatenated info, application port 8-bit and application port
16-bit.
The total length of the converted iDEN message is limited to 140 bytes
(or as configured). The SMSC will truncate exceeded length.
Destination address
Get profile
Address matches
Yes gsm_address_range
?
Return
GSM No
Address matches
Yes cdma_address_rang
e?
Return
CDMA
No
Address matches
Yes tdma_address_range
?
Return
TDMA
No
Return
GSM
The PLMN behaves differently for a non-priority message than for a priority
message:
Delivery of a non-priority message will not be attempted if the MS has
been identified as temporarily absent.
Delivery of a non-priority message will be attempted if the MS has not
been identified as temporarily absent irrespective of whether the MS
has been identified as having no free memory capacity.
Delivery of a priority message will be attempted irrespective of whether
or not the MS has been identified as temporarily absent, or having no
free memory capacity.
For GSM networks that suffer from coverage problems, the system can be
configured to send all messages to the PLMN with the priority flag set
(gsm_priority configuration param).
Note that if the address is local and if the number of retries exceeds the
number specified by the retry sequence, the next retry time will be the last
one specified. The retry algorithm will use this last value indefinitely. If the
address is foreign and the number of retries exceeds the number specified
by the retry sequence, the retry algorithm updates the status of the
messages for that address from waiting to error and will remove the
address from the retry algorithm table.
Starting release 3.6, each retry sequence is paired with an alternative
overload retry sequence: (smsc_retry, smsc_overload retry),
(smsc_priority_retry, smsc_overload_priority_retry),
(smsc_foreign_retry, smsc_overload_foreign_retry). These
sequences will be used when the retry queue reaches a certain percentage
(overload_level).
The following SDL flowchart is an illustration of the above:
Retry Sequence
system_failure
No
?
Yes
foreign
No
number?
Yes
enable_esme_r
No
etry_seq
overload_level
No
reached?
Yes
overload_level
Yes
reached?
No
overload_level
use reached?
use
esme_overload_re No
esme_retry_seq
try_seq
Yes
use
use Yes
smsc_overload_pri
smsc_priority_retry
ority_retry
use
smsc_overload_ret use smsc_retry
ry
Example
smsc_retry = (1, 5) (1, 8) (5, 15) (10, 30) (100, 1440)
The retry sequence means that the SMSC performs:
the first retry attempt on a normal message after five minutes
the second one after eight minutes
Five next retries after 15 minutes each
Ten retries with half an hour interval
Daily retry for the next 100 days
Note: For ESME routing, the destination address without translation is checked
against the routing table defined on the system
The command and its arguments are described in the table below:
Based on the previous sample translation file, the following numbers will be
translated as follows:
5.11. Trace
All the transactions made on the SMSC (MO, MT delivery attempt, Alerts,
ESME traffic), are logged into the transactional SMSC history file. Each
transaction line contain all the parameters for a transaction (refer to
SMSC History File). Direct access to the history files can take a lot of the
system resources, and the output needs to be parsed to get the
information needed. To address this issue, in the latest 3.6 releases, the
jindex tool can optionally be installed to create indices for the originating
and destination addresses. It will provide a quick access to any number
inside the history files. A jtrace tool has also been implemented to access
the indices and retrieve the information required with a simplified or
extended display. The web interface has been optimized to base its search
on the indices resolving the delay issues previously faced on a heavy load
system. For more information about the jindex and jtrace command lines,
please refer to the administrator guide document.
In addition to the above, the operator can choose to install the optional
Jinny Filtering Engine. It can be enabled to receive all incoming messages
and filter out spam or unwanted messages. Its configuration is based on
simple filtering rules created by the operator to meet its requirement. For
more information, please refer to the Jinny Filtering Engine documentation.
Fig 18 MO ESME Successful Delivery on First Attempt (Database for ESME input)
SMSC
PLMN
SMSC RX
2
Process
5
3
RX MO SMSC RX ESME
4
Queue MO Process JQ
1
MO SM 5'
GMSC
MO ACK 6 7
7'
Mobile
Originated
MO Ack 11
TCP/IP
Queue Receiver
8 X.25
Deliver SM
10
9
SMSC TX ACK
6' Transmitter
Process
ESME
ESME
Server
Fig 19 MO ESME Successful Delivery on First Attempt (JQ for ESME input)
5.15.2. Messaging
SMSC Messaging
Fig 22 MO to SMSC
Fig 23 SMSC to MT
Note: If the destination address of the terminated leg is mobile then the message
is stored in shared memory rather than the database in most cases (Refer
to the previous description of message procedure above).
Network Messaging
MessageTransfer
ForwardShortMessage
MessageTransfer
DeliveryReport
DeliveryReport
DeliveryReport
MessageTransfer
SendRoutingInfoForSM
ForwardShortMessage
MessageTransfer
DeliveryReport
DeliveryReport
DeliveryReport
MessageTransfer
SendRoutingInfoForSM
ForwardShortMessage
mms = 1
MessageTransfer
DeliveryReport
DeliveryReport
DeliveryReport
ForwardShortMessage
mms = 0
MessageTransfer
DeliveryReport
DeliveryReport
DeliveryReport
MessageTransfer
SendRoutingInfoForSM
InformSC
FailureReport
Fig 29 Failed Mobile Terminating Short Message due to an error at the HLR
MessageTransfer
SendRoutingInfoForSM
InformSC
ForwardShortMessage
Fig 30 Failed Priority Mobile Terminating Short Message due to an error at the
HLR
Note: For priority messages, the message is forwarded to the MSC even the
number is set considered unreachable at the HLR
MessageTransfer
SendRoutingInfoForSM
ForwardShortMessage
FailureReport
SetMessageWaitingData
FailureReport
Fig 31 Failed Mobile Terminating Short Message due to an error at the MSC
MessageTransfer
SendRoutingInfoForSM
ForwardShortMessage
MessageTransfer
FailureReport
SetMessageWaitingData
FailureReport
6. COMMANDS
6.1. Jinny SMSC Commands Overview
Release 2.9 of the Jinny SMSC introduced a set of features that helps the
operator differentiate its services offering. There are two categories of
features: the Group feature and the embedded features. The commands
used for these features are operator defined and can be coded in 7-bit
alphabet, binary or UCS2.
Note: Note that for security purposes, this command has to be enabled per
subscriber by the administrator or the customer care personnel using the
web administration pages
Note: Note that for security purposes, this command has to be enabled per
subscriber by the administrator or the customer care personnel using the
web administration pages
If the A-party's profile does not have the SPONSOR feature enabled and he
wants to use the SPONSOR feature:
Send *#SP <message> to B-party, and the message will be sent
to the JADE.
7. DISTRIBUTION LISTS
7.1. Introduction
Distribution lists is a feature that allows an operator or any operator
authorized DL user to easily distribute a single message to a large number
of subscribers.
Note: Starting release 3.0, the SMSC distribution lists can only be used in a
stand-alone architecture; for a distributed architecture, the Jinny
Application Routers distribution lists should be used instead in order to
distribute the traffic among the different MPUs.
Sig1 SS7
Mobile Network
SMSC DL
Web Interface SMSC GSM
Client
DL user
TCP
Sig2 SS7
N SMSC
DL Clients
FTP SMSC DataBase
SMSC
Database
Sig1 SS7
Mobile Network
Sig2 SS7
SMSC
Database
Sig1 SS7
Mobile Network
TCP
SMSC DL SMSC GSM
Client
Sig2 SS7
SMSC DL Process
New DL
message?
Yes
DL
No
messageexpired?
Check DL Children
MPU 1 MPU n
SIU1 SIUn
SS7
PLMN
Fig 36 - MPUs and SIUs Configuration
8.2. Configuration
The minimal configuration of the Jinny Distributed SMSC consists of two
MPUs and two SIUs. A larger configuration consists of the two MPUs and
the two SIUs and an additional number of similar components based on the
required throughput.
One of the two main MPUs is designated as Primary while the second is
designated as Secondary. If additional MPUs are present, they are simply
designated as clients MPUs. The Secondary MPU and the client MPUs, if
they are present, individually connect to the Primary MPU for
synchronization purposes. There are no connections among the client
MPUs. The Secondary and the client MPUs connect to the Primary using a
virtual IP address, which the Secondary takes over in case the Primary
fails. All MPUs are in the active state.
Each MPU connects to each of the existing SIUs, specifically to the instance
of the gateway SMSC instance running on it, thus forming a fully meshed
configuration.
In addition, the external short messaging entities connect to the Jinny
Application Router, which manages the connections to the MPUs. It acts as
a load balancer and, in case of a connection failure with an MPU or an MPU
failure, distributes its load over to the other MPUs.
8.3. Functionality
8.3.1. Message Processing Unit
Each MPU is considered as an SMSC node and holds the following data:
subscriber profiles, ESME configuration, services, messages, and waiting
messages. The data is divided in two: permanent (or hardly changing) and
constantly changing. The first one covers the profiles, ESME and service
configurations. The second one covers the messages and waiting
messages.
The Primary and Secondary MPUs have additional functionality than the
client MPUs. The Primary receives all the updates for the permanent data
(addition of an ESME, change of profile ), logs all the transaction updates
into log files, and sends this information to the other MPUs in the SMSC.
The logging of this information and its distribution to the other MPUs is
done in order to synchronize this information between all the MPUs.
Additionally, each MPU stores the messages and waiting messages
assigned to it by the rules on the GMSC.
8.4. Synchronization
As far as synchronization is concerned, the Primary MPU is considered as
the centre. Any change to the permanent data on the Primary is directly
executed by the Primary MPU. Otherwise, the Secondary and client MPUs
forward the requests to the Primary, which executes them. Upon
successfully executing a transaction, the Primary MPUs logs it into a
transaction log and then distributes it to the other MPUs. The Secondary
receives the transaction and stores it into two files: the transaction log and
the synchronization file. The Secondary keeps a copy of the transaction for
redundancy purposes in case of the Primarys failure. The remaining MPUs
store a copy of the last transaction they received and store it in a local file.
If the Primary fails, the Secondary takes over and assumes the
functionalities of the Primary as far as synchronization. On the other hand,
if a client MPUs fails for a certain period of time and then comes back
online, it uses the information in its synchronization log and compares it
with that of the Primary. If there are no differences, then the MPU is up-to-
date. Otherwise, it checks the difference and updates itself with the
missing information. On the other hand, if the synchronization file does not
exist on the client MPU (restart of a failed node) then the client MPU
performs a full synchronization.
8.4.1. Failure
Cluster management software runs on both the Primary and Secondary
MPUs. Both the Primary and the Secondary MPUs are assigned a single
Virtual IP address. This Virtual IP is active on the Primary. The other MPUs
connect to the Primary using this Virtual IP.
The software sends a heartbeat signal to check the health of the other
node. If the Secondary node does not detect the heartbeat signal from the
Primary, it assumes it failed and takes over. The heartbeat signal is sent
over two connections between the MPUs: Ethernet and serial connections
using cross cables. This double connection provides for connection
redundancy to account for connection failures rather than MPU failure.
Once the Secondary takes over, it takes over the Virtual IP address. In
turn, the client MPUs connect to the Secondary now turned Primary, using
the Virtual IP address, providing for a minimal interruption of services.
On the other hand, if the Secondary MPU or any client MPU fails, the
system takes no action other than to notify the operator of an MPU failure.
A. Cluster Restart
As a general case, the Jinny SMSC cluster restarts in the following
sequence:
1. Synchronization of the Primary and Secondary MPUs
2. Assignment of Primary and Secondary status
3. Starting of services
When both the Primary and Secondary MPUs are restarting, they exchange
information in order to determine which MPUs have the most recent data.
The information exchanged is contained within counters that are described
later in the document.
The node that has the least recent data synchronizes its data with the
other. Once the data synchronization completes, both nodes change their
state to Secondary. Then, the cluster manager assigns Primary and
Secondary states to the appropriate machines based on how it is
configured.
Note: * denotes the date the file was created. It takes the form of yyyymmdd
where yyyy is the year, mm is the month and dd is the day.
B. External Requests
Primary Node Procedure: External Request
Primary Node
Database
2
sync_db
smsc_serial
B. External Requests
B. External Requests
Connect to
Sleep connect_period
host:dat_sync_port
Connected? No
Yes
Get Sync
1
New message? No 2
yes
Reset timer
Get Sync
HSK req Sync resp
resp
HSK rsp
Ack?
No
No Yes
HSK req
New sync record?
Sync req
9. CONFIGURATION
All the processes retrieve their configuration parameters from the
corresponding configuration file. The location of the configuration file is
jinny_dir/init with jinny_dir:
Value of the JINNY_DIR environmental variable
Home directory of the user jinny (default value)
The table below describes the parameters that are common for most of the
processes:
Note that after any modification made on some of the Internal Parameters,
the administrator should restart the SMSC in order for the modifications to
take place. Most of the other parameters will be in effect at the next
configuration period (config_period parameter).
9.1.1. Local Configuration
The following is a description of the configuration file: smsc_conf.ini
> pri = x y z
This field configures the network
priorities when multiple network
types are interconnected and
defined. x y and z should be put in
the appropriate order and should
take the values 0 1 or 2(0 for GSM,
1 for CDMA and 2 for TDMA).
B. Main configuration
0 = Unknown Number
smsc_ton 1 = International Number
2 = National Number
[0,1,2] 1
0 = Unknown numbering plan
smsc_npi 1 = ISDN/telephone numbering plan
2 = National numbering plan
SMSC specific address defined by the
smsc_addr X(20) GSM Operator, used as RP oaddr in
outgoing messages.
Base semaphore key needed to avoid
conflict in synchronising if more than
one smsc instance need to run on the
smsc_base_sem_key Integer 8000 same machine. The administrator
should allow a merge of minimum
1000 between 2 base semaphore key
values on the same machine.
Flag for enabling or disabling sending
status reports when required. This
Status_report [0,1] 0 value affects the processes handling
ESME interface. (0 = no report and 1
= report)
Value in hours used for the validity
sr_vp Integer 24 period of a waiting status report. It
has no effect if set to 0.
Value in hours used if no expiry time
def_expiry_hours Integer 24
is specified in the SM
% of the window_size reserved for
normal messages, i.e. the % of
messages to be considered as normal
by JSMSC. Used to specify the
proportion of normal and retry to
broadcast messages. If normal
messages_winlen [0-100] 70 messages do not need the total of the
percentage assigned, the rest will be
left for broadcast messages. This
entry correlates to the normal
messages parameter (in %) in the
SMSC main configuration file on the
administration interface.
% of the window_size reserved for
retry messages, i.e. the % of
messages sent based on the retry
algorithm. Used to specify the
proportion of normal and retry to
broadcast messages. If retry
retry_winlen [0-100] 30 messages do not need the total of the
percentage assigned, the rest will be
left for broadcast messages. This
entry correlates to the retry
messages parameter (in %) in the
SMSC main configuration file on the
administration interface.
F. Charging Configuration
Custom Errors
I. Synchronization Configuration
J. SMSC Commands
Comma
[cmd] nds
section
start_cmd X(1) * The start command character
stop_cmd # The stop command character
end_cmd Space The end command character
Period (ms) to retrieve the next
cmd_time Integer 100
command from the queue.
Regular expression used to route
embedded_cmd_addr X(255) messages to the Embedded SMSC
Commands process.
Regular expression used to restrict
embedded_cmd_users X(255) the usage of the embedded SMSC
commands.
Flag to enable/disable the usage of
allow_embedded_cmd [0,1] 0
the Embedded SMSC commands
M. MO Control Configuration
N. Network Timezone
[time]
timezone=+
timezonevalue=0
[smpp]
delivery_receipt=4
normal_delivery=0
[aim]
ProgName=aim
LogFileName=/var/jinny/log/aim
DebugLevel=3
AlarmProg=/usr/jinny/bin/alarmprog.sh
AlarmLevel=0
dbname=smsc
dbuser=Informix
dbpass=Informix
port=6692
window_size=256
granularity=10
burst=1
retry-0
retrysequence=(1,15)
License=ANXMR-LPVAA-AAAAA-FZBJF-AZIOW-KQZXD
rglt_spam_rate=0
def_rglt_spam_ring_size=3000
reference_period=5
timeout=200profiling=1
esme_routing=1
9.2.2. EMI Configuration
The emiserv configuration file is located in [Jinny Dir]/init/emiserv.ini
with [Jinny Dir]:
Home directory of the user jinny.
Path specified by the environmental variable JINNYDIR.
The administrator should note that the emiserv process must be restarted
for every modification made on this file in order for the new configuration
to be loaded. All the parameters described below are optional except the
port which is mandatory.
The Semaserver process uses the configuration file of the SMSC (smsc.ini),
for the charge handling and the counters.
[clients]
Format :
Index = [0-20]
<index>=<host Host address = X(32)
address> <port> Port = Integer
On the server side, used to authenticate
clients
In addition to its own configuration files, the process uses the following
entries directly from the configuration file smsc.ini.
[mo]
sender=SMS99
recipient=JORFL
tax_treatment=Y
tax_rate=2000,0000,0000,0000,0000,0000,0000,0000
# code X(1) + rate 9(10) + exponent 9(1)
exchange_rate=A00000000000
# code X(1) + offset +/-HHMM
utc_time_offset=A+0200
utc_time_offset_code=A
# charged item: E event based, F fixed (one-off) charge
charged_item=F
#charge: 1 value if charged_item = F, table of 4 values (# 9 digits:
999999.999)
#charge MO/MT , MO/ESME , ESME/MT , ESME/ESME
charge=000000000,000001000,000000000,000000000
tax_rate_code=1
exchange_rate_code=A
[mt]
sender=SMS99
recipient=JORFL
tax_treatment=N
tax_rate=
# code X(1) + rate 9(10) + exponent 9(1)
exchange_rate=A00054945050
# code X(1) + offset +/-HHMM
utc_time_offset=
utc_time_offset_code=
# charged item: E event based, F fixed (one-off) charge
charged_item=F
charge=000000000
tax_rate_code=
exchange_rate_code=
dbName=smsc
dbUser=Informix
dbPass=Informix
output_path=/var/jinny/tmp
prefix=JINNY_
version=8
smsc_log_filename=/var/jinny/messages/smsc_messages
smsc_log_separator=|
default_service=SMS01
mscid=84DE
cellId=14F9302823D366
ms_classmark=301881
exchange_id=JINNY
sc_ton=1
sc_npi=1
sc_addr=9656373717
The available field types and their corresponding format are as follows:
The following table gives a list of the available fields and the type of format
that should be used:
cbni
cbn_mode
cbn_ton
cbn_npi
cbn String
display_mode
deposit_index
multi_encoding
user_response Integer
dcs
msg_encryption
message String
scts
donedate
validityperiod Date
scheddeliverytime
rxaimid
txaimid
msisdn
mref
udhi
mode Integer
error
service
prepaid
aim_type
nt
nadc String
npid Integer
moservmsc
mo_imsi String
mo_esn Integer
mtservmsc
mt_imsi String
mt_esn
esmeid
smsc_dest_table
sar
sar_ref Integer
sar_total
sar_seqnum
messagelen
deferred
orig_group Integer
client_name String
sm_type Integer
filler Constant
[sr]
timestamp String
reportid Integer
msisdn String
status
mref Integer
tp_status
donedate Date
raddrton
raddrnpi Integer
raddr String
messageid Integer
imsi String
servmsc
prepaid Integer
filler Constant
[header]
timestamp Date
filler Constant
[trailer]
start_date Date
end_date Date
count Integer
filler Constant
Table 9-25 SMSC Generic CDR Fields Type
In addition to its own configuration files, the process uses the following
entries directly from the configuration file smsc.ini.
dbName=mc
dbUser=jinny
dbPass=jinny
output_path=/var/jinny/cdr/processed/
prefix=CDR_A
extension=.DAT
date=%y%m%d
time=%H%M%S
#sequenceno_digits=5
max_sequenceno=99999
rate=1500
granularity=1
burst=10
process_deleted_records=1
process_expired_records=1
process_prepaid_records=1
handle_concatenated_msg=0
msg_list_size=1000
max_msg_interval=10
msg_refresh_period=1
#group_services=0 means seperate CDR files group_services=1
means 1 CDR files
group_services=1
separator=
charge_status_report=0
create_empty_file=1
#sequential_scan=1
enable_keyword_detection=1
# The string values in the formatted fields are filled with the
following character
# (if is is empty it is filled with spaces)
string_filler=
# The following 2 flags are to enable the header and trailer in the
CDR files
enable_head=0
enable_tail=1
[header]
filler=IMSMSMDRH,
filler=V1.0,
timestamp=%m//%d//%y %H:%M:%S
[trailer]
start_date=%Y%m%d%H%M
end_date=%Y%m%d%H%M
count=%d
[sm]
messageid=%10d
#command=%1d
status=%2d
oaddrton=%1d
oaddrnpi=%1d
oaddr=%21s
daddrton=%1d
daddrnpi=%1d
daddr=%21s
priority=%1d
#rp=%1d
sri=%1d
pid=%3d
messagelen=%3d
type=%3d
#dcs=%3d
scts=%Y%m%d%H%M%S
donedate=%Y%m%d%H%M%S
validityperiod=%Y%m%d%H%M
scheddeliverytime=%Y%m%d%H%M
rxaimid=%10d
txaimid=%10d
msisdn=%21s
mref=%3d
#udhi=%1d
#mode=%1d
error=%3d
#service=%6d
#prepaid=%1d
#smsc_dest_table=%1d
mt_imsi=%15s
#message=%320s
aim_type=%3d
moservmsc=%21s
mtservmsc=%21s
#cmd_type=%2d
mo_imsi=%15s
#privacy=%1d
#reply_option=%1d
#language_ind=%3d
#cbni=%1d
#cbn_mode=%2d
#cbn=%33d
#display_mode=%1d
#deposit_index=%3d
#multi_encoding=%1d
#mo_esn=%10d
#mt_esn=%10d
sar= %1d
sar_ref=%3d
sar_total=%3d
sar_seqnum=%3d
service=%6s
[sr]
reportid=%10d
msisdn=%21s
status=%1d
mref=%3d
tp_status=%2d
scts=%Y%m%d%H%M
donedate=%Y%m%d%H%M
raddrton=%1d
raddrnpi=%1d
raddr=%21s
messageid=%10d
imsi=%15s
servmsc=%21s
prepaid=%1d
The variables bind in all JINNY trap types contains the following:
Variable Description
hostName The host from where the alarm was
emitted
eventTime The time the alarm was emitted
eventType 1(program alive status)
4(shells alarms)
probableCause 47
perceivedSeverity Alarm severity level:
1(critical)
2(major)
3(minor)
4(warning)
5(cleared)
managedObjectInstance The component affected by the problem
additionalText A message regarding the trap been sent
4 FAILED_MESS_4
5 FAILED_MESS_5
1 MESS_TAB_1
2 MESS_TAB_2
MESSAGES_TABLE
3 MESS_TAB_3
(jmessagesmon.sh)
4 MESS_TAB_4
5 MESS_TAB_5
1 WAIT_TAB_1
2 WAIT _TAB_2
WAITING_TABLE
3 WAIT _TAB_3
(jwaitingmon.sh)
4 WAIT _TAB_4
5 WAIT _TAB_5
1 smsqueuemon_1
4 smsqueuemon_2
SMSC 1 smsqueuemon_3
(smsqueuemon.sh - crontab) 4 smsqueuemon_4
1 smsqueuemon_5
4 smsqueuemon_6
cdr_generation 1 cdr_generation_1
(ftpcdr.sh cdralarm.sh) 4 cdr_generation_4
HEARTBEAT
3 primary_3
(jheartbeat.sh)
HEARTBEAT
3 secondary_3
(jheartbeat.sh)
JAR_RECEIVER 1 JAR_RECEIVER_1
(jar_receiver.sh) 5 JAR_RECEIVER_5
1 PREP_QUE_1
2 PREP_QUE_2
PREPAID_JQ
3 PREP_QUE_3
(jprepaid.sh)
4 PREP_QUE_4
5 PREP_QUE_5
smsc.alive
smsc.aim-alive
sync_db.alive
jsync.alive
jsync.jfsync_alive
1- Program is dead
jsync.jfsync_client_alive 1 or 5
5- Program is alive
smsc.prepaid-tx-alive
smsc.gmsc<nb>-conn-alive
smsc.<esme>-rx-alive
smsc.<esme>-tx-alive
smsc.<esme>-trx-alive
inform the system administrator. If this alarm remains not cleared, the
severity of the CPU Load may increase and the performance of the machine
will degrade and this will affect seriously any system running on it
DISK_3 = The storage on \"$BDEV\" partition is still minor ($USED_SP
%), some log files could be growing fast or some unused files need to be
cleaned. Please check large files on this partition and contact your system
administrator. Please consider this alarm seriously in order to prevent any
increase in its severity.
DISK_4 = This is just a warning alarm to inform you that the storage on
\"$BDEV\" partition is increasing ($USED_SP %); you need to check large
files and inform the system administrator. Kindly take this alarm into
consideration in order to prevent any increase in its severity.
DISK_5 = The storage on \"$BDEV\" partition is normal ($USED_SP %), it
is below the warning level.
FAILED_MESS_1 =The Percentage of System Failed messages is critical
($RATIO). It could be due to a Network failure or SIU malfunctioning. You
need to check the Links and the GSM Network, and in case of SIU
malfunctioning, please contact your system administrator. In case no
action was taken, the number of failed messages will increase.
FAILED_MESS_2 =The Percentage of System Failed messages is very
serious ($RATIO). It could be due to a Network failure or SIU
malfunctioning. You need to check the Links and the GSM Network, and in
case of SIU malfunctioning, please contact your system administrator. In
case no action was taken, the number of failed messages will increase.
FAILED_MESS_3 =The Percentage of System Failed messages is
increasing ($RATIO); please check if there is any Network failure, and if
not, contact your system administrator in order to check if the SIUs are
working properly. If the Number of failed messages increases, there will be
degradation in the system
FAILED_MESS_4 =The Percentage of System Failed messages is reaching
high values ($RATIO); it is not yet critical, but you may check if the SIUs
are working normally and also check if there is any Network failure. If the
Number of failed messages increases, there will be degradation in the
system
FAILED_MESS_5 =The Percentage of System Failed messages is normal,
no action needed.
MEM_4 = This is just a warning alarm to inform you that the Usage of
MEMORY is $MEM_LOAD_AVG%; some processes might be using high
memory, please execute the top command and inform the system
administrator. Kindly take this alarm into consideration in order to prevent
any increase in its severity.
MEM_5 = The Usage of MEMORY is normal ($MEM_LOAD_AVG%), it is
below the warning level.
1 - MO-ForwardSM
2 - Charge or Reserve
Charge or Reserve
4 - MO-ForwardSM-ACK
1 - MO-ForwardSM
2 - Charge or Reserve
Charge or Reserve
4 - MO-ForwardSM-NACK
1 - MO-ForwardSM
2 - Charge or Reserve
1 - MO-ForwardSM
2 - Charge or Reserve
Charge or Reserve
1 - MO-ForwardSM
2 - Reserve
Reserve
response
Wait for
Reserve ACK with commit on
3 - Reserve ACK with commit on delivery
delivery
4 - MO-ForwardSM-ACK
5 - MT-ForwardSM
6 - MT-ForwardSM ACK
7 - Commit
Commit
Commit ACK
8 - Commit ACK
1 - MO-ForwardSM
2 - Reserve
Reserve
response
Wait for
Reserve ACK with commit on
3 - Reserve ACK with commit on delivery
delivery
4 - Commit
Commit
Commit ACK
5 - Commit ACK
6 - MO-ForwardSM-ACK
7 - MT-ForwardSM
8 - MT-ForwardSM ACK
1 - MO-ForwardSM
2 - Reserve
Reserve
response
Wait for
Reserve ACK with commit
3 - Reserve ACK with commit on on delivery
delivery
4 - MO-ForwardSM-ACK
5 - MT-ForwardSM
6 - MT-ForwardSM NACK
with permanent error
7 - Cancel
Cancel
8 - Cancel ACK
8 - Cancel ACK
13. CONFORMANCE
The Jinny SMSC conforms to the following standards:
The table below provides information about the compliance of Jinny Short
Messaging Service Centre (SMSC) release 3.6 with the SMS functional
description provided by the 3GPP documents (GSM 03.40 Version 7.5.0
ETSI ETS 300 901 Phase 2+, 3GPP 23.040 Version 5.8.1 3GPP Release
5).
15. APPENDICES
15.1. Message Handling Procedure
SM SC M ain Proce s s
Initialize Internal
Buf f ers, Structures, Start
Shared Mem ory
Establish connection to
unconnected GMSC s
(at connect_period )
N ew GMSC
connected?
Y es
C onnection
Established with
No SMSC Exit
at least a GMSC
?
Y es
Add Av ailable
Y es C hild Exited ?
Messages to TX Queue
Y es
SMSC Exit No
C onf iguration
Period ?
W ait List Tim eout
No
Refresh Process
Start
Routing Table
Period?
Yes
Refresh MT
Messages
Refresh MO-
ESME Messages
Retry Messages
Start
Fetch ? No
Yes
System
Failure? No
Yes
Local
Number (Match
No
Local Address
Range) ?
ESME message
&
Yes No
esme_retry_seq_
Get Retry Delay enabled?
(SMSC Foreign Retry
Sequence) Priority ? No
No Yes
Yes
Retry Sequence
No Yes
Ended ?
Retry Msg
> Max Retry
Records ?
yes
Start
Start
Select Expired MT
Messages (Normal,
Select Expired MO-
Broadcast)
ESME Messages
Fetch ? No
Fetch ? No
Yes
Remove Message
Handle Status
Report
Start
Future Message
No 1
Ready?
Yes
Allow_Embedded
_Cmd
Yes
Yes
Handle Auto-Reply
No
No
Yes
Submit SM to
SMSC
Error Error
Ok
1
Wait Future_Time
Start
New Message ?
Yes
Submit SM to
Database
Wait Store_Time
RX SMSC Process
Start
RX MO Processes (concurrent_rx-mo-num)
Create RX Children
RX MT Processes (concurrent_rx_num)
Message
Sleep Timeout
from GMSC No
Value (ms)
(Timeout) ?
Yes
MT ACK
Handshake MO SUBMIT MT ERROR
ALERT SC
A Child Ended ? No
Yes
MO to
MO to ESME No Groups Command No MO to Embedded No
Address Command Addresse
Y es Y es Y es
Start
Allow Groups
Command ? No Error
Yes
MS Not SC Subscriber
MO Matches
Groups Cmd No Error
Users ?
Yes
Add Message to
Groups Command Ok
Queue
Start
Allow Embedded
No Error
Command ?
Yes
MS Not SC Subscriber
MO Matches
Embedded No Error
Cmd Users ?
Yes
Handle Embedded
Command
Result
The Handle Embedded Command Message Process was described in Fig 57.
Start
-Translate MT address
using tx_translation_file
CheckMTProfile
OK
Allow_Embedded
No
_Cmd?
Yes
Error
Embedded CMD
No
in SM?
Submit SM to
Yes SMSC
MO match Ok
embedded_cmd_
users?
MO prepaid and
prepaid post-mo
Yes Error
No checkpoint?
Check Embedded
Cmd
2
Error Error OK Error Error
HandleMO-MTMessage(contd)
Future
No
command?
AR set for MT
Yes
and AR deliver?
Submit SM to
SMSC Yes
Submit SM to
SMSC
Ok
MO prepaid and
charge prepaid
No
on MO?
Ok Yes Error
Error
Add record to prepaid
queue
No
Handle Auto-Reply
OK Error OK Error
The Check MT Profile and the Submit SM to SMSC processes are described
in Fig 75 and Fig 76 Respectively.
Handle MT Error
Handle Status
Retry Allow Embedded Report
No No
Message ? Command ?
Yes
Delete Message
Forwarding Set No
for MT ?
Yes Yes
The Handle Status Report Process and the Set Waiting Process are
described in Fig 73 and Fig 69 respectively.
Set Waiting
Start
ESME originated
Datagram or Forward
No Store Message over the SMPP
Modes ?
interface?
Yes
No
Yes
Yes
System Failure
Error ?
Yes
MT international (not
matching Local No ESME message? No Priority ?
Routing Expression)? No
Yes Yes
Start
MO Responses ? No
No
Yes
Link Capacity
Yes MT Messages ?
Exceeded
No
No Yes
Fill Packet
Link Capacity
No Fill Packet
Exceeded
No Packet Full ?
Packet Full ?
Yes
Yes
Yes
No Data in Packet ?
Yes
MT_DATA
MO_ACK Send Packet to GMSC According to License Rate
MO_ERROR (or Sending Rate) and Link Capacity
Start
SMSC Log MT
attem pt or Log
MT Final?
Yes
MO/MT m es s age
Mes s age
Succes s fully and No
No
charge_on_error
Received ?
?
Yes
Yes
Charge Prepaid
&
No
prpaid_pos t_m t_
ckpt?
Yes
prepaid not
charged on m o?
No
(prepaid_pos t_m
o_ckpt)?
Subs criber
MO/MT Mes s age
Yes MO to be Charged to be Charged is No
?
Prepaid ?
No
Yes
MO or MT to be
Service to be
Yes Charged Bas ed on Add Record to Prepaid
Charged ?
Service Charging Type Queue
No
Start
Smsc Log MT
attempt or Log
MT Final?
Y es
Log Status
Report?
Y es
No
Charge Prepaid ? No
Y es
Message
Successf ully
Receiv ed within No
charge_status_r
eport_interv al ?
Y es
Subscriber
to be Charged is No
Prepaid ?
Y es
Check MO Profile
MO and MT
Prof iles
Y es
src_restriction ? No OK
Y es
MO imsi and
src_imsi_range No
def ined?
Y es
match ? No
Y es
mo_white enabled
No
and MO in white list?
Y es
check_prepaid
enbabled and MO is No
an onhold prepaid? No
Y es
Y es
No
Y es
Check MT Profile
MO and MT
Profiles
yes
MT Number dest_restriction
No MT Starts with 0 ? No
< 6? enabled?
No
OK
Yes
MT Matches
No
dest_routing_expr ?
mt_white enabled
No
and MT in white list ?
Yes
mo_white enabled
and MO in MO to
irregular MT white?
mt_black Yes
enabled and MT in No
black list? Yes
No
MT in MO
Blocked User's List ?
No
Yes
Yes
Arrival of MO
MO-MT? No
Yes prepaid_pre_m
o_ckpt?
No
prepaid_pre_m
No
o_ckpt? Yes
Yes charging on
submit message
ESME?
future
message?
submit message
Yes No Yes
prepaid_post_
mo_ckpt?
Pre MO,
Pre MO, Pre MO,
MO_MT
MO_MT MO_ESME
Future
message message
message
Post MO,
MO_MT
message
No No
Service to be
charged?
Yes
Charge based on
ESME service type
No
normal
message?
Yes
prepaid_pre_m
No
t_ckpt?
Yes
send message
SM MT?
No
Yes
(Status report)
No
Pre MT, Pre MT, (background message)
MT SMS MT SR
message message
End of MO MT message
prepaid_post_
No
mo_ckpt?
prepaid_post_
mt_ckpt?
Yes
message
No
delivered
Post MT,
MT SMS
message No
No
normal
message?
Yes
prepaid_post_
mt_ckpt?
Yes
message
delivered
Yes
No
(background message)
charged
service?
No
No
Post MT,
MT SMS
message
End of SR message
prepaid_post_
mt_ckpt?
Yes
message
delivered within
interval?
Yes
No
Post MT,
MT SR
No
message
- 11 Priority
status [-1,0,3,4,5,6] Final status of the short message:
- 0 accepted
- 3 delivered
- 4 waiting
- 5 expired
- 6 deleted
- -1 failed
oaddrton [0,1,2,5] Originating address type of number:
- 0 unknown number
- 1 international number
- 2 National number
- 5 Alphanumeric Address
oaddrnpi [0,1,8] Originating address number plan
indicator:
- 0 Unknown numbering plan
- 1 ISDN/Telephone Numbering Plan
- 8 National Numbering Plan
oaddr X(21) Originating address
daddrton [0,1,2,5] Destination address type of number:
- 0 unknown number
- 1 international number
- 2 National number
daddrnpi [0,1,8] Destination address number plan
indicator:
- 0 Unknown numbering plan
- 1 ISDN/Telephone Numbering Plan
- 8 National Numbering Plan
daddr 9(21) Destination address
priority [0-1] Priority ranking of the message
rp [0-1] Reply path
sri [0-1] Status report indicator
pid [0-255] Protocol ID (refer to GSM 03.40 for a
complete description)
dcs [0-255] Data coding scheme (refer to GSM 03.38
for a complete description)
scts Date Server centre time stamp
donedate Date Date when message reached a final status
validityperiod Date Validity period of the message
scheddeliverytime Date Scheduled delivery time of the message
(delayed message delivery)
rxaimid Integer ID number of the receiver aim
txaimid Integer ID number of the transmitter aim
msisdn 9(21) MSISDN of the receiving number
mref [0-255] Mobile internal message reference
number
udhi [0-1] User data header indicator
mode [0-3] Short message transmittal mode (ESME-
MT):
- 0 direct mode
- 1 datagram
- 2 transactional
- 3 store-and-forward
error [0-255] Error cause of message delivery failure
service X(5) Service Type used for charging
prepaid [0-7] This flag is set if chargeable address is a
prepaid customer.
Each bit is an indicator:
- 2 Delivery Report
- 3 Message Status
- 4 Cancel Pending Messages
- 5 Forward
- 6 Auto-Reply
- 7 ALIAS_CMD 7
- 8 Future
- 9 Block
- 10 Last Resort Address
- 11 Priority
Status [-1,0,3,4,5,6] Final status of the short message:
- 0 accepted
- 3 delivered
- 4 waiting
- 5 expired
- 6 deleted
- -1 failed
oaddrton [0,1,2,5] Originating address type of number:
- 0 unknown number
- 1 international number
- 2 National number
- 5 Alphanumeric Address
oaddrnpi [0,1,8] Originating address number plan
indicator:
- 0 Unknown numbering plan
- 1 ISDN/Telephone Numbering Plan
- 8 National Numbering Plan
oaddr X(21) Originating address
daddrton [0,1,2,5] Destination address type of number:
- 0 unknown number
- 1 international number
- 2 National number
daddrnpi [0,1,8] Destination address number plan
indicator:
- 0 Unknown numbering plan
- 1 ISDN/Telephone Numbering Plan
- 8 National Numbering Plan
daddr 9(21) Destination address
priority [0-3] For CMD priority ranking of the message:
- 0 normal priority
- 1 interactive priority
- 2 urgent
- 3 emergency
For TDMA, urgency indicator:
- 0 bulk
- 1 normal
- 2 urgent
- 3 very urgent
rp 0 Reply path (not applicable)
sri [0-1] Status report indicator
pid [0-255] Protocol ID
dcs [0-255] Data coding scheme
scts Date Server centre time stamp
donedate Date Date when message reached a final status
validityperiod Date Validity period of the message
scheddeliverytime Date Scheduled delivery time of the message
(delayed message delivery)
rxaimid Integer ID number of the receiver aim
- 1 8-bit ASCII
For TDMA, bits 0-1 represent the
screening indicator, and bit 2-3 the
presentation indicator:
Screening indicator values:
- 0 user-provided, not screened
- 1 user-provided, verified and
passes
- 2 user-provided, verified and failed
- 3 network-provided
Presentation indicator:
- 0 presentation allowed
- 1 presentation restricted
- 2 number not available
- 3 reseverd
cbn X(33) Call-back number
display_mode [0-2] For CDMA only, display mode (0
immediate display, 1 mobile default, 2
user invoke)
deposit_index [0-255] Unique index to the content of the
message assigned by the SMSC
multi_encoding [0-1] Multiple encoding indicator
mo_esn Integer Electronic Serial Number of the
originating number
mt_esn Integer Electronic Serial Number of the
destination number
Message_encryption [0-1] Message encryption flag
Esmeid Integer Unique message identifier.
Teleservice Integer Telservice
User_response 9(8) Amount deducted by RTCG in a successful
transaction
Prepaid_seqid 9(14) Sequence Identifier used if message
charged by IN
- 0 unknown number
- 1 international number
- 2 National number
daddrnpi [0,1,8] Destination address number plan
indicator:
- 0 Unknown numbering plan
- 1 ISDN/Telephone Numbering Plan
- 8 National Numbering Plan
daddr 9(21) Destination address
scts Date Server centre time stamp
donedate Date Date when message reached a final status
validityperiod Date Validity period of the message
scheddeliverytime Date Scheduled delivery time of the message
(delayed message delivery)
msisdn 9(21) MSISDN of the receiving number
mref [0-255] Mobile internal message reference
number
error [0-255] Error cause of message delivery failure
prepaid [0-1] If chargeable address is a prepaid
customer
mt_min 9(20) MIN of the destination number
mtServMsc 9(21) MT serving MSC
mt_esn Integer Electronic Serial Number of the
destination number
dcs [0-255] Data coding scheme
Message X(280) User Data if present
Teleservive Integer Teleservice
Decoded TLRs:
-------------------------
timestamp=14:23:24.532
type=2 GSM MO
messageid=0
command=0
status=0
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-03-29 14:23:24
donedate=
validityperiod=2011-03-30 14:23:24
scheddeliverytime=2011-03-29 14:23:24
rxaimid=0
txaimid=0
msisdn=9613222222
mref=95
udhi=0
mode=0
error=0
service=
prepaid=1
smsc_dest_table=messages
msg_encryption=0
message=testing
aim_type=0
mo_imsi=123456789101234
moservmsc=961123456
mt_imsi=
servmsc=
esmeid=2
prepaid_seqid=
-------------------------
timestamp=14:23:29.739
type=0 GSM MT
messageid=0
command=0
status=3
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-03-29 14:23:24
donedate=2011-03-29 14:23:29
validityperiod=2011-03-30 14:23:24
scheddeliverytime=2011-03-29 14:23:24
rxaimid=0
txaimid=0
msisdn=9613222222
mref=95
udhi=0
mode=0
error=0
service=
prepaid=1
smsc_dest_table=normal queue
msg_encryption=0
message=testing
aim_type=0
mo_imsi=123456789101234
moservmsc=961123456
mt_imsi=987654321012345
servmsc=9614444444
esmeid=2
prepaid_seqid=
-------------------------
timestamp=14:23:34.939
type=GSM MT SR
reportid=0
msisdn=9613111111
status=3
srq=0
mref=95
tp_status=0
scts=2011-03-29 14:23:24
donedate=2011-03-29 14:23:29
raddrton=1
raddrnpi=1
raddr=9613222222
messageid=0
imsi=123456789101234
servmsc=961123456
prepaid=1
-------------------------
GSM MO to unreachable MT
13:41:48.346|2|0|0|0|1|1|9613111111|1|1|9613222222|0|0|1|0|0|2011-03-
31 13:41:48||2011-04-01 13:41:48|2011-03-31
13:41:48|0|0|9613222222|95|0|0|0||1|0||"testing"|0|961123456||0|123456
78910|0|0|0|1|
13:41:53.552|0|31|0|4|1|1|9613111111|1|1|9613222222|0|0|1|0|0|2011-03-
31 13:41:48||2011-04-01 13:41:48|2011-03-31
13:41:48|0|0|9613222222|95|0|0|27||1|2|419031001447475|"testing"|0|961
123456|9656301008|0|12345678910|0|0|0|1|
Decoded TLRs:
-------------------------
timestamp=13:41:48.346
type=2 GSM MO
messageid=0
command=0
status=0
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-03-31 13:41:48
donedate=
validityperiod=2011-04-01 13:41:48
scheddeliverytime=2011-03-31 13:41:48
rxaimid=0
txaimid=0
msisdn=9613222222
mref=95
udhi=0
mode=0
error=0
service=
prepaid=1
smsc_dest_table=messages
msg_encryption=0
message=testing
aim_type=0
mo_imsi=12345678910
moservmsc=961123456
mt_imsi=
servmsc=
esmeid=1
prepaid_seqid=
-------------------------
timestamp=13:41:53.552
type=0 GSM MT
messageid=31
command=0
status=4
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-03-31 13:41:48
donedate=
validityperiod=2011-04-01 13:41:48
scheddeliverytime=2011-03-31 13:41:48
rxaimid=0
txaimid=0
msisdn=9613222222
mref=95
udhi=0
mode=0
error=27
service=
prepaid=1
smsc_dest_table=normal queue
msg_encryption=0
message=testing
aim_type=0
mo_imsi=12345678910
moservmsc=961123456
mt_imsi=419031001447475
servmsc=9656301008
esmeid=1
prepaid_seqid=
-------------------------
Decoded TLRs:
-------------------------
timestamp=09:09:30.781
type=2 GSM MO
messageid=0
command=0
status=0
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-04-01 09:09:30
donedate=
validityperiod=2011-04-02 09:09:30
scheddeliverytime=2011-04-01 09:09:30
rxaimid=0
txaimid=0
msisdn=9613222222
mref=95
udhi=0
mode=0
error=0
service=
prepaid=1
smsc_dest_table=messages
msg_encryption=0
message=testing
aim_type=0
mo_imsi=12345678910
moservmsc=961123456
mt_imsi=
servmsc=
esmeid=4
prepaid_seqid=
-------------------------
timestamp=09:09:35.889
type=0 GSM MT
messageid=0
command=0
status=4
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-04-01 09:09:30
donedate=
validityperiod=2011-04-02 09:09:30
scheddeliverytime=2011-04-01 09:09:30
rxaimid=0
txaimid=0
msisdn=9613222222
mref=95
udhi=0
mode=0
error=27
service=
prepaid=1
smsc_dest_table=normal queue
msg_encryption=0
message=testing
aim_type=0
mo_imsi=12345678910
moservmsc=961123456
mt_imsi=123123123123123
servmsc=9613606060
esmeid=4
prepaid_seqid=
-------------------------
timestamp=09:09:40.989
type=0 GSM MT
messageid=0
command=5
status=3
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-04-01 09:09:30
donedate=2011-04-01 09:09:40
validityperiod=2011-04-02 09:09:30
scheddeliverytime=2011-04-01 09:09:30
rxaimid=0
txaimid=0
msisdn=9613222222
mref=95
udhi=0
mode=0
error=27
service=
prepaid=1
smsc_dest_table=normal queue
msg_encryption=0
message=testing
aim_type=0
mo_imsi=12345678910
moservmsc=
mt_imsi=456456456456456
servmsc=9613606060
esmeid=4
prepaid_seqid=
-------------------------
timestamp=09:09:40.989
type=0 GSM MT
messageid=0
command=5
status=3
oaddrton=1
oaddrnpi=1
oaddr=9613111111
daddrton=1
daddrnpi=1
daddr=9613222222
priority=0
rp=0
sri=1
pid=0
dcs=0
scts=2011-04-01 09:09:30
donedate=2011-04-01 09:09:40
validityperiod=2011-04-02 09:09:30
scheddeliverytime=2011-04-01 09:09:30
rxaimid=0
txaimid=0
msisdn=9613333333
mref=95
udhi=0
mode=0
error=27
service=FWD
prepaid=1
smsc_dest_table=normal queue
msg_encryption=0
message=testing
aim_type=0
mo_imsi=12345678910
moservmsc=
mt_imsi=456456456456456
servmsc=9613606060
esmeid=4
prepaid_seqid=
-------------------------
timestamp=09:09:46.189
type=GSM MT SR
reportid=0
msisdn=9613111111
status=3
srq=0
mref=95
tp_status=0
scts=2011-04-01 09:09:30
donedate=2011-04-01 09:09:40
raddrton=1
raddrnpi=1
raddr=9613222222
messageid=4
imsi=12345678910
servmsc=9613606060
prepaid=1
-------------------------
ESME-MT message
10:46:19.697|0|16|0|3|0|0|5657|1|1|9613123456|0|0|0|0|0|2011-04-01
10:46:00|2011-04-01 10:46:19|2011-04-02 10:46:00|2011-04-01
10:46:00|0|2|9613123456|0|0|0|0|test|1|2|123123123123123|"testing"|0||
9613606060|0||1|0|0|500000002|
Decoded TLR:
-------------------------
timestamp=10:46:19.697
type=0 GSM MT
messageid=16
command=0
status=3
oaddrton=0
oaddrnpi=0
oaddr=5657
daddrton=1
daddrnpi=1
daddr=9613123456
priority=0
rp=0
sri=0
pid=0
dcs=0
scts=2011-04-01 10:46:00
donedate=2011-04-01 10:46:19
validityperiod=2011-04-02 10:46:00
scheddeliverytime=2011-04-01 10:46:00
rxaimid=0
txaimid=2
msisdn=9613123456
mref=0
udhi=0
mode=0
error=0
service=test
prepaid=1
smsc_dest_table=normal queue
msg_encryption=0
message=testing
aim_type=0
mo_imsi=
moservmsc=
mt_imsi=123123123123123
servmsc=9613606060
esmeid=500000002
prepaid_seqid=
-------------------------
Decoded TLRs:
-------------------------
timestamp=13:50:45.589
type=9 CDMA MO
messageid=0
command=0
status=0
oaddrton=0
oaddrnpi=2
oaddr=5801111111
daddrton=0
daddrnpi=2
daddr=5802222222
priority=0
rp=0
sri=1
pid=0
dcs=2
scts=2011-03-09 13:50:45
donedate=
validityperiod=2011-03-12 13:50:45
scheddeliverytime=2011-03-09 13:50:45
rxaimid=0
txaimid=0
msisdn=5802222222
mref=22
udhi=0
mode=0
error=0
service=
prepaid=0
smsc_dest_table=messages
privacy=0
reply_option=2
alert_priority=0
language_ind=0
cbni=1
cbn_mode=0
cbn_ton=0
cbn_npi=0
cbn=5801111111
display_mode=255
deposit_index=0
multi_encoding=0
user_response=0
message=testing
aim_type=0
mo_imsi=5801111111
mo_esn=0x0
moservmsc=015FD6
mt_imsi=
mt_esn=0x0
mtservmsc=
esmeid=0
teleservice=34825137
-------------------------
timestamp=13:50:49.466
type=5 CDMA MT
messageid=0
command=0
status=3
oaddrton=0
oaddrnpi=2
oaddr=5801111111
daddrton=0
daddrnpi=2
daddr=5802222222
priority=0
rp=0
sri=1
pid=0
dcs=2
scts=2011-03-09 13:50:45
donedate=2011-03-09 13:50:49
validityperiod=2011-03-12 13:50:45
scheddeliverytime=2011-03-09 13:50:45
rxaimid=0
txaimid=0
msisdn=5802222222
mref=22
udhi=0
mode=0
error=0
service=
prepaid=0
smsc_dest_table=normal queue
privacy=0
reply_option=2
alert_priority=0
language_ind=0
cbni=1
cbn_mode=0
cbn_ton=0
cbn_npi=0
cbn=5801111111
display_mode=255
deposit_index=0
multi_encoding=0
user_response=0
message=testing
aim_type=0
mo_imsi=5801111111
mo_esn=0x0
moservmsc=015FD6
mt_imsi=5801234567
mt_esn=0x80d90000
mtservmsc=0535E8
esmeid=0
teleservice=34825137
-------------------------
timestamp=13:57:00.799
type=6 CDMA Delivery Ack
id=87118452
status=3
oaddrton=0
oaddrnpi=2
oaddr=5802222222
daddrton=0
daddrnpi=2
daddr=5801111111
scts=2011-03-09 13:47:46
donedate=2011-03-09 13:47:55
validityperiod=
scheddeliverytime=2011-03-09 13:47:55
msisdn=5801111111
mref=17
msg_status=27
prepaid=0
mt_imsi=4051234567
mtservmsc=D65F01
mt_esn=0x80490000
dcs=0
message=
teleservice=4098
-------------------------
CDMA MO to unreachable MT
11:52:00.297|9|0|0|0|1|1|4011111111|1|1|4022222222|0|0|1|0|8|2011-03-
29 11:52:00||2011-03-30 11:52:00|2011-03-30
00:00:00|0|0|4022222222|49|0|0|0||0|0||"test"|0|4011111111||0|40111111
11|0|2|0|0|0|0|0||255|0|0|0x0|0x0|0|7|4098|0|
11:52:05.505|5|23|0|4|1|1|4011111111|1|1|4022222222|0|0|1|0|8|2011-03-
29 11:52:00||2011-03-30 11:52:00|2011-03-30
00:00:00|0|0|4022222222|49|0|0|27||0|2|4022222222|"test"|0|4011111111|
4022222222|0|4011111111|0|2|0|0|0|0|0||255|0|0|0x0|0x112d687|0|7|4098|
0|
Decoded TLRs:
-------------------------
timestamp=11:52:00.297
type=9 CDMA MO
messageid=0
command=0
status=0
oaddrton=1
oaddrnpi=1
oaddr=4011111111
daddrton=1
daddrnpi=1
daddr=4022222222
priority=0
rp=0
sri=1
pid=0
dcs=8
scts=2011-03-29 11:52:00
donedate=
validityperiod=2011-03-30 11:52:00
scheddeliverytime=2011-03-30 00:00:00
rxaimid=0
txaimid=0
msisdn=4022222222
mref=49
udhi=0
mode=0
error=0
service=
prepaid=0
smsc_dest_table=messages
privacy=0
reply_option=2
alert_priority=0
language_ind=0
cbni=0
cbn_mode=0
cbn_ton=0
cbn_npi=0
cbn=
display_mode=255
deposit_index=0
multi_encoding=0
user_response=0
message=test
aim_type=0
mo_imsi=4011111111
mo_esn=0x0
moservmsc=4011111111
mt_imsi=
mt_esn=0x0
mtservmsc=
esmeid=7
teleservice=4098
-------------------------
timestamp=11:52:05.505
type=5 CDMA MT
messageid=23
command=0
status=4
oaddrton=1
oaddrnpi=1
oaddr=4011111111
daddrton=1
daddrnpi=1
daddr=4022222222
priority=0
rp=0
sri=1
pid=0
dcs=8
scts=2011-03-29 11:52:00
donedate=
validityperiod=2011-03-30 11:52:00
scheddeliverytime=2011-03-30 00:00:00
rxaimid=0
txaimid=0
msisdn=4022222222
mref=49
udhi=0
mode=0
error=27
service=
prepaid=0
smsc_dest_table=normal queue
privacy=0
reply_option=2
alert_priority=0
language_ind=0
cbni=0
cbn_mode=0
cbn_ton=0
cbn_npi=0
cbn=
display_mode=255
deposit_index=0
multi_encoding=0
user_response=0
message=test
aim_type=0
mo_imsi=4011111111
mo_esn=0x0
moservmsc=4011111111
mt_imsi=4022222222
mt_esn=0x112d687
mtservmsc=4022222222
esmeid=7
teleservice=4098
-------------------------
00:05:00.616|13446|12140000041494|255682220333|255787706862|254
733000530|1|0|charge|32|COMMITED
00:05:03.547|13439|12110000041311|255783147386|255782989350|393
205843000|1|0|charge|7|NEGATIVE_AMOUNT
Syntax Description
The ^ char is used to represent beginning with, therefore ^1234 should
^1234
be interpreted as MSISDNs beginning with the sequence 1234
The $ char is used to represent ending with, thus 5678$ will match any
5678$
MSISDN ending with the sequence 5678
A combination of ^ and $ at the beginning and end of a regular
expression, is used to specify an absolute address, i.e. this expression
^123456$
matches MSISDNs beginning with and ending with 123456. The only
value ever matched to this should in fact be 123456 itself
The values enclosed within square brackets [ ] denote a character class.
This expression matches MSISDNs ending with any of 1, 3, 5, 7, or 9.
[13579]$ So that this expression matches MSISDNs ending in an odd digit. If a ^
[^13579]$ character is placed within the brackets, then the match is based on any
character not in the specified class; for example [^13579] $ will
correspond to MSISDNs not ending with any of the specified digits.
The hyphen sign defines a range of characters. This expression
[5-9]$
matches MSISDNs ending with 5, 6, 7, 8 or 9
The parentheses are used to enclose a sub-expression within the regular
()
expression.
This is the OR sign and is used to combine two or more regular
| expressions. For example, the expression (^123) | (789$) will match
MSISDNs starting with 123 or ending with 789
When a regular expression matching a single character, a sub-
expression, is followed by an interval expression of the format {m},
{m,} or {m,n}, together with that interval expression it matches
what repeated consecutive occurrences of the regular expression
would match. The values of m and n will be decimal integers in the
{m}
range 0 < m < n <, where m specifies the exact or minimum number of
{m,n}
occurrences and n specifies the maximum number of occurrences. The
expression {m} matches exactly m occurrences of the preceding
expression, {m,} matches at least m occurrences and {m,n} matches
any number of least m occurrences and {m,n} matches any number of
occurrences between m and n, inclusive.
Table 15-1 UNIX Useful Regular Expressions
The Jinny SMSC administrator can check the regular expression syntax
using two command lines:
EREmatch
>EREmatch
Usage: EREmatch [string to match] [Regular Expression]
BRE match
>BREmatch
Usage: BREmatch [string to match] [Basic Regular
Expression]
Example:
src_routing_expr=(^96279[5678]([0-9]{5}$))
The previous regular expression limits all MO addresses to the customers
subscriber list only.
SMPP Mobile SMPP Mobile SMPP Mobile SMPP Mobile SMPP Mobile SMPP Mobile
0 Space 44 , 88 X 132 Space 176 O 220
1 Space 45 - 89 Y 133 Space 177 + 221 Y
2 Space 46 . 90 Z 134 Space 178 2 222
3 Space 47 / 91 [ 135 Space 179 3 223
4 Space 48 0 92 \ 136 Space 180 224
5 Space 49 1 93 ] 137 Space 181 u 225 a
6 Space 50 2 94 ^ 138 Space 182 226 a
7 Space 51 3 95 _ 139 Space 183 227 a
8 Space 52 4 96 ` 140 Space 184 228
9 Space 53 5 97 a 141 Space 185 229
10 LF 54 6 98 b 142 Space 186 230
11 Space 55 7 99 c 143 Space 187 231 Space
12 PgBrk 56 8 100 d 144 Space 188 232
13 CR 57 9 101 e 145 Space 189 233
14 Space 58 : 102 f 146 Space 190 Space 234 e
15 Space 59 ; 103 g 147 Space 191 235 e
16 60 < 104 h 148 Space 192 A 236
17 Space 61 = 105 i 149 Space 193 A 237 i
18 62 > 106 j 150 Space 194 A 238 i
19 63 ? 107 k 151 Space 195 A 239 i
20 64 @ 108 l 152 Space 196 240 d
21 65 A 109 m 153 Space 197 241
22 66 B 110 n 154 Space 198 242
23 67 C 111 o 155 Space 199 243 o
24 68 D 112 p 156 Space 200 244 o
25 69 E 113 q 157 Space 201 245 o
26 70 F 114 r 158 Space 202 246
27 Space 71 G 115 s 159 Space 203 247 Space
A precision that gives the minimum number of digits to appear for the
d, i, o, u, x, or X conversions, the number of digits to appear after the
decimal point for the e, E, and f conversions, the maximum number of
significant digits for the g and G conversion, or the maximum number
of characters to be printed from a string in s conversion. The precision
takes the form of a period (.) followed by a decimal digit string; a NULL
digit string is treated as zero. Padding specified by the precision
overrides the padding specified by the field width.
+ The result of a signed conversion will always begin with a sign (+ or -).
Blank If the first character of a signed conversion is not a sign, a blank will be
prefixed to the result. This implies that if the blank and + flags both appear, the
blank flag will be ignored.
# This flag specifies that the value is to be converted to an "alternate form." For
c, d, i, s, and u conversions, the flag has no effect. For o conversion, it increases
the precision to force the first digit of the result to be a zero. For x or X
conversion, a non-zero result will have 0x or 0X prefixed to it. For e, E, f, g, and
G conversions, the result will always contain a decimal point, even if no digits
follow the point (normally, a decimal point appears in the result of these
conversions only if a digit follows it). For g and G conversions, trailing zeroes will
not be removed from the result (which they normally are).
f The float or double arg is converted to decimal notation in the style [-]ddd.ddd
where the number of digits after the decimal point is equal to the precision
specification. If the precision is missing, 6 digits are given; if the precision is
explicitly 0, no digits and no decimal point are printed.
e, E The float or double arg is converted in the style [-]d.ddde+ddd, where there
is one digit before the decimal point and the number of digits after it is equal to
the precision; when the precision is missing, 6 digits are produced; if the precision
is zero, no decimal point appears. The E format code will produce a number with E
instead of e introducing the exponent. The exponent always contains at least two
digits.
g, G The float or double arg is printed in style f or e (or in style E in the case of a
G format code), with the precision specifying the number of significant digits. The
style used depends on the value converted: style e or E will be used only if the
exponent resulting from the conversion is less than -4 or greater than the
precision. Trailing zeroes are removed from the result; a decimal point appears
only if it is followed by a digit.
s The arg is taken to be a string (character pointer) and characters from the
string are printed until a NULL character (\0) is encountered or until the number
of characters indicated by the precision specification is reached. If the precision is
missing, it is taken to be infinite, so all characters up to the first NULL character
are printed. A NULL value for arg will yield undefined results.
16.2. References
/1/ Digital Cellular Telecommunications System (Phase 2+); Technical
Realization of the Short Message Service (SMS) Point-to-Point (PP)
(3GPP TS 03.40 Version 7.5.0 Release 1998), European
Telecommunications Standards Institute