衛二兵+韋福安


摘要:本文介紹了常用短信的格式,并對7位編碼、UCS2編碼的短信發送、接收的報文進行了分析。
關鍵詞:短信;GSM;PDU
短信是日常通訊的主要手段,在GSM 03.38、GSM 03.40中定義了其技術實現。短信的收發共有三鐘方式,BLOCK方式,TEXT方式和PDU方式。PDU方式被所有的手機和短信通訊設備所支持。本文以具體的短信PDU編碼,介紹短信收發的實現。
短信PDU編碼,表面上是一串ASCII碼,由“0”-“9”、“A”-“F”這些數據和字母組成。它們其實是表示的是16進制數。PDU由短信中心地址(SMSC)和傳輸協議數據單元(Transfer Protocol Data Unit)組成。PDU可采用三種編碼:7位編碼、8位編碼、UCS2(16位)編碼。
在以PDU模式發送短信之前,需要設置短信發送模式為PDU方式:發送AT+CMGF=0
1.短信格式
短信中心號碼長度:為S2-S7的字節數。
短信中心號碼類型:常用值91,表示采用國際格式電話編碼。TON:占3位。001表示國際格式;010表示國內格式。NPI:占4位。0001表示電話編碼。
短信中心號碼:若為奇數,在最后面補個F。
短信格式。常用設置:發送單條短信時,設置為11;發送長短信時,設置為51。
TP-RP:應答路徑。0表示不設置;1表示設置。
TP-UDHL:短信數據頭標識。0表示沒有信息頭;1表示包含信息頭。
TP-SRR:狀態報告要求。0表示不需要報告,1表示需要報告。
TP-VPF:短信有效期格式。00表示不提供有效期參數;10表示采用相對格式;01表示采用增強格式;11表示采用絕對格式。
TP-RD:設置短信中心可以處理相同短信標識的短信。0表示允許;1表示拒絕。
TP-MTI:短信類型標識。00表示讀取短信;01表示發送短信;10表示短信狀態報告。
短信標識(TP-MR),常用設置00。
接收方的號碼長度,是電話號碼的數字長度,不是轉換后的字節數。
接收方電話編碼類型,與短信中心號碼類型相同。
接收方號碼,若為奇數,在最后面補個F。
短信類型(TP-PID),常用設置為00,點對點短信。類型定義-Bit7 Bit6:等于00時,表示參照bit0-bit5的參數定義。傳輸類型-Bit5:等于0時,表示點對點傳輸;等于1時表示網絡傳輸。信息類型-Bit4-Bit0:等于00000時,表示短信;等于00001時,表示電報……。
數據編碼方式(TP-DCS),常用設置00(7位編碼)、04(8位編碼)、08(UCS2編碼)。文本壓縮-Bit5:等于0時,禁用文本壓縮;等于1時,啟用文本壓縮。包含信息類別-Bit4:等于0時,表示不啟用 Bit1-Bit0設置的信息類別;等于1時為啟用。編碼類型-Bit3 Bit2:等于00時表示7位編碼;等于01時表示8位編碼;等于10時表示UCS2編碼。信息類別-Bit1 Bit0:00表示短信直接發送;01表示短信先存儲到SIM卡或模塊,再發送;10先判斷模塊和SIM卡有沒有空閑空間,如果有空閑空間,先保存,再發送;11表示將短信存儲到另一個存儲設備上。
短信有效期(TP-VP),常用設置為00。 根據【字節編碼T1】中TP-VPF參數設置。TP-VPF:00表示采用不提供有效期參數,需要省略此字節;10表示采用相對時間格式,共1個字節,字節范圍00-FF,00表示5分鐘; 01表示采用增強格式,共7個字節;11表示采用絕對格式,共7個字節。
短信內容長度(TP-UDL)。當編碼格式為7位編碼時,此值為編碼前對應的字節數。當編碼格式為8位或UCS2時,此值為D2-DN的字節數。
2.短信發送流程
1)首先發送AT+CMGS=XXX
2)收到“>”符號后,發送PDU串,最后再發送16進制數<1A>。
3)等待接收到返回信息+CMGS:OK,表示短信發送成功。
3.短信PDU編碼分析
3.1.發送短信(7位編碼)
發送內容:8個 “1”。
PDU串:0891683108504705F011000B913177277712F500000008B1582C168BC562
編碼分析:
08短信中心號碼長度:8字節
91國際格式電話編碼
683108504705F0短信中心號碼:8613800574500
11發送短信
00短信標識
0B短信接收方電話號碼長度:11個數字,不包括電話編碼格式
91國際格式電話編碼
3177277712F5接收方手機號:13777277215
00點對點短信
007位編碼
00短信有效期,5分鐘
08短信內容長度,編碼前為8個字節
B1582C168BC562 7位編碼的短信內容:11111111
7位編碼原理:
3.2.接收短信(7位編碼)
接收內容:8個 “1”。
PDU串:0891683108504705F0040D91683177277712F500007190822290432308B1582C168BC562
編碼分析:
08短信中心號碼長度:8字節
91國際格式電話編碼
683108504705F0短信中心號碼:8613800574500
04接收短信
0D短信接收方電話號碼長度:13個數字,不包括電話編碼格式
91國際格式電話編碼
683177277712F5接收方手機號:8613777277215
00點對點短信
007位編碼
71908222904323短信時間戳:17年09月28日22時09分34秒
08短信內容長度,編碼前為8個字節
B1582C168BC562 7位編碼的短信內容:11111111
總結:
本文分析了普通短信的7位編碼PDU數據包,8位編碼和UCS2編碼的PDU數據包類似。開發人員可以使用此內容實現短信模塊發送、接收短信。
參考文獻:
[1]GSM 03.38 Version 5.3.0[S] , ETSI TC-SMG
[2]GSM 03.40 V7.3.0[S], ETSI TC-SMG