複製鏈接
請複製以下鏈接發送給好友

cmpp

鎖定
ChinaMobilePeertoPeer--中國移動點對點協議
中文名
中國移動點對點協議
外文名
China Mobile Peer to Peer
英文縮寫
CMPP

cmpp基本信息

CMPP的中文名稱是中國移動通信互聯網短信網關接口協議。為中國移動通信集團公司企業規範。規範中描述了中國移動短信業務中各網元(包括ISMG、GNS和SP)之間的相關消息的類型和定義。規範中定義了以下三方面的內容:(1)信息資源站實體與互聯網短信網關之間的接口協議;(2)互聯網短信網關之間的接口協議;(3)互聯網短信網關與匯接網關之間的接口協議,適用於各SP和ISMG的開發廠商。

cmpp詳細信息

cmpp編制説明

本規範為中國移動通信集團公司企業規範,規定信息資源站實體與互聯網短消息網關的應用層接口協議。本協議版本為1.1版。
略縮語
ISMG Internet Short Message Gateway互聯網短消息網關
SMPP Short Message Peer to Peer短消息點對點協議
TLS Transport Layer Security傳輸層安全
SMC Short Message Center短消息中心

cmpp網絡結構

因特網SC業務中心即ISMG記錄了全網的SMC的位置,要求ICP的功能實體向ISMG發CMPP_SUBMIT消息,由ISMG將消息轉發到某SMC上。同時,SMC也可向ISMG發送短消息,由ISMG發送給相應的ICP。維護管理中心對ISMG進行管理。
1. CMPP功能
CMPP用以建立短消息中心和ICP之間的通路,業務和信息的提供由ICP完成。可以為實現移動數據增值業務提供服務,例如以下業務:Email通知、語音信箱通知、Internet發短消息、移動台發Email、催費通知、自動綜合業務信息台(信息點播業務,主要有:天氣預報、股票信息、航班信息等)。
以下以Email通知業務為例,講述信息的流程:某因特網的用户向ICP的EmailServer發送一封Email。ICP的POP3SERVER激活過濾進程,如果該用户申請了Email通知業務,則過濾進程將用户登記的手機號碼取出,將Email的標題取出,綁定在CMPP_SUBMIT消息中,發送給ISMG。ISMG將檢查CMPP_SUBMIT消息中“接收業務的手機號碼”字段,則在ISMG中查詢該手機用户歸屬的SMC的地址,然後發送給SMC。ISMG得到確認消息後,將消息轉換成CMPP_SUBMIT_REP,發回給ICP。SMC收到該消息後,對該消息進行處理,並向ISMG發送確認消息。
由上述流程可見,對於ICP來講,要做的工作主要集中在第二步,即在EMAILSERVER中做一個過濾程序,實現上述功能即可。
從協議上説,ICP只要具備CMPP中實現的接口,就可以實現對應於控制層的功能,至於對於具體的ICP功能實體,比如EmailServer、WebServer等,尚需做一些應用層的工作。
2. 接口
CMPP協議以TCP/IP作為底層通信承載。在有較高的安全性需要時,可選用TLS層進行安全傳輸。
3. 消息流程
ICP與ISMG之間進行信息交互時,可以採用長連接方式,也可以採用短連接方式。所謂長連接,指在一個連接上可以連續發送多個數據包,然後斷開連接,在連接保持期間,如果沒有數據包發送,需要雙方發鏈路檢測包。短連接是指通訊雙方有數據交互時,就建立一個連接,數據發送完成後,則斷開此連接,即每次連接只完成一項業務的發送。
4. 長消息
ICP與ISMG以Client—Server方式建立TCP連接,用於雙方信息的相互提交。TCP/IP連接建立後,由Client發起建立應用層的連接,這時如果ICP或ISMG認為需要建立TLS連接,則在傳輸的數據包中置TLS字段,從而在雙方建立TLS連接。
在應用層連接建立後的數據傳輸過程中,如果ICP或ISMG需要向對端發送加密信息,也可建立TLS連接,這時只需要置相應的消息體中Tls_available(是否使用TLS層)屬性字段,且應的本條消息的消息體中的其他屬性不發送。
消息採用併發方式發送,加以流量控制,即接收方在應答前一次收到的消息多於10條將予以拒絕。

cmpp消息類型

1) CMPP_Connect請求應用層連接
2) CMPP_Terminate終止應用層連接
3) CMPP_Terminate_REP終止應用層連接應答
4) CMPP_Deliver_REP下發短信應答
5) CMPP_Submit提交短信
6) CMPP_Query發送短信狀態查詢
7) CMPP_Cancel刪除短信
8) CMPP_Active_Test激活測試
9) CMPP_Active_Test_REP激活測試應答
ISMG向ICP發送的消息類型包括:
1) CMPP_Connect_REP請求連接應答
2) CMPP_Deliver短信下發
3) CMPP_Submit_REP提交短信應答
4) CMPP_Query_REP短信狀態查詢結果
5) CMPP_Cancel_REP刪除短信應答
6) CMPP_Active_Test_REP激活測試應答
7) CMPP_Active_Test激活測試
8) CMPP_Terminate終止應用層連接
9) CMPP_Terminate_Rep終止應用層連接應答
ISMG之間發送的消息類型包括:
1) CMPP_Fwd消息前轉
2) CMPP_Fwd_REP消息前轉應答
3) CMPP_Route路由請求
4) CMPP_Route_REP路由請求應答
1. 短消息
ISMG與ICP之間的通訊採用TCP/IP協議,雙方互為client和server端。發送與接收單獨進行,每項業務建立一個連接,通訊採用應答方式,應答與請求在同一個連接中完成。由於系統採用互為客户端/服務器模式,操作以客户端驅動方式發起連接請求,完成一次操作後關閉此連接。傳輸過程中,如果ICP或ISMG認為需要建立TLS連接,則在傳輸的數據包中置TLS字段,並建立雙方的TLS連接。
連接中對ICP的認證採用階段性認證方式,當ICP首次與IMSG交換信息時,ICP首先發送身份認證包,IMSG對ICP進行身份認證後,記錄ICP的IP地址等相關信息,在以後的數據交互時,IMSG把ICP的IP地址作為認證條件,即對沒有註冊的ICP的相關信息不予處理。當ICP想斷開此邏輯上的應用層連接時,發送斷開連接請求包,ISMG接受斷開連接請求後,清除掉與此ICP相關的信息,即對MO到此ICP或ICP的MT信息均不予處理,但保存MO的信息,直到ICP再次與ISMG建立邏輯上的應用層連接,即身份認證。也允許ISMG發起斷開ICP的連接請求。
2. 消息定義
CMPP連接端口號定義為7890。字節採用在網絡中通用的網絡序,超時時長間隔採用斐波那契數列,重發次數動態可調,最好不少於3次。
基本數據類型
Integer:無符號整數
C-OctetString:變長字符串,以空字符表示字符串結束
OctetString:定長字符串,位數不足時,右補空

cmpp消息

1.消息結構
項目説明
MessageHeader消息頭(所有消息公共包頭)
MessageBody消息體
2.消息頭格式(MessageHeader)
字段名字節數類型描述
Total_Length4Integer消息總長度(含消息頭及消息體)
Command_ID4Integer命令或響應類型
Sequence_ID4Integer消息流水號,順序累加,步長為1,循環使用
3.消息體格式(MessageBody)
1.CMPP_Connect請求連接
字段名字節數屬性描述
Source_Addr6OctetStringICP_ID
AuthenticatorICP16OctetStringICP認證碼[1]
Reverse8OctetString保留項(暫不用)
2.CMPP_Connect_REP請求連接應答
字段名字節數屬性描述
Status1Integer狀態(0:正確1:消息結構錯2:非法ICP_ID
3:ICP認證錯4~:其他錯誤)
AuthenticatorISMG16OctetStringISMG認證碼[2]
Tls_available1Integer是否使用TLS協議層
3.CMPP_Terminate終止連接
消息體為空。
4.CMPP_Terminate_Rep終止連接響應
消息體為空。
5.CMPP_Submit發送短信
字段名字節數屬性描述
Msg_id4Integer信息標識:1~FFFFFFFFH,順序累加,步長為1,循環使用.
Pk_total1Integer相同Msg_id的消息總條數
Pk_number1Integer相同Msg_id的消息序號
Msg_level1Integer信息級別
Service_id10OctetString業務類型
Tls_available1Integer是否使用TLS協議層
Msg_Fmt1Integer信息格式0:ASCII串3:短信寫卡操作4:二進制信息
8:UCS2編碼15:含GB漢字
Msg_src6OctetString信息內容來源(ICP_ID)
FeeType1Integer資費類別
FeeCode1Integer資費代碼
Valid_Time1或17C-OctetString存活有效期(字節數為1時:不指定存活期,置為NULL)
At_Time1或17C-OctetString定時發送的時間(字節數為1時:不指定發送時間,置為NULL)
Src_terminal_id21OctetString源終端標識(沒有可以為空)
DestUsr_tl1Integer接收消息的用户數量(小於100個用户)
Dest_terminal_id21*DestUsr_tlOctetString接收業務的手機號碼
Msg_Length1Integer消息長度(1-70或140)
Msg_ContentMsg_lengthC-OctetString消息內容
Reserve8OctetString保留
6.CMPP_Submit_REP發送短信響應(出錯要求ICP全部重發Msg_Id信息)
字段名字節數屬性描述
Msg_Id4Integer消息標識
Tls_available1Integer是否使用TLS協議層
Result1Integer結果0:正確1:消息結構錯2:命令字錯3:消息序號重複
4:消息長度錯5:資費代碼錯6:超過最大信息長
7:業務代碼錯8:流量控制錯9~:其他錯誤

cmpp信息級別

信息級別從1--9,“9”最高,“0”最低

cmpp資費代碼

具體定義為:
“00”:免費
“99”:包月
“98”:封頂
“01”--“10”:0.01元--0.10元
“11”--“50”:以0.05元遞增
“51”--“80”:以0.10元遞增
“81”--“97”:保留
[1] 用於鑑別ICP。其值通過單向MD5hash計算得出,表示如下:
AuthenticatorICP=MD5(Source_Addr+9zeroint+ConnectType+sharedsecret)
Sharedsecret由中國移動與ICP事先商定。
[2] 用於鑑別ISMG。其值通過單向MD5hash計算得出,表示如下:
AuthenticatorISMG=MD5(Status+AuthenticatorICP+Tls_available+sharedsecret)
Sharedsecret由中國移動與ICP事先商定,AuthenticatorICP為ICP發送給ISMG的上一條消息CMPP_Request_Connect中的值。
[3] 當Query_Type為0時,此項無效;當Query_Type為1時,此項填寫業務代碼Service_id.