JMMSC
JMMSC
Messaging Service
Center
Agenda
MMS Overview
MMS Architecture
Hardware
Software
Message Flows
JMMSC Features
Administration
Troubleshooting
MMSC Overview
MMS Overview
What is MMS?
Multimedia Messaging Service
Store and forward messaging service
Allows mobile subscribers to exchange multimedia
messages with other mobile subscribers.
Supports the transmission of various media types
• text
• picture
• audio
• video
• combinations of the above
MMSC Context
Handset Settings
Front >>
Rear >>
Software
Operating System
RH Linux 8
MySQL
Jinny Directory Structure (1)
Jinny Directory Structure (2)
bin – Executables
init - Configuration files
cdr - .txt files containing all binary messages
sent over SMPP to the SMSC
fcgi-bin - fastcgi’s
mmsadm - Web administration files
mm7 - MM7 cgi
passwd - VAS provider account information
html - Legacy files
log - Contains all MMS log files
Symbolic link to /var/jinny/log
Jinny Directory Structure (3)
Jinny Directory Structure (4)
mms_x.fcgi legacy_chk
Mnot Smsnot
Mdel legacy_cgi
Mms2smtp xml2mms
Mms4vas expiry_chk
mm7_to_mms Histool
mm4_tx Smppmsgclient
mm4_rx ppg_cgix
mms_x.fcgi
• [mmsc]
• [mod_*]
Started by apache
• [mmsc]
• [mnot]
mnot
Message Ready
No
to Be Sent ?
Yes
Append to Notification
Message
0 No Yes
Message Notification Yes Yes
Process (mnot) Post to PPG and retries <= Max
Stopped Wait Response Nb retries ?
Message Notification
Message Pushed
No Process (mnot)
Successfully ?
Stopped
Yes
• [mmsc]
• [mdel]
mdel
(plmn_msg)
Message with
No
Delivery Report ?
Yes
Append to Notification
Message
0 No Yes
Message Notification Yes Yes
Process (mdel) Post to PPG and retries <= Max
Stopped Wait Response Nb retries ?
Message Notification
Message Pushed
No Process (mdel)
Successfully ?
Stopped
Yes
Requires sendmail
• [mmsc]
• [mms2smtp]
• [mediatools]
• [mmsc]
• [mms4vas]
• [vastable]
• [mm7_to_mms]
• [mmsc]
• [mm4_tx]
• [mm4_routing]
• [mm4_rx]
• [mm4_trusted_ips]
• [mm4_trusted_domains]
Listen to Port 25
Recipient Matches
Check Mail Size Yes Address@Domain? No Ignore Request
Yes
1
mm4_rx
1
Scan Mail Parts
Yes Yes
Yes
• [mmsc]
• [legacy_chk]
Yes
1 Yes
2
legacy_chk
1
Yes
2
MSISDN has Yes
Send SMS
capable MMS No
Notification
handset? MMSC registers MSISDN
as having Non-capabale
Yes MMS handset
Yes
• [mmsc]
• [smsnot]
• [mediatools]
• [legacy_cgi]
• [xml2mms]
• [mmsc]
• [expiry_chk]
• [mmsc]
• As well as histool.ini
Configuration in smpp.ini
Configuration in ppg_cgi.ini
m-send-req m-forward-req
m-send-conf m-forward-conf
m-notification-ind m-mbox-store-req
WSP/HTTP GET req m-mbox-store-conf
m-retrieve-conf m-mbox-view-req
m-notifyresp-ind m-mbox-view-conf
m-acknowledge-ind mmbox-delete-req
m-delivery-ind m-mbox-delete-conf
m-read-rec-ind m-mbox-descr
m-read-orig-ind
Two Transaction Flow Scenarios
M-Not
ificatio
n.in d
.req
/H TTP GET
WSP
M-retr
ieve .conf
p.ind
ifyRes
M-Not
live ry.ind
M-De
Immediate retrieval
Retrieve MMS
Send MMS Forward MMS
Message from MM1
Notification Response Message to Recipient
Queue
MMS Delivery
No
Report Requested ?
Yes
MMS Delivery
No
Report Allowed ?
Yes
M-Sen
d.req
d
tifyR esp.in
M-No
Time Passes
req
TTP GET.
H
WSP/
M-retrie
ve.con
f
d
le dge.in
kn o w
M-Ac
Interactions occurring beyond MMSM
are not in this document's scope
d
liv ery.in
M-De
MMS Notification Send MMS Send MMS
Deferred retrieval Received Notification Response Retrieval Request
Retrieve MMS
Forward MMS
Message from MM1 Lookup Caller ID
Message to Recipient
Queue
Send MMS
Acknowledgement
MMS Delivery
Report No
Requested ?
Yes
MMS Delivery
No
Report Allowed ?
Yes
MM1 Queue SMS Queue MM3 Queue MM7 Queue MM4 Queue
(msg_plmn) (msg_sms) (msg_email) (msg_mm7) (msg_mm4)
MMS to External
MMS Delivery Report MMS Notification MMSC Main Process Legacy Support SMS Process MMS to Email Process MMS to VAS Process
MMSC Process
Process (mdel) Process (mnot) (mms_x.fcgi) Process (legacy_chk) (smsnot) (mms2smtp) (mms4vas)
(mm4_tx)
Push Proxy
WAP Gateway SMSC Internet External MMSC
Gateway
VAS Application
SMSC
Yes
MT Matches MT Matches
Spool in MM4 Queue
MM7 Regular No MM1 Regular No
(External MMSC)
Expression ? Expression ?
Yes Yes
Generate CDR
Generate Statistical
Information
MMS Spooling (MNP enabled)
MMS Routing /
Spooling (2)
MSISDN Spool in MM3 Queue
No
Recipient ? (Email Recipient)
Yes
MT Matches
Is the recipient’s Spool in MM4 Queue
MM7 Regular No No
IMSI Local ? (External MMSC)
Expression ?
Yes Yes
Generate CDR
Generate Statistical
Information
Message flow
MO – MT
MO – MT (MM5)
MO – VAS
MO – E-mail
MO – MT(MM4)
VAS – MT
MO(MM4) – MT
E-mail – MT
MO - MT
MMSC
MMSC
MMSC
WAP
Gateway
MMS Sender VAS Application
MO - Email
MMSC
Internet
WAP
Gateway
MMS Sender Email Recipient
MO – MT(MM4)
MMS Message
JMMSC Transmitter
VAS - MT
MMSC
MMS Message
Delivery
Foreign MMSC MM4 Queue MMSC Main Process
Transmitter (mm4_msg) (mms_x.fcgi)
Report
ACK
JMMSC Receiver
E-mail - MT
MMSC
Email Sender
The MO Black List of the Jinny MMSC contains the black listed
MO addresses including:
The MT Black List of the Jinny MMSC contains the black listed
MT addresses including:
MO Matches
MO MSISDN
Mobile Restrictions(4)
Sender Regular No No
White Listed ?
Expression ?
Yes Yes
Yes
MSISDN
Recipient ?
Yes
MT Matches
MT MSISDN
Recipient Regular No No
White Listed ?
Expression ?
Yes Yes
Yes
Yes
MMS Spooling
Error
Anti Spam Module
Control
MSISDN list
Get Content
End
clam Antivirus Support
clamav filter
Retrieve part 1
clamd
Get response
(Clean/Infected)
Retrieve next
Yes Infected No part to scan
All parts
Abort transfer Yes No
scanned
End
Send Virus Alert
message to sender
End
Jinny MMSC message routing (1)
VAS Application
A àB
Rule 2
VAS Application
A àB
C
Jinny MMSC message routing (3)
Rule 3
A àB
Rule 4
A àB
B
Jinny MMSC message routing (4)
Routing MMS (Message Routing Enabled)
Check if MSISDN in
Yes
msg_routing table enabled
No If task=forward Yes
Do forward
No
No If task=copy Yes
Do copy
No If task=block Yes
Do block
If task=MMboxStore Yes
No
Do store
Proceed to next
operation
Jinny MMSC lawful interception
LI flow No Sender is in
LI table
Yes
chart
Recipient is
Taken into Yes
No consideration
Recipient
Yes requires LI No
Subject is taken
Yes
into consideration
No
Subject
Yes requires LI No
Delivery time is
taken into Yes
consideration
No
Delivery time
Yes matches time
range
No
Do lawful interception
X
X
Recipient in LI
LI flow
No table Yes
chart Sender is
taken into Yes
No consideration
Sender
Yes requires LI
No
Subject is taken
into consideration Yes
No
Subject
Yes requires LI No
Delivery time is
taken into Yes
consideration
No
Delivery time
Yes matches time
range
No
Do lawful interception
1- Send Routing
Information Request
SRIR
1- Send Routing
Information
1- SendRoutingInfo For
SM
2- SendRoutingInfo For
SM Results
2- Send Routing
Information Results
2- Send Routing
Information Answer SRIA
Multimedia Transcoding Server
Provides a real time transcoding facility
Statistics
Counters
Multimedia Transcoding Server -
Functionality
Smart DRM
Store request
Delete request
View request
Load Balancer
SMSC
Multiple Hosting
m-notification-ind
m-notifyresp-ind
m-acknowledge-ind
m-delivery-ind
Billing (2)
m-forward-req mm7-deliver-res
m-mbox-store-req mm4-forward-req
m-mbox-view-req mm4-forward-res
m-mbox-upload-req mm4-submit-req
m-mbox-delete-req mm4-submit-res
mm7-submit-req mm4-deliveryrep-req
mm7-deliver-req mm4-deliveryrep-res
Billing (3)
MMS Charging
MO MMS messages can be charged
MMS Charging
Charging can also be based on the number of recipients for
the same MMS message.
http://<URL>/mmsadm/
Ran by Apache
Administrator
Guest
Customer Care
mmsc.ini
mmsadm.ini
smpp.ini
ppg_cgi.ini
mm7_to_mms.ini
Histool.ini
Troubleshooting
MO – MT Call Flow
MMSC
1. /usr/local/apache/logs/access_log
The initial HTTP POST from the WAPGW
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – msend-req
and m-send-conf
3. /home/jinny/log/ppg_cgi<date>.log
The generation the binary notification – m-notification-ind
4. /home/jinny/log/mmsctx<date>.log
The binary notification been pushed out over the
SMPP bind to the SMSC
MO – MT Tracing: MT (1)
1. /usr/local/apache/logs/access_log
The initial HTTP GET from the WAPGW – WSP/HTTP GET.req
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-retrieve-
conf
3. /usr/local/apache/logs/access_log
Response from the handset on retrieval
4. /home/jinny/log/mms_ws<date>.log
m-notifyresp-ind been sent by the handset
MO – MT Tracing: MT (2)
5. /home/jinny/log/mms_ws<date>.log
Informs the PPG to generate a delivery report
6. /home/jinny/log/ppg_cgi<date>.log
The generation of the delivery report been – m-delivery-ind
7. /home/jinny/log/mmsctx<date>.log
The delivery report been pushed out over the
SMPP bind to the SMSC
MO – VAS Call Flow
MMSC
WAP
Gateway
MMS Sender VAS Application
MO – VAS Tracing
1. /usr/local/apache/logs/access_log
The initial HTTP POST from the WAPGW
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-send-req
and m-send-conf
3. /home/jinny/log/mms4vas<date>.log
SOAP envelope created and POST to VAS Provider URL
MO – Email Call Flow
MMSC
Internet
WAP
Gateway
MMS Sender Email Recipient
MO – Email Tracing
1. /usr/local/apache/logs/access_log
The initial HTTP POST from the WAPGW
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-send-req
and m-send-conf
3. /home/jinny/log/mms2smtp<date>.log
Converts the MMS to SMTP format message. Passes
messages onto Sendmail mail client to pass on to Mail Relay.
4. /var/log/maillog
Sendmail processes the mail message
MO – MT (MM4) Call Flow
MMS Message
JMMSC Transmitter
MO – MT (MM4) Tracing: MO
1. /usr/local/apache/logs/access_log
The initial HTTP POST from the WAPGW
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-send-req
and m-send-conf
3. /home/jinny/log/mm4_tx<date>.log
Converts the MMS to SMTP format message. Passes messages
onto Sendmail mail client Appends the MM4 headers. Passes
message and MM4_forward.REQ to sendmail to forward onto
foreign MMSC
4. /var/log/maillog
Sendmail processes the mail message and forwards on to foreign
MMSC via mail relay
5. /home/jinny/log/mm4_rx<date>.log
MM4_forward.RES received from foreign MMSC
VAS – MT Call Flow
MMSC
1. /usr/local/apace/logs/access_log
HTTP POST from VAS provider to MM7 cgi
2. /home/jinny/log/mm7tomms<date>.log
Log file for MM7 cgi. SOAP message is converted to MMS
message.
3. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-send-req
and m-send-conf
4. /home/jinny/log/ppg_cgi<date>.log
The generation of the binary notification – m-notification-ind
5. /home/jinny/log/mmsctx<date>.log
The binary notification been pushed out over the
SMPP bind to the SMSC
VAS – MT Tracing: MT (1)
1. /usr/local/apache/logs/access_log
The initial HTTP GET from the WAPGW – WSP/HTTP GET.req
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-retrieve-
conf
3. /usr/local/apache/logs/access_log
Response from the handset on retrieval
4. /home/jinny/log/mms_ws<date>.log
m-notifyresp-ind been sent by the handset
VAS – MT Tracing: MT (2)
5. /home/jinny/log/mms_ws<date>.log
Informs the mdel to generate a delivery report
6. /home/jinny/log/mdel<date>.log
The generation of the delivery report been – m-delivery-ind
is sent to the VAS application
MO (MM4) – MT Call Flow
MMS Message
MMS Message
MM4 RX Process
(mm4_rx)
Delivery Report Acknowledge
JMMSC Receiver
MO (MM4) – MT: MO (MM4) - MMSC
1. /home/jinny/log/mm4_rx<date>.log
2. /home/jinny/log/mm4_tx<date>.log
Sends back the MM4_forward.RES to the foreign MMSC
3. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-send-req
and m-send-conf
4. /home/jinny/log/ppg_cgi<date>.log
The generation of the binary notification – m-notification-ind
5. /home/jinny/log/mmsctx<date>.log
The binary notification been pushed out over the
SMPP bind to the SMSC
MO (MM4) – MT: MT (1)
1. /usr/local/apache/logs/access_log
The initial HTTP GET from the WAPGW – WSP/HTTP GET.req
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-retrieve-
conf
3. /usr/local/apache/logs/access_log
Response from the handset on retrieval
4. /home/jinny/log/mms_ws<date>.log
m-notifyresp-ind been sent by the handset
MO (MM4) – MT: MT (2)
5. /home/jinny/log/mms_ws<date>.log
Informs the PPG to generate a delivery report
6. /home/jinny/log/ppg_cgi<date>.log
The generationof the delivery report been – m-delivery-ind
7. /home/jinny/log/mmsctx<date>.log
The delivery report been pushed out over the
SMPP bind to the SMSC
Email – MT Call Flow
MMSC
Email Sender
1. /home/jinny/log/mm4_rx<date>.log
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-send-req
and m-send-conf
3. /home/jinny/log/ppg_cgi<date>.log
The generationof the binary notification – m-notification-ind
4. /home/jinny/log/mmsctx<date>.log
The binary notification been pushed out over the
SMPP bind to the SMSC
Email – MT Tracing: MT (1)
1. /usr/local/apache/logs/access_log
The initial HTTP GET from the WAPGW – WSP/HTTP GET.req
2. /home/jinny/log/mms_ws<date>.log
mms_x.fxgi process handles the message – m-retrieve-
conf
3. /usr/local/apache/logs/access_log
Response from the handset on retrieval
4. /home/jinny/log/mms_ws<date>.log
m-notifyresp-ind been sent by the handset
Email – MT Tracing: MT (2)
5. /home/jinny/log/mms_ws<date>.log
Look for traces of the message in this log file in case you are
unable to download the message
System Monitoring
System Monitoring
Disk Usage
CPU Usage
Alarms
Disk & CPU Monitoring
jmon
Started and kept running through /etc/inittab
• jmon:2345:respawn:/home/jinny/bin/jmon.sh
>/var/jinny/log/initjmon.log 2>&1
Configuration in
• jmon.ini
• jdiskmon.sh
• jcpumon.sh
Log file jmon<date>.log
Alarms (1)
/home/jinny/bin/alarmprog.sh
• jsn:234:respawn:/home/jinny/bin/jsnmptrapd.sh >
/var/jinny/log/inittrap.log 2>&1
Configuration
• jsnmp.ini
Alarms (2)
• jsn:234:respawn:/home/jinny/bin/jsnmptrapd.sh >
/var/jinny/log/inittrap.log 2>&1
Configuration
• jsnmptrapd.ini
Statistics
m-send-req counters
m-retrieve-conf counters
m-notification-ind counters
m-delivery-ind counters
m-notifyresp-ind counters
m-delivery-ind counters
SMS notification (Legacy) counters
Retrieval from web (Legacy) counters
Website: www.jinny.ie
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.