Download as pdf or txt
Download as pdf or txt
You are on page 1of 133

SMSC – Short

Message
Service
Center
Agenda

System Context
JSMSC Features
JSMSC Architecture
Jinny SMSC
Commands
Distribution Lists
ESME Interfaces (optional)
Billing Interface
Administration
Operations
Maintenance
System Context
System Context

Overview

 The Jinny Short Message Service Centre (JSMSC)


provides services to Short Message Service (SMS) users
in GSM, CDMA and TDMA networks
System Context

ESME ESME ESME

SMPP over EMI over SEMA over


TCP/IP or X.25 TCP/IP or X.25 TCP/IP or X.25

G
M
Mobile Network Jinny SIU Jinny SMSC
S
C

OAM System Billing System Prepaid System


System Context

ESME
External Short Messaging Entity (ESME)
 The ESME interfaces allow external non-mobile
applications to connect to and interact with the SMSC

SMSC supports three types of interfaces:


 Short Message Peer to Peer (SMPP)

 External Machine Interface (EMI)

 Open Interface Standard (OIS)


System Context

Jinny Signaling Unit Interface


The SMSC communicates to the rest of the world
via the Jinny GMSC
The Jinny GMSC is connected to the network via
multiple SIUs using GSM or IS-41 Mobile
application Part (MAP) over SS7.
The network elements involved:
 HLR (Routing Information, Alerts)

 MSC (Forward Short Messages MO and MT)


System Context

Hardware
 Sunfire V480

 2 x 1.05GHz Dual core, 8 GB RAM, 70GB HDD

Front View >>


System Context

Hardware
 Sunfire V480

 2 x 1.05GHz Dual core, 8 GB RAM, 70GB HDD

Rear View >>


System Context

Software
 Solaris 8

 SMSC Application Software

 SS7 Interface

 OAM system

 Billing System
• Prepaid

• Postpaid

 ESME
• External Short Message Entity
System Context

Database

MySQL Server Pro


System Context

Jinny Directory Structure

/home/jinny

bin init log html


System Context

bin
 Executables
init
 Configuration files
log
 Symbolic link to /var/jinny/log
 Contains all smsc log files
html
 Contains html pages for web admin
System Context

Jinny Directory Structure

/var/jinny

cdr log messages shm stat


System Context

cdr
 Contains the CDR records

log
 Contains all Jinny log files

messages
 Contains the DAT records of all the messages

shm
 Contains the shared memory

stat
 Contains all the statistics files
JSMSC Architecture
JSMSC Architecture

The SMSC has two architectures:


 Stand-alone architecture

 Distributed architecture
Stand-alone architecture

This architecture consist of two SMSC servers: one as a


Primary Node and the second one as a Standby Node
connected to N number of SIUs as shown in the image
below
SIU 1 SIU 2 SIU N

Secondary Node
Primary Node
Distributed architecture

This architecture consist of several SMSC MPU all active


at the same time and SMSC traffic is distributed on all of
them. In case one MPU fails the remaining ones will
handle it’s traffic. These MPU can be connected to N SIU
as shown in the image below.
SIU 1 SIU 2 SIU N

MPU 1 MPU 2 MPU I


Distributed architecture

In a distributed architecture, the system


consists of:
 A certain number of MPU nodes (all active):
• A minumum of 2 MPU nodes: a primary and a
secondary

• A variable number of client MPU nodes

 At least two SIU nodes


Distributed architecture

The MPUs' functionalities are to:


 Synchronize configuration and profiles between the
primary and the remaining MPUs (secondary and
clients)

 Handle normal short messaging traffic (incoming and


outgoing messages)

 Store waiting messages

 Handle statistics and charging

The SIU functionalities are to:


 Distribute incoming messages among MPUs

 Relay outgoing messages to the appropriate network


element(s)
Distributed architecture

Synchronization processes
jsync [--start|--stop|--status]
 This is the main synchronization process. Its is installed
on both the primary and secondary MPU nodes.

 It detects the most up-to-date database at startup and


synchronizes the nodes.

jfsync [-s | -c [-f filename]


 This is the file synchronization process that is installed
on both the primary and secondary nodes.

 It synchronizes the synchronization transactional files


as well as the general configuration files.
Distributed architecture

Synchronization processes
sync_db [-s|-c [-q]]
 Database synchronization process installed all nodes.
 Responsible for the distribution of the requests
executed on the primary node to all nodes.
 On the secondary and client nodes, it runs as a client,
forwarding local requests to and executing requests
from the primary.
Linux HA Heartbeat
 This is the cluster manager process that is installed on
both the primary and secondary nodes.
 It is responsible for assigning roles to the MPUs,
detecting failures and starting some of the services.
Distributed architecture

Synchronization files
/var/jinny/messages/sync_info*.DAT
 This is the transaction log file. It contains all the
requests successfully executed on the local database.
/var/jinny/messages/sync_local_info*.DAT
 This is the local transactional log file, which contains all
the local requests to be sent to the primary node.
/var/jinny/shm/smsc_serial
 External serial counter for the transaction identifiers
used in sync_info file.
/var/jinny/shm/smsc_local_serial
 External serial counter for the transaction identifiers
used for local requests.
Distributed architecture

Synchronization files
/var/jinny/shm/sync_info
 This file contains information about the transaction log:
path, timestamp and identifier of the last transaction
executed
/var/jinny/shm/sync_local_info
 This file contains information about the local
transaction log: path, timestamp and identifier of the
last transaction forwarded to the primary
jsync counters file
 This file contains counters regarding the number of
times a node has been either a primary or a secondary
MPU. These counters are essential to determine the
node who has the most up-to-date database
Primary Node

smsc_local_serial

Distributed architecture
Web
or
Command Line
Interface
2
1

SMSC

sync_local_info

Database
DAT file

3 4

Primary node procedures sync_db


sync_local_info

Local requests
smsc_serial

sync_info DAT file

Secondary Node Passive Node Passive Node


Primary Node

Database
Distributed architecture
2

sync_local_info
sync_db

Primary node procedures


smsc_serial

External requests

sync_info DAT file

Secondary Node Passive Node Passive Node

1
Secondary Node

Distributed architecture smsc_local_serial

1 2

SMSC

sync_local_info
DAT file

Secondary and client node


Procedures Local requests
sync_db

sync_local_info

Primary Node
Secondary Node

Secondary and client node


Distributed
Procedures architecture
External requests

Database
2

sync_info
sync_db

only for the


secondary MPU
node

sync_info DAT file


1

Primary Node
Distributed architecture

Startup
Database

jsync

Cluster manager: Heartbeat (sync_db, jfsync)

SMSC services (inittab)

 SMSC

 ESME servers

 Prepaid
JSMSC Features
JSMSC Features (1)

Mobile Originating Messaging - MO

Mobile Terminating Messaging – MT


SMSC Modes of Operation
 The Jinny SMSC supports four modes of operation
• Direct Mode

• Store-and-Forward

• Datagram

• Forward

User Data Header Support


JSMSC Features (2)

Binary Messaging

 Nokia Smart Messaging (picture, logo,


tones,…)

 Enhanced Messaging Service (text


formatting, sounds, animations, …)

Multiple Character Set Support (7-bit alphabet,


8-bit binary, 16-bit UCS2 [arabic,..] )

Message Class Support (class 0 immediate


display, class 1 ME specific, class 2 SIM card)

Concatenated Short Messages


JSMSC Features (3)

Message Expiry

Black and White Lists

WAP Support

WAP OTA Configuration

Traffic Throttling

Address Translation

Virtual Service Center

ESME Routing Based on PID


JSMSC Features (4)

MMS (More Message to Send) support

Embedded Database Support

SMS Compression

Internet Mail Interworking

Lawful Interception Message Encryption

CDMA support

Configurable maximum validity period


JSMSC Features (5)

Configurable retry sequence per error code

Reject duplicates

Multiple SMSC instances per machine

Configurable Retry Algorithm Dynamic retry


algorithm for overload protection

Configurable error codes and types

Check and modify ESME status from the


administration interface
JSMSC Features (5)

Configurable retry schemes per ESME

Subscriber's last resort address

Audit trail enhancements


Jinny SMSC
Jinny SMSC – SMSC Performance

A message is one of the following:


 MO to SMSC

 SMSC to MT

 ESME to SMSC

 SMSC to ESME
Jinny SMSC – Message Handling

MO Message

MO Submit
SMSC
Mobile
Originated
Jinny SMSC – Message Handling

MO SMSC MT

MO Submit

MO Response
(Ack / Error)

MT Deliver

MT Response
(Ack / Error)
- Translate MO and MT Addresses
Get message
MO_SUBMIT using RX Translation File
paramaters
- Get MO and MT Profiles

Jinny SMSC – Message Handling


OK Check MO Profile Error

MO Message
 Handle SMS submit MO to ESME No 1
MO_ERROR

Yes

Submit SM to ESME

OK Error

log_mo_acce
log_mo_acce
pted?
pted?

Append MO to Append MO to
smsc DAT file smsc DAT file

MO_ACK MO_ERROR
MO to
1 No Groups Command No 2
Address
Jinny SMSC – Message Handling
Yes

MO Message Handle MO Group


Command Message

OK Error

log_mo_acce
log_mo_acce
pted?
pted?

Append MO to Append MO to
smsc DAT file smsc DAT file

MO_ACK MO_ERROR
Handle SMS Submit (2)

Jinny SMSC – Message Handling


2 MO to Embedded 3
Command Addresse

MO Message
Handle MO Embedded
Command Message

OK Error

log_mo_acce
log_mo_acce
pted?
pted?

Append MO to Append MO to
smsc DAT file smsc DAT file

MO_ACK MO_ERROR
Handle SMS Submit (3)

Jinny SMSC – Message Handling


3 Handle MO MT Message
MO Message
OK Error

log_mo_acce
log_mo_acce
pted?
pted?

Append MO to Append MO to
smsc DAT file smsc DAT file

MO_ACK MO_ERROR
Check MO Profile

MO and MT
Profiles

Jinny SMSC – Message Handling


Yes

src_restriction ? No OK

Yes

MO imsi and
src_imsi_range No
defined?

Yes

check mo imsi
check msisdn
against
against
src_imsi_range
src_routing_expr
regular expression
regular expression

mt_white
mo_white enabled enabled and MT in
match ? No No
and MO in white list? MT from irregular MO
white list?

Yes Yes
Yes
No
No

check_prepaid
MO has a CUG and
enbabled and MO is No
mo_black enabled MT not in CUG?
an onhold prepaid?
and MO in black list?

No
Yes
Yes
Yes

Error Error OK Error


Check MT Profile

MO and MT
Profiles

Jinny SMSC – Message Handling


MT Number Digit ? No Error

yes

MT Number dest_restriction
No MT Starts with 0 ? No No
< 6? enabled?

Yes Error Yes

OK

Yes

mo_white enabled
MT Matches mt_white enabled
No No and MO in MO to
dest_routing_expr ? and MT in white list ?
irregular MT white?

Yes
Yes

Yes
No
mt_black
enabled and MT in No
black list?

MT in MO
Blocked User's List ? No
Yes

Yes

Error Error OK Error


Jinny SMSC – Message Handling

MT Message
 The SMSC can send up to the value of the message
reference size. This is the maximum number of
unacknowledged messages allowed at time.

 Only one unacknowledged message is allowed for a


certain MSISDN.

MT Message
SMSC
Mobile
Terminated
Jinny SMSC – Message Handling

MT positive acknowledgment:
 If the MSISDN is in the waiting list, all its stored
messages are released

 If the originator (MO or ESME) requested a delivery


report, a report is returned
Jinny SMSC – Message Handling

MT Errors:
 Permanent Errors:
• Unknown Subscriber
• Illegal Subscriber
• Teleservice not provisioned
• Call barred
• Facility Not Supported
 Temporary Errors:
• No subscriber reply
• Memory capacity exceeded
• System failure
 Default transient Errors:
• Mobile Station busy for MT SM
Jinny SMSC – Message Handling

The administrator has the ability to specify the


error types of each error returned by the
network. This is particularly useful for non-
standard network errors

Example of custom errors defined in the smsc.ini


 [custom_errors]
• permanent=34

• temporary=65 5

• transient=12 3 4
Jinny SMSC – Message Handling

Default SMSC Error Handling:


 Permanent Errors: the message is deleted

 Temporary Errors:
• Direct and Store & Forward: the msisdn is set to waiting,
and all its corresponding messages are stored. The SMSC
will apply the appropriate retry algorithm to the head of
the messages.

• Datagram and Forward mode: the message is deleted

The retry algorithm depend on:


 The error (default or configured error retry)

 The message priority

 The MT waiting number (foreign or local)


Temporarily Errors
Store &
No Delete Message
Forward
?

Jinny SMSC – Message Handling Yes

not matching
local_routing_expr system failure
and foreign Yes
number ?

Priority No
No ?

Yes

Set Waiting
Set Waiting Set Waiting
(smsc_retry or
(smsc_foreign_ (smsc_priority
defined error
retry) _retry)
retry)

Store All Pending


Messages
Jinny SMSC – Priority Level

The SMSC can handle 3 priority levels:


 High priority (MO and MT VIP)

 Normal priority

 Low priority
Jinny SMSC – Priority Level

High Priority
Messages sent before other pending messages

Special retry sequence


Sent over the network with the priority flag set
GSM priority message:
 Mobile is paged even if considered unreachable

If the global priority flag is set, messages will be


sent without checking if the msisdn is in the
SMSC waiting list.
Jinny SMSC – Priority Level

Normal Priority
First come first served

Normal retry sequence


Jinny SMSC – Priority Level

Low Priority
ESME originated messages

Not charged
Sent using the background mode:
 The SMSC can have up to its window size, number of
unacknowledged messages

 The administrator can reserve in the window a certain


percentage dedicated for normal and retry messages

 The rest of the window can be used for background


messages
Jinny SMSC – Priority Level

Low Priority
Full load scenario

Normal & retry messages background messages


Window size

Normal load scenario

Normal & retry messages background messages


Window size
Jinny SMSC – Retry Algorithm

The SMSC uses different retry sequences:


 For normal messages smsc_retry or configured retry
error sequence (section [error_retry])

 For priority messages smsc_priority_retry

 For foreign numbers failing with System Failure


smsc_foreign_retry

 For ESME-MT messages, configured ESME retry


sequence
Jinny SMSC – Retry Algorithm

Retry Sequence format:

 (number, period in minute)

 smsc_retry=(1,60)(3,60)(4,240)(5,600)

Each retry sequence is coupled with an overload


sequence, used when the retry queue is filled up
to the overload_level (in percentage)
Retry Sequence

system_failure
No

Jinny SMSC – Retry Algorithm


?

Yes

foreign
No
number?

Yes
enable_esme_r
No
etry_seq
overload_level
No
reached?
Yes

Yes message from


No
ESME
use use
smsc_overload_for smsc_foreign_retr Yes
priority
eign_retry y No
message?
overload_level
reached? No
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
Jinny SMSC – Storage

SMSC Database:
 Future, waiting, broadcast messages and reports

 List of waiting numbers

 Subscribers’ Profiles (VIP, prepaid information,


embedded commands lists, CUG, blocked list)

 Subscribers’ groups

 ESME configuration

 ESME pending messages

 Services information

 Distribution Lists

 Commands (embedded, groups)


Jinny SMSC – Storage

Flat files:
 SMSC Queues:

• Broadcast, retry and normal messages pending for


delivery, are stored in permanent files
(/var/jinny/shm/smsc*.DAT)

• Prepaid queue

• Overflow queue

• ESME queues

 Serial files

 Synchronization files
Jinny SMSC – Storage

Flat files (continued):


 SMSC transactional log smsc_log_filename
(/var/jinny/messages/smsc_messages*.DAT):

• All the messages that reached a final status


(delivered, failed, expired)

• All delivery attempts (configurable)

• All MO messages (configurable)

 SMSC Audit trail

 Distribution lists

 Counters file
Jinny SMSC – Components
SMSC

SMSC RX RX MT SMSC RX MT
Process Queue Process Refresh
SMSC
Process
Database

RX MO QtoDB
QtoDB Process
Queue Queue

Embedde
Embbedd Cmd
d Cmd
Process
Queue
SMSC RX MO
Process

Group
Cmd Group Process
Queue

MO Ack Messages
Future Process
Queue Queue

Retry Process
SMSC TX SMSC Main
TX Queue
Process Process
Jinny SMSC – Data Flow (1)

MO - MT Successful Delivery on First Attem pt

SMSC
PLMN
2
SMSC RX RX MT SMSC RX
1 13 14
Process Queue MT Process
MO SM 12
7'
3
Mobile
Originated
Messag
RX MO SMSC RX
4 5 esQueu
Queue MO Process
e

GMSC 5' 6
MO ACK

MO Ack SMSC Main


Queue Process

10
MT SM
11 6'
MT ACK SMSC TX TX
8 7
Mobile Process Queue
9
Terminated
Jinny SMSC – Data Flow (2)

MO - ESME Successful Delivery (DB)

SMSC
PLMN
SMSC RX QtoDB QtoDB
2 6
Process Queue Process

3 5 7

RX MO SMSC RX
4 SMSC
Queue MO Process
Database
1
MO SM 5'
GMSC
MO ACK 8 13
7'
Mobile
Originated
MO Ack 12
TCP/IP
Queue Receiv er
9 X.25
Deliv er SM
11
10
ACK
SMSC TX
6' Transmitter
Process
ESME
ESME
Server
Jinny SMSC – Data Flow (3)

MO - ESME Successful Delivery (JQ)

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'
Mobile
Originated
MO Ack 10
TCP/IP
Queue Receiver
7 X.25
Deliver SM
9
8
SMSC TX ACK
6' Transmitter
Process
ESME
ESME
Server
Jinny SMSC – Data Flow (4)

ESME-MT Successful Delivery (Direct)

SMSC
PLMN
SMSC RX RX MT RX MT
10 11 12
Process Queue Process

2
Message Transmitter TCP/IP
3
sQueue 3' X.25
ACK

GMSC 4
1
Receiv er 4'
SUBMIT SM
SMSC Main
Process ESME
Server
9 ESME
MT_ACK 5
8
Mobile SMSC TX TX
7 6
Terminated Process Queue
Jinny SMSC – Data Flow (5)

ESME-MT Succe s s ful De live ry (Store and Forw ard)

SMSC
PLMN
SMSC RX RX MT RX MT
12 13 14
Process Queue Process

15

Store and 4 SMSC


Forward Database
Process

3
5

11 Messag
MT_ACK GMSC esQueu 2
e Transmitter TCP/IP
10 3' X.25
ACK
Mobile 6
Terminated
1
Receiv er 4' SUBMIT
SMSC Main
SM
Process
ESME
Server
7 ESME

SMSC TX TX
9 8
Process Queue
Jinny SMSC – Overload Protection

ESME input throttling (rate)


Anti-spamming (max_ready)
Background messaging
Output regulation (mref, sending_rate, link_capacity)
Input protection (hash lists size)
Overflow mechanism (mo on congestion, waiting
messages)
Commands
Commands

The Jinny Commands are divided into:


 Group command

 Embedded command

Commands default configuration:


 Start character (*)

 Stop character (#)

 End character (space)

Different syntax and encoding for the same


command
Group Commands

List of numbers (up to 512 char) identified by a


code, created for a certain subscriber
Managed by the subscriber and the
administrator
Example:
 Group address = 1444

 Group code = 1

 Message sent to 14441 will be sent to each number


from the subscribers group list
Embedded Commands

Embedded in the MO/MT message


CLIR, Alias, DR, AR, Forward, Future, Block
Managed by the subscriber and the
administrator
Clir and Alias should be allowed by the
administrator
Distribution List
Distribution List

Distribution List (DL) is a feature to allow an


authorized DL user to easily distribute a single
message to a large number of subscribers
It should be used in a stand-alone architecture.
For a distributed architecture, the Jinny provided
external broadcast tool should be used
DL elements:
 DL users

 DL files

 DL messages
Distribution List

The DL user can:


 Access the Web admin using its username and
password

 Submit up to broadcast_rate DL messages

 Stop/resume/cancel live DL messages

DL are files containing the list of MSIDSNs. They


are created by the administrator.
DL messages are forwarded to the SMSC based
on the rate specified
Distribution List

Web Interface

DL user

FTP SMSC DataBase

Mobile Network
Sig1 SS7

SMSC DL SMSC GMSC


DL files

Sig2 SS7
ESME Interfaces
ESME (2)

Interface

Receiver Receiver

TCP/IP
X.25

Transmitter Transmitter

ESME Server ESME Client

SMSC
ESME (3)

Multiple ESME clients can be handled at the


same time
Routing of MO/ESME messages is based on:
 Regular Expression matching

 Virtual Service Center

 PID range

 Subscriber’s profile (Lawful Interception)

MO to ESME queue type: Database or JQ


Charging can be done for each message
exchanged between the SMSC and the ESME
ESME (4)

External Short Messaging Entity (ESME)

 Receiver
ESME (5)

External Short Messaging Entity (ESME)

 Transmitter
SMPP Interface

Bind: System_id, system_type, password


Receiver:
 Deliver new messages (MO/ESME)

 Deliver Notifications

Transmitter:
 Submit new messages (ESME/MT)

 Query, Delete, Update (for pending messages)


SMPP Interface

Compliant with SMPP Version 3.3 and 3.4.


However, the update, query and delete functions
are only valid if the message is still stored in the
SMSC
EMI/UCP Interface

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 (host and port and/or session
management)
 Reception and handling of the submission of new
messages
Transceivers EMI support both functionalities
SEMA OIS Interface

The Receiver SEMA Process is responsible for:

 Establishing the connection to the ESME

 Delivering new messages

 Delivering notifications of previously submitted messages

The Transmitter SEMA Process is responsible for:

 Accepting a connection

 Authenticating the client (host and port and/or login with


username and password)

 Reception and handling of the submission of new messages


Billing Interface
Billing Interface

Charging can done (for prepaid and postpaid) in


one of the following cases:
 MO submission

 SM reached its final destination


• The SM is an MO to an MT message

• The SM is from an ESME to an MT message, and the


service is to be charged.

• The ESME interface is configured to charge incoming or


outgoing messages

 Status report successfully delivered within a certain


interval
Billing Interface

Different charging can be applied to:


 Normal messages

 MO messages from roaming subscribers

 MO to international addresses

 Status reports
Billing Interface

For post-paid subscribers:


 The SMSC can generate fixed format billing records
(CDR) dependent on the billing system of the operator

 The CDR files can be relayed to a remote billing system


for post-paid subscribers

For prepaid subscriber:


 The interface is dependant on the operator
Billing Interface

Generation of CDR files:


 The SMSC logs in a DAT file, all the messages that
reached a final status (delivered, expired,…)

 The billing process generates the CDR files from the


DAT file based on the done date and the service type of
the message
Prepaid Interface

Customized based on the prepaid system of the


operator
Batch loading of the prepaid subscribers
The prepaid process can handle :
 Multiple connections (receiver and transmitter)

 Online provisioning of prepaid subscribers

 Online Charging
Prepaid Interface

RX

IN Platform
Prepaid
Queue TX TCP/IP

prepaid process

Prepaid Transmitter
Prepaid Interface

Profiles
RX TCP/IP

IN Platform

TX

prepaid process

Prepaid Receiver
Administration
Administration

Statistics
Web administration
Command line administration
Statistics (1)

Statistics based on the SMSC counters


 Static Counters

 Dynamic counters (smsc-esme traffic)


Statistics (2)

Static counters
smsc-alive: status of the process
smsc-mo-total: total number of the messages
received

smsc-mo-packet: Total number of packets received


smsc-mo-submit: total number of the MO messages
(mo-esme and mo-mt)

smsc-mo-command: Total number of mo


commands

smsc-mo-alert: Total number of alert messages


Statistics (3)

smsc-mo-ack: total number of successfully received


MT messages

smsc-mo-ack-rt: total roundtrip time (in ms) for


successfully received messages

 smsc-mo-ack-intrntl and smsc-mo-ack-intrntl-rt

 smsc-mo-ack-local and smsc-mo-ack-local-rt

smsc-mo-ack-sms: total number of successfully


received MT SMS (prepaid and postpaid)

smsc-mo-ack-sr: total number of successfully


delivered MT status report
Statistics (4)

smsc-mo-error: total number of failed MO messages


(including to ESME terminated addresses)

smsc-mo-error-rt: total roundtrip time (in ms) for


failed MT messages

 smsc-mo-error-intrntl and smsc-mo-error-intrntl-


rt

 smsc-mo-error-local and smsc-mo-error-local-rt

smsc-mo-error-sms: total number of failed MO SMS


(prepaid and postpaid)

smsc-mo-error-sr: total number of failed MO status


report
Statistics (5)

smsc-mo-error-reason-fail: counter of the


system failure error received

smsc-mo-error-reason-noreply: counter of the


MO subscriber reply error received

smsc-mo-error-reason-memfull: counter of the


memory capacity exceeded error received

smsc-mo-error-reason-other: counter of the


other error received (call barred, ...)
Statistics (5)

smsc-mt-total: total number of the messages sent


smsc-mt-packet: Total number of packets sent
smsc-mt-deliver: Total number of MT deliver
messages (MO-MT and ESME-MT)

smsc-mt-retry (normal and broadcast)


smsc-mt-storefwd (normal and broadcast)
smsc-mt-direct: total number of messages sent from
the lists

smsc-mt-sms: total number of MT SM sent by the


SMSC

smsc-mt-sr: total number of status report sent


Statistics (5)

smsc-mt-ack: total number of accepted MO messages


smsc-mt-error: total number of rejected MO
messages

smsc-mt-expired: total number of the expired


messages (prepaid and postpaid)

smsc-mt-cancelled: Total number of cancelled


messages (prepaid and postpaid)

smsc-esme: total number of messages exchanged


between the smsc and ESMEs (ESME originated, ESME
terminated)
Statistics (5)

Dynamic counters
smsc-eo-<esme>
smsc-et-<esme>
smsc-et-<esme>-sms
smsc-et-<esme>-sr
smsc-<esme>-<type>-alive
Statistics Tools (1)

Jstat command line


root@db3 [~] >jstat -r 10 'smsc.*'
Jinny Performance Counters file /var/jinny/shm/counters
Initialized 2001-10-27 04:59:29 -- 45 counters
Refresh interval = 10 seconds...
Counter Value Delta Reset Time Last Update
------------------------------ ---------- ---------- ------------- -------------
smsc.mo-total 4424772 695 15:17:56 15:30:16
smsc.mo-packet 4424774 695 15:17:56 15:30:16
smsc.mo-submit 1464123 270 15:17:56 15:30:16
smsc.mo-submit-esme 66695 17 15:17:56 15:30:16
smsc.mo-submit-mt 1372481 249 15:17:56 15:30:16
smsc.mo-command 281 0 15:17:56 15:17:32
smsc.mo-alert 151646 29 15:17:56 15:30:16
smsc.mo-ack 2073623 291 15:17:56 15:30:16
smsc.mo-ack-sms 1675174 236 15:17:56 15:30:16
smsc.mo-ack-sms-prepaid 1093245 177 15:17:56 15:30:16
smsc.mo-ack-sms-postpaid 581929 59 15:17:56 15:30:16
smsc.mo-ack-sr 398448 54 15:17:56 15:30:16
smsc.mo-error 645498 91 15:17:56 15:30:16
smsc.mo-error-sms 609135 80 15:17:56 15:30:16
smsc.mo-error-sr 36363 11 15:17:56 15:30:15
Statistics Tools (2)

- Daily statistics files (csv format)


Operations
Operations

Processes run by inittab:


 SMSC
 SMPP Server (aim)
 EMI Server (emiserv)
• EMI Receiver (emiserv –r)
• EMI Transmitter (emiserv –t)
 SEMA Server (semaserver)
• SEMA Receiver (semaserver –r <id>)
• SEMA Transmitter (semaserver –t)
 Prepaid Process (prepaid_in)
Operations

The following can be applied for each process:


First time startup: add a similar line to inittab
 smsc:234:respawn:/export/home/jinny/bin/<process>
.sh > /var/jinny/log/<process>.log 2>&1
To stop the process from inittab:
 initdisable <process>
To start the process:
 initenable <process>
To restart the process
 pkill <process>
To check a process
 ps –ef | grep <process> or check the alive counter
Operations

STATUS CHECK
 To check the running processes:
• # ps -ef | grep smsc$

• The minimum number of running processes should be 11 (This


number can be greater depending on the configuration set inside
the smsc.ini)

• Output:

– jinny 8310 8306 0 02:48 ? 00:00:02


/home/jinny/smsc/bin/smsc
– jinny 8314 8310 0 02:48 ? 00:00:00
/home/jinny/smsc/bin/smsc
– jinny 8315 8310 0 02:48 ? 00:00:00
/home/jinny/smsc/bin/smsc
– jinny 8316 8310 0 02:48 ? 00:00:06
/home/jinny/smsc/bin/smsc
– jinny 8317 8310 0 02:48 ? 00:00:00
/home/jinny/smsc/bin/smsc
– :
Operations

To check the SMSC status through the web interface, from


the main menu go to SMSC Status. Details on the SMSC
status and since when it has been running will be
displayed. In order to restart the SMSC click the Restart
Smsc button.
Operations

STARTUP AND SHUTDOWN


 To stop the SMSC from the command line
• Access as super user

• From the command line, enter :


#/home/jinny/bin/initdisable smsc

• To execute the new condition, enter: #/sbin/init q

• Check the following in the inittab:


– smsc:2345:off:/home/jinny/smsc/bin/smsc.sh >
/var/jinny/log/initsmsc.log 2>&1

• Run #ps –ef | grep smsc$ and check that smsc has been
shut down and no process is running.
Operations

STARTUP AND SHUTDOWN


 To start the SMSC from the command line
• Access as super user

• From the command line, enter :


#/home/jinny/bin/initenable smsc

• To execute the new condition, enter: #/sbin/init q

• Check the following in the inittab:


– smsc:2345:respawn:/home/jinny/smsc/bin/smsc.sh >
/var/jinny/log/initsmsc.log 2>&1

• Run #ps –ef | grep smsc$ and check that smsc has
started.

• Note: smsc is a unique sequence assigned by the user of


1-4 characters which identifies an entry in inittab.
Operations

Processes run as cron jobs:


 Billing process (smsccdr / smscmcr)

 Statistics processes (jstat, mrtg)

 Monitoring processes (cpumon, queuemon,…)

 Cleaners scripts
Operations

To view the cron jobs:


 crontab –l

To add new cron job:


 crontab –e

The first five integers in a crontab entry are:


 minute (0-59),

 hour (0-23),

 day of the month (1-31),

 month of the year (1-12),

 day of the week (0-6 with 0=Sunday).


Operations

To check that processes


[smsc] [q2db]
are running : pid=17837 pid=17857
 ps –ef|grep <proc>
[refresh] [rx_1]
The smsc registers the pid=17852 pid=17860

pid of each process in [retry]


[tx_1]
pid=17861
the smsc.pid file pid=17853
(located in the [future]
[mo_rx_1]
1=17864
configration directory). pid=17854 2=17865

To identify each smsc [groups_cmd] [mt_rx_1]


1=17866
process: pid=17855
2=17867
 cat ~/init/smsc.pid [embedded_cmd]
pid=17856
Maintenance
Maintenance

Problem Detection:
 Alarms

 Messages failing

 MT messages not delivered in time


Maintenance - Alarms

Log file structure:


 Name : <process name>yyyymmdd.log
 Error Message:
• hh:mm:dd (<pid>) < level> <function name>  <Error
message>
• 19:35:46.608 ( 336) 3 SMR_MT_DATA_ACK ->
962795123011->962795723491 mref:176 id:0
 Levels:
• 0 critical errors
• 1 warnings
• 2 Minor warnings
• 3 information
• 4 debug mode
Maintenance - Alarms

Alarms:
 If the level of the error message is below the specified
AlarmLevel

 AlarmProg script sends the alarm as an SNMP trap to a


Network Management Station specified in it.

 Jinny provides a SNMP trap collector that sends the


alarms via Email
Maintenance

Counters are used to monitor the health of the


system:
 Getting the current performance

 Checking the failure ratios

 Checking the network delays


Maintenance

Getting the current performance:


 Performance = smsc.mo-submit + smsc.mt-deliver +
smsc.esme

 smsc.mt-deliver = smsc.mo-ack + smsc.mo-error

 Performance = smsc.mo-total + smsc.esme

 jstat -r 1 -t 'smsc.mo-total' smsc.esme


Maintenance

Checking the failure ratio:


 smsc.mt-deliver, smsc.mo-ack, smsc.mo-error

 jstat -r 1 -t smsc.mt-deliver smsc.mo-ack smsc.mo-


error
Maintenance

Checking the type of errors:


 jstat -r 1 -t 'smsc.mo-error' 'smsc.mo-error-reason*‘

 smsc.mo-error-reason-fail

 smsc.mo-error-reason-noreply

 smsc.mo-error-reason-memfull

 smsc.mo-error-reason-other
Maintenance

 If smsc.mo-error-reason-fail ration > 50% there’s


probably a network problem

system failure

40%
35%
30%
25%
20% system failure
15%
10%
5%
0%
0:00:00
2:00:00
4:00:00
6:00:00
8:00:00
10:00:00
12:00:00
14:00:00
16:00:00
18:00:00
20:00:01
22:00:00
Maintenance

Checking the network delays (for local and


international numbers):
 smsc.mo-ack, smsc.mo-ack-rt

 smsc.mo-error, smsc.mo-error-rt

The counters give the round trip time in ms


Maintenance

The usual error ratio is 30%. It increases during


the night when most of the subscribers have
their mobile turned off.
failure ratio

60%

50%

40%

30% failure ratio

20%

10%

0%
00

00

00

00
0

0
:0

:0

:0

:0

0:

0:

0:

0:
00

00

00

00

:0

:0

:0

:0
0:

3:

6:

9:

12

15

18

21
Maintenance

ack delay

6500
6400
6300
6200
6100 ack delay
6000
5900
5800
5700
0
2000
4000
6000
8000
10000
12000
14000
16000
0:00:00
2:00:00
Maintenance

4:00:00
6:00:00
8:00:00
10:00:00
12:00:00
14:00:00
error delay

16:00:00
18:00:00
20:00:01
22:00:00
error delay
Maintenance

Checking the number of messages rejected


(service center congestion):
 smsc.mo-submit, smsc.mt-ack, smsc.mt-error

If the black list is enabled (prepaid with no


credits left, …), the ratio of rejected messages is
usually between 5 and 10%.
The smsclistmon tool gives the exact number of
pending messages
Copyright © 2009 Jinny Software Ltd. All rights
reserved. Jinny, Jinny Software, More Messaging and
other Jinny products mentioned herein as well as their
respective logos are trademarks or registered
trademarks of Jinny Software Ltd. in Ireland and in
several other countries all over the world.

You might also like