Professional Documents
Culture Documents
JSMSC
JSMSC
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
G
M
Mobile Network Jinny SIU Jinny SMSC
S
C
ESME
External Short Messaging Entity (ESME)
The ESME interfaces allow external non-mobile
applications to connect to and interact with the SMSC
Hardware
Sunfire V480
Hardware
Sunfire V480
Software
Solaris 8
SS7 Interface
OAM system
Billing System
• Prepaid
• Postpaid
ESME
• External Short Message Entity
System Context
Database
/home/jinny
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
/var/jinny
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
Distributed architecture
Stand-alone architecture
Secondary Node
Primary Node
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.
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
Local requests
smsc_serial
Database
Distributed architecture
2
sync_local_info
sync_db
External requests
1
Secondary Node
1 2
SMSC
sync_local_info
DAT file
sync_local_info
Primary Node
Secondary Node
Database
2
sync_info
sync_db
Primary Node
Distributed architecture
Startup
Database
jsync
SMSC
ESME servers
Prepaid
JSMSC Features
JSMSC Features (1)
• Store-and-Forward
• Datagram
• Forward
Binary Messaging
Message Expiry
WAP Support
Traffic Throttling
Address Translation
SMS Compression
CDMA support
Reject duplicates
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
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
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)
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)
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
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
MO and MT
Profiles
yes
MT Number dest_restriction
No MT Starts with 0 ? No No
< 6? enabled?
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
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.
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
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
• temporary=65 5
• transient=12 3 4
Jinny SMSC – Message Handling
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.
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)
Normal priority
Low priority
Jinny SMSC – Priority Level
High Priority
Messages sent before other pending messages
Normal Priority
First come first served
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
Low Priority
Full load scenario
smsc_retry=(1,60)(3,60)(4,240)(5,600)
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
Jinny SMSC – Storage
SMSC Database:
Future, waiting, broadcast messages and reports
Subscribers’ groups
ESME configuration
Services information
Distribution Lists
Flat files:
SMSC Queues:
• Prepaid queue
• Overflow queue
• ESME queues
Serial files
Synchronization files
Jinny SMSC – Storage
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)
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
10
MT SM
11 6'
MT ACK SMSC TX TX
8 7
Mobile Process Queue
9
Terminated
Jinny SMSC – Data Flow (2)
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)
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)
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)
SMSC
PLMN
SMSC RX RX MT RX MT
12 13 14
Process Queue Process
15
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
Embedded command
Group code = 1
DL files
DL messages
Distribution List
Web Interface
DL user
Mobile Network
Sig1 SS7
Sig2 SS7
ESME Interfaces
ESME (2)
Interface
Receiver Receiver
TCP/IP
X.25
Transmitter Transmitter
SMSC
ESME (3)
PID range
Receiver
ESME (5)
Transmitter
SMPP Interface
Deliver Notifications
Transmitter:
Submit new messages (ESME/MT)
Accepting a connection
MO to international addresses
Status reports
Billing Interface
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)
Static counters
smsc-alive: status of the process
smsc-mo-total: total number of the messages
received
Dynamic counters
smsc-eo-<esme>
smsc-et-<esme>
smsc-et-<esme>-sms
smsc-et-<esme>-sr
smsc-<esme>-<type>-alive
Statistics Tools (1)
STATUS CHECK
To check the running processes:
• # ps -ef | grep smsc$
• Output:
• Run #ps –ef | grep smsc$ and check that smsc has been
shut down and no process is running.
Operations
• Run #ps –ef | grep smsc$ and check that smsc has
started.
Cleaners scripts
Operations
hour (0-23),
Problem Detection:
Alarms
Messages failing
Alarms:
If the level of the error message is below the specified
AlarmLevel
smsc.mo-error-reason-fail
smsc.mo-error-reason-noreply
smsc.mo-error-reason-memfull
smsc.mo-error-reason-other
Maintenance
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
smsc.mo-error, smsc.mo-error-rt
60%
50%
40%
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