歡迎您光臨本站 登入註冊首頁

如何解析GSM短消息

admin @ 2014-03-26 , reply:0

概述

摘要:首先簡要說明短消息及其介面協議,然後重點描述如何接收和發送短消息,並用實例進行說明。1、引言   GSM系統是目前基於時分多址技術的移動通信體制中最成熟、最完善、應……

摘要:首先簡要說明短消息及其介面協議,然後重點描述如何接收和發送短消息,並用實例進行說明。

1、引言
    GSM系統是目前基於時分多址技術的移動通信體制中最成熟、最完善、應用最廣的一種系統。GSM的短消息業務,由於其方便、快捷、廉價等特點而受到用戶的青睞,它作為GSM網路的一種基本業務,已得到越來越多的系統運營商和系統開發商的重視。目前,很多網路公司就是靠短消息業務生存和發展。隨著短消息業務的不斷發展,它在移動終端上的應用也越來越廣,最典型的就是車載監控系統。
    這裡用實例說明如何對短消息進行編碼(發送)和解碼(接收),並主要論述PDU模式。

2、 短消息概述
    所謂短消息就是通過GSM網路傳輸的有限長度的文本數字或文字)信息。而短消息業務是GSM系統提供給手機用戶的一種特殊服務。短消息也稱作簡訊。通過GSM網,並設有短消息業務中心(SMSC),便可實現短消息業務。短消息業務按其實現的方式可以分為點到點短消息業務和小區廣播短消息業務。目前主要應用的是點到點短消息業務。
    點到點短消息業務包括兩種情況:一種是移動台終止(接收)點對點短消息(SMS-MT/PP);另一種是移動台發起(發送)點對點的短消息業務(SMS-MO/PP)。點到點短消息業務即通過MO和MT將一條短消息從一個實體發送到指定目的地址的業務。被發送的信息經過編碼后消息長度為140個位元組,也就是一條短消息可以包含160個英文字母或70個中文漢字。

3、短消息的控制介面協議
    目前,對SMS的控制主要有文本模式和PDU(protocol description unit)模式,文本模式只是PDU的一種簡化形式。因此這裡主要論述PDU模式,以及相關的介面命令。
    PDU是發送或接收手機SMS消息的一種方法。消息正文經過十六進位編碼後進行傳送。PDU串可看作由簡訊中心地址+TPDU串組成。
    點對點短消息通信中,信息傳輸雖然會經過很多中間設備,但最終表現在兩個對等短消息實體間進行。短消息傳輸層的協議數據單元稱作TPDU,它包含6種PDU數據,具體參見文獻[2]。下面主要對SMS-DELIVER分發消息的解碼和SMS-SUBMIT提交消息的編碼進行說明。

4、解碼短消息
    如表1所示,點對點短消息通信中,移動台接收短消息(SMS_DELIVER)的TPDU幀包括頭標記、協議標識、時間戳、用戶數據等基本元素。
 
1)指示該數據項是否必須:M(Mandatory)必備項,O(Optional)可選項
2)指示該數據項所佔空間尺寸:Integer(1),bit(b),2bit(2b),Octer(O),7 octets(7o).2-12 octets(2-12o)
3)依賴TP-DCS的編碼方案
其中,頭標記(fo)佔用一個Octet,按位表示不同的含義。在MT中,頭標記從高到低的排列順序如下:
表2 MT消息頭標記

位bit
7
6
5
4
3
2
1
0
域名稱縮寫
TP-RP
TP-UDHI
TP-SRI
No Used
TP-MMS
TP_MTI

  下面結合具體實例進行說明。

4.1  接收到一中文短消息
  例:0891683108705505F0240D91683128787708F6000810300212206500064E2D56FD0041
    這個八位串包含了三個部分:第一個8位表示SMSC信息的長度("08",SMSC的信息("91683108705505F0"),和SMS_DELIVER的TPDU部分。所有的8位都是16進位編碼,除了服務中心號碼,發送號碼和時間戳,它們都是十進位的半R位編碼。
    十進位的半8位只需要將高位和低位交換就可以得到實際的數值。例如:"68 31 08 70 55 05 F0”到"86 13 80 07 5550 OF"。因為電話號碼是一個奇數,沒有辦法組成8位編碼,所以使用F來補齊。
    於是筆者知道這條SMS消息的前兩部分是:
    0891683108705505F0
    08是指跟在後面的短消息服務中心地址佔用的位元組數。
  91是TON/NPI1。TON/NPI遵守International/E.164標準,指在號碼前需加'+'號;此外還可有其他數值(如A1),但91 最常用到。
683108705505F0是所使用的服務中心地址,由於位置上略有處理,實際號碼應為:8613800755500F(字母F 意指長度減1),這就是服務中心的準確地址(號碼)。
下一單元24是信息頭位元組,排列如表2所示。
  TP_MTI為0,表示消息類型為SMS_DELIVER,即移動台MS接收到短消息。
  TP-MMS為1,表示SMSC再無新消息發送給該移動台。如果為0表示還有消息存放在SMSC。
  TP-SRI為1,表示發送者請求狀態報告。
  TP-UDHI為0,表示沒有用戶數據頭。
  TP-RP為0,表示無回復路徑;如果為1,表示存在回復路徑,移動台可循發送SMS消息的短消息中心進行回復(但並非所有SMSC都會這樣沒置)。
所以,信息頭位元組最常見到的值為20或24。
    下一單元是:0D91683128787708F6
這是發送方的地址信息(包括長度0D hex=13 Hex),經分析可知與服務中心地址類似),對方號碼為+8613828777806。
下一單元是:00
  協議標識,一般為00。也有其它值,但很少用。如有興趣,請參看GSM 03.40。
    下一單元是:08
    TP-DCS編碼方案。16-bit格式的數據UCS2,在這裡表示中文編碼。
  下一單元是:10300212206500
  SMSC時間戳。在解析時間戳的時候("10 30 02 12 20 65 00"),前6位代表日期,后6位代表時間,最後2位是時區(SMT+0.00小時)。該項表示格林威治標準時間2001年03月20日21時02分56秒。
  下一單元是:06
  TP-UDL,用戶數據長度,信息的長度。TP-DCS域表明是16-bit格式的數據。因此長度6表示3個16-bit UCS2字元。
  最後一單元是:4E2D56FD0041
  TP-UD,用戶數據,它們代表"中國A"的Unicode碼。因此本條簡訊表示接收到+8613828777806在2001年03月20日21時02分56秒發送的"中國A"的信息。

4.2接收到一英文短消息
    由於中文只能發送70個字元,英文能發送160個字元,所以在控制系統中經常用英文發送信息。例:
    0891683108705505F0240D91683128787708F60000103002122065000AE8329BFD4697D9EC37
    除編碼和數據外,其他與4.1節相同。
    TP-DCS編碼方案域為0,表示7-bit格式的數據。
    信息長度0A表示有10個7-bits字元,實際長度佔9Octets。
用戶數據E8329BFD4697D9EC37代表hellohello。
    "hellohello"包含了10個字元,它們必須一個個用7-bits來代表。如表3所示。
    表3 7位GSM碼

h
e
l
l
o
h
e
l
l
o
1101000
1100101
1101100
1101100
1101111
1101000
1100101
1101100
1101100
1101111


    首先將字元轉換為7位的二進位,然後,將後面字元的位調到前面,補齊前面的差別。例如:h 翻譯成1101000,e翻譯成1100101,顯然h的二進位編碼不足八位,那麼就將e的最後一位補足到C 的前面。那麼就成了11101000(E8)。剩餘的編碼見表4。
    表4  8位Octet碼

11101000
00110010
10011011
11111101
01000110
10010111
11011001
11101100
110111
E8
32
9B
FD
46
97
D9
EC
37

 這樣就變成9個八進位數:E8 32 9B FD 46 97 D9 EC 37.

5、編碼短消息
    如表5所示,點對點短消息通信中,移動台發送短消息SMS-SUBMIT)的TPDU幀包括頭標記、消息參考號、目的地址、協議標識、有效時間、用戶數據等基本元素。
 
其中,頭標記(fo)在MO中,從高到低的排列順序如下:
表6 MO消息頭標記

位bit
7
6
5
4
3
2
1
0
域名稱縮寫
TP-RP
TP-UDHI
TP-SRR
TP-VPF
TP-RD
TP-MTI


    TP_MTI域必須為1,表示消息類型為SMS_SUBMIT,即移動台MS發送短消息。
    有效期格式域(TP-VPF)是有效期域的格式。參見文獻[2]
    有效期域(TP-Validity-Period/TP-VP)是指簡訊在SC中的有效時間。參見文獻[2]
    數據編碼方式與解碼相同。
    下面結合具體實例進行說明。

5.1發送中文短消息
    發送消息"中1"到+8613602529516,有效期為空。
    編碼后的PDU數據為:0021050BA13106529215F60008044E2D0031。
    最前面的00表示簡訊中心為空,即採用SIM卡中中預先設定的SMSC。

5.2 發送英文短消息
    發送消息"ABC"到+8613828777806,有效期5分鐘。
    編碼后的PDU數據為:0011030D91683128787708F60000000341E110。

6、結束語
    PDU消息應用範圍很廣,如果需要,用戶完全可以收發自定義格式的數據,如將TP-DCS設置為4,就可以收發二進位的數據。筆者主要描述與移動終端間的介面協議的短消息分編碼方式,其它協議中的短消息的編解碼方式與其基本相同。

參考文獻
1趙長奎.GSM數字移動通信應用系統.北京:國防工業出版社  2001
2歐洲通信標準協會(ETSI).GSM 03.40:European digital cellular telecommuni-cation system(Phase 2);Technical realization of the Short message Service(SMS) point to Point(PP).版本4.13.0,1996年10月
3歐洲通信標準協會(ETSI).GSM 03.38:European digital cellular telecommuni-cation system(Phase 2+);Alphabets and language-specific information 版本5.6.1,1998年1月


[admin via 研發互助社區 ] 如何解析GSM短消息已經有3223次圍觀

http://cocdig.com/docs/show-post-44880.html