JSMSC

JSMSC
  • JSMSC

  • Views 16

  • Downloads 2

  • File size 1MB
  • Author/Uploader: ABDO

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

SMPP over TCP/IP or X.25

Mobile Network

Jinny SIU

OAM System

G M S C

EMI over TCP/IP or X.25

ESME

SEMA over TCP/IP or X.25

Jinny SMSC

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

Primary Node

SIU N

Secondary 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

3

Primary node procedures Local requests

Database

sync_local_info DAT file

4

sync_local_info

sync_db

smsc_serial

sync_info DAT file

5

Secondary Node

Passive Node

Passive Node

Database

Primary Node

Distributed architecture 2

sync_local_info

sync_db

Primary node procedures External requests

smsc_serial

sync_info DAT file

3

Secondary Node

1

Passive Node

Passive Node

Secondary Node

Distributed architecture 1

smsc_local_serial

2 SMSC

Secondary and client node Procedures Local requests

sync_local_info DAT file

sync_db

3 sync_local_info

Primary Node

Secondary and client node Distributed architecture Procedures External requests

Database

Secondary Node

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

MT

SMSC

MO Submit MO Response (Ack / Error) MT Deliver MT Response (Ack / Error)

– Translate MO and MT Addresses using RX Translation File – Get MO and MT Profiles

Get message paramaters

MO_SUBMIT

Jinny SMSC – Message Handling OK

MO Message  Handle SMS submit

MO to ESME

Check MO Profile

No

Error

1 MO_ERROR

Yes Submit SM to ESME

OK

log_mo_acce pted?

Error log_mo_acce pted?

Append MO to smsc DAT file

Append MO to smsc DAT file

MO_ACK

MO_ERROR

1

No

MO to Groups Command Address

Jinny SMSC – Message Handling Yes

MO Message

Handle MO Group Command Message

OK

log_mo_acce pted?

Error log_mo_acce pted?

Append MO to smsc DAT file

Append MO to smsc DAT file

MO_ACK

MO_ERROR

No

2

Handle SMS Submit (2)

Jinny SMSC – Message Handling 2

MO Message

MO to Embedded Command Addresse

Handle MO Embedded Command Message

OK

log_mo_acce pted?

Error log_mo_acce pted?

Append MO to smsc DAT file

Append MO to smsc DAT file

MO_ACK

MO_ERROR

3

Handle SMS Submit (3)

Jinny SMSC – Message Handling

MO Message

3

Handle MO MT Message

OK

log_mo_acce pted?

Error log_mo_acce pted?

Append MO to smsc DAT file

Append MO to 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 defined?

No

Yes check mo imsi against src_imsi_range regular expression

match ?

Yes

mo_black enabled and MO in black list?

check msisdn against src_routing_expr regular expression

No

No

mo_white enabled and MO in white list?

Yes

No

mt_white enabled and MT in MT from irregular MO white list?

Yes No

check_prepaid enbabled and MO is an onhold prepaid?

No

MO has a CUG and MT not in CUG? No

Yes Yes

Error

Yes

Error

OK

Error

Check MT Profile

MO and MT Profiles

Jinny SMSC – Message Handling MT Number Digit ?

No

Error

yes

MT Number < 6?

Yes

No

Error

dest_restriction enabled?

No

MT Starts with 0 ?

No

Yes OK Yes

MT Matches dest_routing_expr ?

mt_white enabled and MT in white list ?

No

mo_white enabled and MO in MO to irregular MT white?

No

Yes

Yes Yes mt_black enabled and MT in black list?

No No

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 nonstandard 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 & Forward ?

No

Delete Message

Jinny SMSC – Message Handling Yes

not matching local_routing_expr

system failure and foreign number ?

No

Yes

Priority ?

No

Yes

Set Waiting (smsc_foreign_ retry)

Store All Pending Messages

Set Waiting (smsc_priority _retry)

Set Waiting (smsc_retry or defined error retry)

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 number?

No

Yes overload_level reached?

enable_esme_r etry_seq No Yes message from ESME

Yes use smsc_overload_for eign_retry

No

use smsc_foreign_retr y

No

Yes overload_level reached?

priority message? No

use esme_overload_re try_seq

Yes overload_level reached?

Yes

No

No

overload_level reached?

use esme_retry_seq

No Yes use smsc_overload_pri ority_retry

use smsc_priority_retry

Yes

use smsc_overload_ret ry

use smsc_retry

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 Process

RX MT Queue

RX MO Queue

QtoDB Queue

SMSC RX MO Process

MO Ack Queue

SMSC TX Process

SMSC RX MT Process

TX Queue

SMSC Database

QtoDB Process

Embedde d Cmd Queue

Embbedd Cmd Process

Group Cmd Queue

Group Process

Messages Queue

Future Process

SMSC Main Process

Retry Process

Refresh Process

Jinny SMSC – Data Flow

(1)

MO – MT Successful Delivery on First Attem pt SMSC PLMN 2 1 MO SM

12

SMSC RX Process

13

RX MT Queue

14

SMSC RX MT Process

4

SMSC RX MO Process

5

Messag esQueu e

7′ 3

Mobile Originated

RX MO Queue

GMSC

10 MT SM 11 MT ACK Mobile Terminated

6′ 9

SMSC TX Process

8

5′ MO ACK

6

MO Ack Queue

SMSC Main Process

TX Queue

7

Jinny SMSC – Data Flow

(2)

MO – ESME Successful Delivery (DB) SMSC PLMN 2

SMSC RX Process

QtoDB Queue

3

5

RX MO Queue 1 MO SM

4

SMSC RX MO Process

5′ MO ACK

GMSC

7′ Mobile Originated

MO Ack Queue

6′

SMSC TX Process

6

QtoDB Process 7

SMSC Database

8

13

12 Receiv er

9 Deliv er SM

TCP/IP X.25 11 10 ACK

Transmitter ESME Server

ESME

Jinny SMSC – Data Flow

(3)

MO – ESME Successful Delivery (JQ) SMSC PLMN 2

SMSC RX Process 5

3 RX MO Queue 1 MO SM

GMSC

7′ Mobile Originated

6′

SMSC TX Process

4

SMSC RX MO Process

ESME JQ

5′ MO ACK

6

MO Ack Queue

Receiver

10 7 Deliver SM

TCP/IP X.25 9 ACK

8

Transmitter ESME Server

ESME

Jinny SMSC – Data Flow

(4)

ESME-MT Successful Delivery (Direct) SMSC PLMN 10

SMSC RX Process

11

RX MT Queue

Message sQueue GMSC

12

3

RX MT Process

Transmitter

4 Receiv er SMSC Main Process

9 MT_ACK

3′ ACK

TCP/IP X.25

1 4′ SUBMIT SM

ESME Server ESME

5

8 Mobile Terminated

2

7

SMSC TX Process

6

TX Queue

Jinny SMSC – Data Flow

(5)

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

SMSC RX Process

13

RX MT Queue

14

RX MT Process 15

Store and Forward Process 5 11 MT_ACK

Messag esQueu e

GMSC

10 Mobile Terminated

4

SMSC Database 3

Transmitter

6 SMSC Main Process

Receiv er

2

TCP/IP X.25

3′ ACK

4′

1 SUBMIT SM

ESME Server 7

9

SMSC TX Process

8

TX Queue

ESME

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

SMSC

SS7

Sig2

SS7

GMSC

DL files

Mobile Network

SMSC DL

Sig1

ESME Interfaces

ESME

(2)

Interface

Receiver

Receiver TCP/IP X.25

SMSC

Transmitter

Transmitter

ESME Server

ESME Client

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

Prepaid Queue

IN Platform

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-intrntlrt  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- smsc-et- smsc-et–sms smsc-et–sr smsc—alive

Statistics Tools

(1)

Jstat command line [email protected] [~] >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 ) • 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/ .sh > /var/jinny/log/.log 2>&1

To stop the process from inittab:  initdisable

To start the process:  initenable

To restart the process  pkill

To check a process  ps –ef | grep 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 /home/jinny/smsc/bin/smsc – jinny 8314 8310 0 02:48 /home/jinny/smsc/bin/smsc – jinny 8315 8310 0 02:48 /home/jinny/smsc/bin/smsc – jinny 8316 8310 0 02:48 /home/jinny/smsc/bin/smsc – jinny 8317 8310 0 02:48 /home/jinny/smsc/bin/smsc – :

?

00:00:02

?

00:00:00

?

00:00:00

?

00:00:06

?

00:00:00

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 are running :  ps –ef|grep

The smsc registers the pid of each process in the smsc.pid file (located in the configration directory). To identify each smsc process:  cat ~/init/smsc.pid

[smsc] pid=17837

[q2db] pid=17857

[refresh] pid=17852

[rx_1] pid=17860

[retry] pid=17853

[tx_1] pid=17861

[future] pid=17854

[mo_rx_1] 1=17864 2=17865

[groups_cmd] pid=17855

[mt_rx_1] 1=17866 2=17867

[embedded_cmd] pid=17856

Maintenance

Maintenance Problem Detection:  Alarms  Messages failing

 MT messages not delivered in time

Maintenance – Alarms Log file structure:  Name : yyyymmdd.log  Error Message: • hh:mm:dd () < level>  • 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.moerror

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% 15% 10% 5% 0%

22:00:00

20:00:01

18:00:00

16:00:00

14:00:00

12:00:00

10:00:00

8:00:00

6:00:00

4:00:00

2:00:00

0:00:00

system failure

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% 20% 10%

0: 00 :0 0 3: 00 :0 0 6: 00 :0 0 9: 00 :0 0 12 :0 0: 00 15 :0 0: 00 18 :0 0: 00 21 :0 0: 00

0%

failure ratio

Maintenance

ack delay 6500 6400 6300 6200 6100 6000 5900 5800 5700

ack delay

22:00:00

20:00:01

18:00:00

16:00:00

14:00:00

12:00:00

10:00:00

8:00:00

6:00:00

4:00:00

2:00:00

0:00:00

Maintenance

error delay

16000 14000 12000 10000 8000 6000 4000 2000 0 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.