百科解釋
中國移動通信信息資源站實(shí)體與互聯(lián)網(wǎng)短消息網(wǎng)關(guān)(ISMG) 接口協(xié)議(CMPP) V1.1 中國移動通信集團(tuán)公司 2000/11/29 -------------------------------------------------------------------------------- 編制說明 本規(guī)范為中國移動通信集團(tuán)公司企業(yè)規(guī)范,規(guī)定信息資源站實(shí)體與互聯(lián)網(wǎng)短消息網(wǎng)關(guān)的應(yīng)用層接口協(xié)議。本協(xié)議版本為1.1版。 略縮語 ISMG Internet Short Message Gateway 互聯(lián)網(wǎng)短消息網(wǎng)關(guān) SMPP Short Message Peer to Peer 短消息點(diǎn)對點(diǎn)協(xié)議 CMPP China Mobile Peer to Peer 中國移動點(diǎn)對點(diǎn)協(xié)議 TLS Transport Layer Security 傳輸層安全 SMC Short Message Center 短消息中心 網(wǎng)絡(luò)結(jié)構(gòu) 因特網(wǎng)SC業(yè)務(wù)中心即ISMG記錄了全網(wǎng)的SMC的位置,要求ICP的功能實(shí)體向ISMG發(fā)CMPP_SUBMIT消息,由ISMG將消息轉(zhuǎn)發(fā)到某SMC上。同時,SMC也可向ISMG發(fā)送短消息,由ISMG發(fā)送給相應(yīng)的ICP。 維護(hù)管理中心對ISMG進(jìn)行管理。 CMPP功能 CMPP用以建立短消息中心和ICP之間的通路,業(yè)務(wù)和信息的提供由ICP完成?梢詾閷(shí)現(xiàn)移動數(shù)據(jù)增值業(yè)務(wù)提供服務(wù),例如以下業(yè)務(wù):Email通知、語音信箱通知、Internet發(fā)短消息、移動臺發(fā)Email、催費(fèi)通知、自動綜合業(yè)務(wù)信息臺(信息點(diǎn)播業(yè)務(wù),主要有:天氣預(yù)報(bào)、股票信息、航班信息等)。 以下以Email通知業(yè)務(wù)為例,講述信息的流程:某因特網(wǎng)的用戶向ICP的Email Server發(fā)送一封Email。ICP的POP3 SERVER激活過濾進(jìn)程,如果該用戶申請了Email通知業(yè)務(wù),則過濾進(jìn)程將用戶登記的手機(jī)號碼取出,將Email的標(biāo)題取出,綁定在CMPP_SUBMIT消息中,發(fā)送給ISMG。ISMG將檢查CMPP_SUBMIT消息中“接收業(yè)務(wù)的手機(jī)號碼”字段,則在ISMG中查詢該手機(jī)用戶歸屬的SMC的地址,然后發(fā)送給SMC。ISMG得到確認(rèn)消息后,將消息轉(zhuǎn)換成CMPP_SUBMIT_REP,發(fā)回給ICP。SMC收到該消息后,對該消息進(jìn)行處理,并向ISMG發(fā)送確認(rèn)消息, 由上述流程可見,對于ICP來講,要做的工作主要集中在第二步,即在EMAIL SERVER中做一個過濾程序,實(shí)現(xiàn)上述功能即可。 從協(xié)議上說,ICP只要具備CMPP中實(shí)現(xiàn)的接口,就可以實(shí)現(xiàn)對應(yīng)于控制層的功能,至于對于具體的ICP功能實(shí)體,比如Email Server、Web Server等,尚需做一些應(yīng)用層的工作。 接口 CMPP協(xié)議以TCP/IP作為底層通信承載。在有較高的安全性需要時,可選用TLS層進(jìn)行安全傳輸。 消息流程 ICP與ISMG之間進(jìn)行信息交互時,可以采用長連接方式,也可以采用短連接方式。所謂長連接,指在一個連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包,然后斷開連接,在連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測包。短連接是指通訊雙方有數(shù)據(jù)交互時,就建立一個連接,數(shù)據(jù)發(fā)送完成后,則斷開此連接,即每次連接只完成一項(xiàng)業(yè)務(wù)的發(fā)送。 長消息 ICP與ISMG以Client—Server方式建立TCP連接,用于雙方信息的相互提交。TCP/IP連接建立后,由Client發(fā)起建立應(yīng)用層的連接,這時如果ICP或ISMG認(rèn)為需要建立TLS連接,則在傳輸?shù)臄?shù)據(jù)包中置TLS字段,從而在雙方建立TLS連接。 在應(yīng)用層連接建立后的數(shù)據(jù)傳輸過程中,如果ICP或ISMG需要向?qū)Χ税l(fā)送加密信息,也可建立TLS連接,這時只需要置相應(yīng)的消息體中Tls_available(是否使用TLS層)屬性字段,且應(yīng)的本條消息的消息體中的其他屬性不發(fā)送。 消息采用并發(fā)方式發(fā)送,加以流量控制,窗口大小可調(diào),暫定為10條消息,即接收方在應(yīng)答前一次收到的消息多于10條將予以拒絕。 ICP向ISMG發(fā)送的消息類型包括: 1) CMPP_Connect 請求應(yīng)用層連接 2) CMPP_Terminate 終止應(yīng)用層連接 3) CMPP_Terminate_REP 終止應(yīng)用層連接應(yīng)答 4) CMPP_Deliver_REP 下發(fā)短信應(yīng)答 5) CMPP_Submit 提交短信 6) CMPP_Query 發(fā)送短信狀態(tài)查詢 7) CMPP_Cancel 刪除短信 8) CMPP_Active_Test 激活測試 9) CMPP_Active_Test_REP 激活測試應(yīng)答 ISMG向ICP發(fā)送的消息類型包括: 1) CMPP_Connect_REP 請求連接應(yīng)答 2) CMPP_Deliver 短信下發(fā) 3) CMPP_Submit_REP 提交短信應(yīng)答 4) CMPP_Query_REP 短信狀態(tài)查詢結(jié)果 5) CMPP_Cancel_REP 刪除短信應(yīng)答 6) CMPP_Active_Test_REP 激活測試應(yīng)答 7) CMPP_Active_Test 激活測試 8) CMPP_Terminate 終止應(yīng)用層連接 9) CMPP_Terminate_Rep 終止應(yīng)用層連接應(yīng)答 ISMG之間發(fā)送的消息類型包括: 1) CMPP_Fwd 消息前轉(zhuǎn) 2) CMPP_Fwd_REP 消息前轉(zhuǎn)應(yīng)答 3) CMPP_Route 路由請求 4) CMPP_Route_REP 路由請求應(yīng)答 一次操作流程 短消息 ISMG與ICP之間的通訊采用TCP/IP協(xié)議,雙方互為client和server端。發(fā)送與接收單獨(dú)進(jìn)行,每項(xiàng)業(yè)務(wù)建立一個連接,通訊采用應(yīng)答方式,應(yīng)答與請求在同一個連接中完成。由于系統(tǒng)采用互為客戶端/服務(wù)器模式,操作以客戶端驅(qū)動方式發(fā)起連接請求,完成一次操作后關(guān)閉此連接。傳輸過程中,如果ICP或ISMG認(rèn)為需要建立TLS連接,則在傳輸?shù)臄?shù)據(jù)包中置TLS字段,并建立雙方的TLS連接。 連接中對ICP的認(rèn)證采用階段性認(rèn)證方式,當(dāng)ICP首次與IMSG交換信息時,ICP首先發(fā)送身份認(rèn)證包,IMSG對ICP進(jìn)行身份認(rèn)證后,記錄ICP的IP地址等相關(guān)信息,在以后的數(shù)據(jù)交互時,IMSG把ICP的IP地址作為認(rèn)證條件,即對沒有注冊的ICP的相關(guān)信息不予處理。當(dāng)ICP想斷開此邏輯上的應(yīng)用層連接時,發(fā)送斷開連接請求包,ISMG接受斷開連接請求后,清除掉與此ICP相關(guān)的信息,即對MO到此ICP或ICP的MT信息均不予處理,但保存MO的信息,直到ICP再次與ISMG建立邏輯上的應(yīng)用層連接,即身份認(rèn)證。也允許ISMG發(fā)起斷開ICP的連接請求。 消息采用并發(fā)方式發(fā)送,并加以流量控制,窗口大小可調(diào),暫定為10條消息,即接收方在應(yīng)答前一次收到的消息多于10條將予以拒絕。 ICP向ISMG發(fā)送的消息類型包括: 1) CMPP_Connect 請求應(yīng)用層連接 2) CMPP_Terminate 終止應(yīng)用層連接 3) CMPP_Terminate_REP 終止應(yīng)用層連接應(yīng)答 4) CMPP_Deliver_REP 下發(fā)短信應(yīng)答 5) CMPP_Submit 提交短信 6) CMPP_Query 發(fā)送短信狀態(tài)查詢 7) CMPP_Cancel 刪除短信 ISMG向ICP發(fā)送的消息類型包括: 1) CMPP_Connect_REP 請求連接應(yīng)答 2) CMPP_Deliver 短信下發(fā) 3) CMPP_Submit_REP 提交短信應(yīng)答 4) CMPP_Query_REP 短信狀態(tài)查詢結(jié)果 5) CMPP_Cancel_REP 刪除短信應(yīng)答 6) CMPP_Terminate 終止應(yīng)用層連接 7) CMPP_Terminate_Rep 終止應(yīng)用層連接應(yīng)答 ISMG之間發(fā)送的消息類型包括: 1) CMPP_Fwd 消息前轉(zhuǎn) 2) CMPP_Fwd_REP 消息前轉(zhuǎn)應(yīng)答 3) CMPP_Route 路由請求 4) CMPP_Route_REP 路由請求應(yīng)答 一次操作流程(MO和MT) 消息定義 CMPP連接端口號定義為7890。字節(jié)采用在網(wǎng)絡(luò)中通用的網(wǎng)絡(luò)序,超時時長間隔采用斐波那契數(shù)列,重發(fā)次數(shù)動態(tài)可調(diào),最好不少于3次。 基本數(shù)據(jù)類型: Integer 無符號整數(shù) C-Octet String 變長字符串,以空字符表示字符串結(jié)束 Octet String 定長字符串,位數(shù)不足時,右補(bǔ)空 7.1消息結(jié)構(gòu) 項(xiàng)目 說明 Message Header 消息頭(所有消息公共包頭) Message Body 消息體 7.2 消息頭格式(Message Header) 字段名 字節(jié)數(shù) 類型 描述 Total_Length 4 Integer 消息總長度(含消息頭及消息體) Command_ID 4 Integer 命令或響應(yīng)類型 Sequence_ID 4 Integer 消息流水號,順序累加,步長為1,循環(huán)使用 7.3 消息體格式(Message Body) 1. CMPP_Connect 請求連接 字段名 字節(jié)數(shù) 屬性 描述 Source_Addr 6 Octet String ICP_ID AuthenticatorICP 16 Octet String ICP認(rèn)證碼[1] Reverse 8 Octet String 保留項(xiàng)(暫不用) 2. CMPP_Connect_REP 請求連接應(yīng)答 字段名 字節(jié)數(shù) 屬性 描述 Status 1 Integer 狀態(tài) (0:正確 1:消息結(jié)構(gòu)錯 2:非法ICP_ID 3:ICP認(rèn)證錯 4~ :其他錯誤 ) AuthenticatorISMG 16 Octet String ISMG認(rèn)證碼[2] Tls_available 1 Integer 是否使用TLS協(xié)議層 3. CMPP_Terminate 終止連接 消息體為空。 4. CMPP_Terminate_Rep 終止連接響應(yīng) 消息體為空。 5.CMPP_Submit 發(fā)送短信 字段名 字節(jié)數(shù) 屬性 描述 Msg_id 4 Integer 信息標(biāo)識 :1~FFFFFFFFH ,順序累加,步長為1,循環(huán)使用. Pk_total 1 Integer 相同Msg_id的消息總條數(shù) Pk_number 1 Integer 相同Msg_id的消息序號 Msg_level 1 Integer 信息級別 Service_id 10 Octet String 業(yè)務(wù)類型 Tls_available 1 Integer 是否使用TLS協(xié)議層 Msg_Fmt 1 Integer 信息格式 0:ASCII串 3:短信寫卡操作 4:二進(jìn)制信息 8:UCS2編碼 15:含GB漢字 Msg_src 6 Octet String 信息內(nèi)容來源(ICP_ID) FeeType 1 Integer 資費(fèi)類別 FeeCode 1 Integer 資費(fèi)代碼 Valid_Time 1或17 C-Octet String 存活有效期(字節(jié)數(shù)為1時:不指定存活期,置為NULL) At_Time 1或17 C-Octet String 定時發(fā)送的時間(字節(jié)數(shù)為1時:不指定發(fā)送時間,置為NULL) Src_terminal_id 21 Octet String 源終端標(biāo)識(沒有可以為空) DestUsr_tl 1 Integer 接收消息的用戶數(shù)量(小于100個用戶) Dest_terminal_id 21*DestUsr_tl Octet String 接收業(yè)務(wù)的手機(jī)號碼 Msg_Length 1 Integer 消息長度(1-70或140) Msg_Content Msg_length C-Octet String 消息內(nèi)容 Reserve 8 Octet String 保留 6.CMPP_Submit_REP 發(fā)送短信響應(yīng)(出錯要求ICP全部重發(fā)Msg_Id信息) 字段名 字節(jié)數(shù) 屬性 描述 Msg_Id 4 Integer 消息標(biāo)識 Tls_available 1 Integer 是否使用TLS協(xié)議層 Result 1 Integer 結(jié)果 0:正確 1:消息結(jié)構(gòu)錯 2:命令字錯 3:消息序號重復(fù) 4:消息長度錯 5:資費(fèi)代碼錯 6:超過最大信息長 7:業(yè)務(wù)代碼錯 8: 流量控制錯 9~ :其他錯誤 …… 8FeeType & FeeCode 資費(fèi)類別和資費(fèi)代碼(待定) 一、信息級別 信息級別從1--9,“9”最高,“0”最低 二、資費(fèi)代碼 具體定義為: “00”: 免費(fèi) “99”: 包月 “98”: 封頂 “01”--“10”:0.01元--0.10元 “11”--“50”:以0.05元遞增 “51”--“80”:以0.10元遞增 “81”--“97”:保留 [1]用于鑒別ICP。其值通過單向MD5 hash計(jì)算得出,表示如下: AuthenticatorICP =MD5(Source_Addr+9 zero int+ConnectType+shared secret) Shared secret 由中國移動與ICP事先商定。 [2]用于鑒別ISMG。其值通過單向MD5 hash計(jì)算得出,表示如下: AuthenticatorISMG =MD5(Status+AuthenticatorICP+ Tls_available+shared secret) Shared secret 由中國移動與ICP事先商定,AuthenticatorICP為ICP發(fā)送給ISMG的上一條消息CMPP_Request_Connect中的值。 [3]當(dāng)Query_Type為0時,此項(xiàng)無效;當(dāng)Query_Type為1時,此項(xiàng)填寫業(yè)務(wù)代碼Service_id. 參考資料:http://www.simpleteam.com/simpleteam/sms/cmpp1_1.htm
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助