SMS基本概念
GSM中唯一不要求建立端-端業務路徑的業務就是短消息,即使移動臺已處于完全電路通信情況下仍可進行短消息傳輸。
短消息通信僅限于一個消息,換言之,一個消息的傳輸就構成了一次通信。因此,業務是非對稱的,一般認為移動起始短消息傳輸與移動終接短報文傳輸是兩回事。這并不阻礙實時對話,但系統認為不同的消息彼此獨立,消息的傳輸總是由處于GSM外部的短消息服務中心(SMSC)進行中繼,消息有目的地或起源地,但只與用戶和SMSC有關,而與其他GSM基礎設施無關
短消息的體系結構
GSM標準中定義的點-點短消息服務使得短消息能在移動臺和短消息服務中心之間傳遞。這些服務中心是通過稱為SMS- GMSC的特定MSC同GSM網絡聯系的。
有個圖在這里,呵呵,不貼了,大家自己畫畫
SME:Short Messaging Entity,短消息實體。它可以接收或改善短消息,位于固話系統、移動基站或其他服務中心內;
SMSC:Short Message Service Center,短消息服務中心,負責在基站和SME間中繼、儲存或轉發短消息;移動臺(ME)到SMSC的協議能傳輸來自移動臺或朝向移動臺的短消息,協議名為SMTP(Short Message Transmission PRotocol);
SMCGWMS或SMCGMSC:SMS-Gateway MSC,SMS網關。接收由SMSC發送的短消息,向HLR查詢路由信息,并將短消息傳送給接收者所在基站的交換中心;
HLR:Home Location Register,歸屬位置寄存器。用于永久儲存管理用戶和服務記錄的數據庫,由SMSC產生。SMS網關與HLR之間的協議使前者可以要求HLR搜索可找到的用戶地址。它與MSC與HLR之間的協議一起,能在移動臺因超出覆蓋區而丟失報文、隨后又可找到時加以提示。
MSC:Mobile Switching Center,移動交換中心。負責系統切換管理并控制來自或發向其他電話或數據系統的拔叫。
VLR:Visitor Location Register:,訪問位置寄存器。含有用戶臨時信息的數據庫。交換中心服務訪問用戶時需要這些信息。
重要概念
·移動起始短消息:Mobile Originated Short Message。
一個GSM用戶發送短消息時,他必須至少在其內容中包含最終地址的識別符,和處理這消息的服務中心號碼,然后請求傳遞。
短消息的傳輸要求在移動臺和MSC之間建立信令連接。消息本身的傳遞要求在無線路徑上建立專用的鏈路層鏈接,并要求采用專用的消息傳遞協議。在規定的協議棧的頂部是所謂的傳輸層協議,在移動起始短消息情形下,它是一條單獨的報文,即SMTP(不是TCP/ip的SMTP)短消息傳送報文,低層處理應答的傳送,它只指出SMSC已收到報文。
·移動終接短消息:Mobile Terminated Short Message。
目的地為GSM用戶的短消息必須首先先從發送方路由至短消息服務中心,然后再被路由至實際地址。
當SMSC有短消息需發送到期某一GSM用戶時,它建立一條包含各種利于接收者的信息的SMS-DELIVER報文。此信息包括用戶的內容,最初的發送者身份及用于批示短消息已被SMSC接收的時間標記。與MO情形相似,SMS-DELIVER報文將在各種接口上傳送。
在達到目的地前,報文的實際路由必須利用MAP/C查詢功能獲得,采用的是如下方法:SMSC將短消息傳到與服務中心相連的SMS網關,網關的選擇依賴于它想到在的用戶,因為通常網關僅能處理某些用戶(某家營運商或某個國家的用戶)。這樣,用戶通過目錄號(一般同電話一樣)來識別,這些目錄號最初是由短消息發送者輸入的,這使得SMS網關能識別有關的HLR并查詢它。查詢是通過發送一個專用報文,即用于短消息的MAP/C SEND ROUTING INFOR報文來實現;對其應答既可采用包含用戶正在訪問的MSC/VLR的SS7地址的MAP/C SEND ROUNTING INFO FOR SHORT MESSAGE RESULT報文,又可當已知用戶此時不可到達時采用拒絕報文。
SMS由哪些要素組成?
SMS由幾個與提交或接收相關的服務要素組成,如:有效期(在將短消息成功送達用戶前SMSC需要保證的儲存時間),優先性。此外,短消息還提供提交消息的時間、告訴移動臺是否還有更多消息要發送,以及還有多少條消息要發送等。
短消息不可到達
短消息不可到達的情況有三種:
·當被SMS網關查詢時,移動臺不在服務區域、未獲得服務授權、或有未成功發送報文正等待告警,HLR就會立即知道不能發送;
·第二種情形是,MSC/VLR已收到報文但不能傳送的情況。此時,它先向SMS網關發送一故障指示,作為MAP/H FORWARD SHORT MESSAGE報文的應答;然后,網關一方面會向SMSC發送否定報告,另一方面向HLR發送MAP/C SET MESSAGE WAITING DATA報文,在收到報文確認后進行表格更新。該事件會儲存在VLR和HLR內的用戶記錄中;
第三種情況是MSC/VLR向用戶發送有效報文后發現不可送達。
SMS程式開發
九十年代初,AT命令僅被用于modem操作。由于沒有控制移動電話文本消息的先例,因此開發了一種叫SMS Block Mode的協議,通過終端設備(TE)或電腦來完全控制SMS。幾年后,主要的移動電話生產廠商諾基亞、愛立信、摩托羅拉和HP共同為GSM研制了一整套AT命令,其中包含對SMS的控制。AT命令在此基礎上演化并被加入GSM 07.05標準,以及之后的GSM 07.07標準。
對SMS的控制共有三種實現途徑:
· 最初的Block Mode;
· 基于AT命令的Text Mode;
· 基于AT命令的PDU Mode;
到現在,PDU已取代Block Mode,后者逐漸淡出。
什么是PDU Mode?
它是發送或接收手機SMS消息的一種方法。消息正文經過十六進制編碼后進行傳送。
PDU命令有哪些?
基本的PDU命令是AT+CMGR,AT+CMGL,AT+CMGS。例如讀取電話上全部未讀過的SMS消息,最簡單的辦法是用AT+CMGL=0;而用AT+CMGL=4則可讀取全部SMS消息,無論已讀過與否。
實例:
15:38:58 TX:AT
15:39:05 TX:AT+CPMS="ME"
15:39:05 RX:AT+CPMS="ME"
15:39:05 RX:
+CPMS: 15,15,4,10,15,15
15:39:05 RX:
OK
15:39:07 TX:AT+CMGL=0
15:39:07 RX:AT+CMGL=0
15:39:07 RX:
+CMGL: 5,0,,52
15:39:07
RX:07914408020033F40407D0B1582C0600000030525183920028D43708
2E7FD3CB633A888E2E83EE6F399B0C32CBDF6D10B96C0FCFE9617AFAED76B95C
15:39:07 RX:
OK
使用工具對上述收到的SMS進行解碼后,可得到如下的解釋:
IEI: 00
LENGTH: 00
MESSAGE REF: 00
STATUS: 00
SC Address length: 07
SC Address type: 91
Type of number: International
Numbering plan identifier: E.164
SC Address: 44802000334
Message Type Indicator: 04
Message Type: SMS-DELIVER / SMS-DELIVER REPORT
More Messages To Send: No
Status Report Indication: No
Reply Path: No
Originating Address Length: 07
Originating Address type: D0
Type of number: Alphanumeric
Numbering plan identifier: Unknown
Originating Address: 1B85C260
Decoded: 1111
Protocol Identifier: Default
Data Coding Scheme: GSM Default Alphabet
SC Timestamp: 00305251839200
decoded: 00/03/25 15:38:29
Time Zone: GMT+0.00H
User Data Length: 28
decimal: 40
Message: To protect the world from devastation
于是我們知道這條SMS消息的第一部分是:
07914408020033F4
07是跟在服務中心地址內的字節數;
91是TON/NPI。TON/NPI遵守International/E.164標準,指在號碼前需加‘+’號;此外還可有其他數值,但91最常用到。
44080200033F4是所使用的服務中心地址,由于位置上略有處理,實際號碼應為:
44802000334F(字母F意指長度減1),這就是服務中心的準確地址(號碼)。
下一單元是:
04
這是文件頭字節(header byte, 是一種bitmask)。將每個字節設為1時,有如下含義:
10000000
回復路徑(Reply Path):移動電話可循發送SMS消息的短消息中心進行回復(但并非所有SMSC都會這樣設置)。
01000000
TP-UDH - 帶有用戶數據文件頭
00100000
TP-Status-Report-Indication - 發送狀態報告給發信人,表示消息收到
00010000
00001000
此兩類在正常的移動終接短消息(MT,Mobile Terminated SMS)中不會使用。
00000100
TP-More Messages to Send - SMSC內再無新消息發送給該移動電話。
00000010
00000001
最后兩個位數表示消息種類 - 10指是移動終接短消息(MT),01指移動起始短消息(MO,Mobile Originated SMS)。
所以"04"指此條消息是正常的移動終接短消息,SMSC內再無新消息發送給該手機。
新聞熱點
疑難解答