GSM Mobile Application Part (MAP) – Part 1
What is MAP? From Wikipedia definition I found
The Mobile Application Part (MAP) is an SS7 protocol which provides an application layer for the various nodes in GSM and UMTS mobile core networks and GPRS core networks to communicate with each other in order to provide services to mobile phone users. The Mobile Application Part is the application-layer protocol used to access the Home Location Register, Visitor Location Register, Mobile Switching Center, Equipment Identity Register, Authentication Centre, Short message service center and Serving GPRS Support Node.
Last time I worked at a company that develop their own SMSC, HLR, VLR, and other telco product. One of my job is developing GSM-MAP Driver focusing on SMSC MAP stuff. OK, let’s talk about MAP
What you need to know first is SS7. If you’re familiar with TCP/IP stack, it will not really hard to understand, but maybe yes hard to figure
.
Just for additional information, let me give you a snapshot log what happened when SMSC want to deliver SMS to your mobile phone:
2006-12-11 13:40:48.789 491 MSU UDT 8842 403 Begin 00010021 MAP OP: ForwardShortMessage
MTP2 MSU
[.111 1011] BSN 123
[1... ....] BIB 1
[.111 1110] FSN 126
[1... ....] FIB 1
[..11 1111] Li 63
MTP3
[10.. ....] NI - Network Indicator National network (2)
[..00 ....] Spare 0
[.... 0011] SI - Service Indicator SCCP (3)
DPC 8842 (Dec) - 228a (Hex) - Osaka
OPC 0403 (Dec) - 0193 (Hex)
SLS 05 (Dec) - 05 (Hex)
SCCP Msg=UDT unitdata
[0000 1001] Message Type UDT unitdata
Protocol class 80 (Hex)
[1000 ....] Message handling Return message on error
[.... 0000] Protocol Class Class 0
Called party address
Length 10
[.0.. ....] Routing indicator Routing based on Global Title
[..01 00..] Global Title included includes translation type, numbering plan, encoding scheme and nature of address indicator
[.... ..1.] Subsystem number In use
[.... ...0] Signalling point code indicator Not in use
[0000 1000] Affected Subsystem MSC
[0000 0000] Translation type Not used
[0001 ....] Numbering plan ISDN/telephony numbering plan (Rec E.163/E.164)
[.... 0010] Encoding scheme BCD even number digits
[.000 0100] Nature of address indicator International number
Called address 4540590016
Calling party address
Length 10
[.0.. ....] Routing indicator Routing based on Global Title
[..01 00..] Global Title included includes translation type, numbering plan, encoding scheme and nature of address indicator
[.... ..1.] Subsystem number In use
[.... ...0] Signalling point code indicator Not in use
[0000 1000] Affected Subsystem MSC
[0000 0000] Translation type Not used
[0001 ....] Numbering plan ISDN/telephony numbering plan (Rec E.163/E.164)
[.... 0010] Encoding scheme BCD even number digits
[.000 0100] Nature of address indicator International number
Calling address 4531899997
Data
Length 90
TCAP
Message Type Begin (2)
Transaction Portion
OrigID '00 01 00 21' Hex
DialoguePortion
External
OBJECT IDENTIFIER 0.0.17.773.1.1.1
itu-t(0) rec(0) q(17) (773) as(1) dialogue pdu(1) Version1(1)
Single ASN.1
DialogueRequest
OBJECT IDENTIFIER 0.4.0.0.1.0.25.2
itu-t(0) id-org(4) etsi(0) mobileDomain(0) gsm-network(1) appContext(0)
shortMsgMT-RelayContext(25).version2(2)
Components Portion
Component MAP (Component 1)
Component type Invoke
Invoke-ID 1
MAP (Component 1)
[0010 1110] Operation ForwardShortMessage (46 Dec)
SM-RP-DA
[1000 0000] IMSI MCC:238 MNC:07 MSIN:0000000007
SM-RP-(D)OA
[1000 0100] serviceCentreAddress
AddressString
[1... ....] Extension no extension
[.001 ....] Nature of address indicator International number
[.... 0001] numbering plan indicator ISDN/Telephony Num plan.E.164
Address digits 4531899997
SM-RP-UI
[0000 0100] SignalInfo '240a91541308007000006021112104540004d4f29c0e'Hex
SMS
[0000 0100] SMS_V2_GSM03.04
[.... ..00] TP-MTI SMS-DELIVER (SC to MS)
[.... .1..] TP-MMS No more messages are waiting for the MS in this SC
[...0 0...] spare
[..1. ....] TP-SRI A status report will be returned to the SME
[.0.. ....] TP-UDHI The TP-UD field contains only the short message
[0... ....] TP-RP TP-Reply-Path parameter is not set in this SMS-SUBMIT/DELIVER
TP-OA Originating-Address
[.001 ....] Type of number International number
[.... 0001] Numbering plan id ISDN/Telephony (E.164/E.163)
Number 4531800007
TP-PID Protocol-Identifier
[00.. ....] Assigns bits 0..5 telematic
[..0. ....] no interworking, but SME-to-SME protocol
[...0 0000] SM-AL protocol Unknown
TP-DCS Data-Coding-Scheme
[00.. ....] Coding group General Data Coding Indication
[..0. ....] uncompressed
[...0 ....] Bit 1 & 0 have no message class meaning
[.... 00..] Alphabet Default alphabet-7bit
TP-SCTS Service-Center-Time-Stamp
year 06
month 12
day 11
hour 12
minute 40
second 45
time-zone GMT +00 (0 quarters)
TP-UDL User-Data-Length 4
TP-UD User-Data
TP-User-Data Test
FB FE 3F 83 8A E2 64 50 09 80 03 0D 17 0A 12 08 00 12 04 54
04 95 00 61 0A 12 08 00 12 04 54 13 98 99 79 5A 62 58 48 04
00 01 00 21 6B 1A 28 18 06 07 00 11 86 05 01 01 01 A0 0D 60
0B A1 09 06 07 04 00 00 01 00 19 02 6C 34 A1 32 02 01 01 02
01 2E 30 2A 80 08 32 08 07 00 00 00 00 F7 84 06 91 54 13 98
99 79 04 16 24 0A 91 54 13 08 00 70 00 00 60 21 11 21 04 54
00 04 D4 F2 9C 0E
See u…
We are developing an application using SMPP Protocol and MAP interface. I have to link the SMSC with the HLR. Now, as u mentioned that one of your job is developing GSM-MAP Driver focusing on SMSC MAP stuff, can u help us in guiding how to do tht. Also, is there any kind of simulator for HLR as we have for SMSC?Looking forward to ur prompt reply..
Iqbal Hamdi
February 22, 2008 at 9:13 pm
Excelent!!! I was lookin for that!!!
Leonel Aquino
April 19, 2008 at 11:51 pm
u are very good . i was looking for some one who can expalin sms in this detail. coz i work in SMSC.keep it up
anurag
July 21, 2008 at 1:49 pm
useful info, thanks
thanks, nice infor
January 22, 2009 at 8:56 pm