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

CMPP協議

鎖定
CMPP協議 (China Mobile Peer to Peer) 的全稱是中國移動通信互聯網短信網關接口協議,它是聯想亞信公司根據SMMP協議為中國移動量身定做的,是符合中國國情的一個短信協議
中文名
CMPP協議
外文名
China Mobile Peer to Peer
適用對象
中國移動
版    本
1.1版

CMPP協議CMPP説明

CMPP協議1.1、CMPP來歷

中國移動通信信息資源站實體與互聯網短消息網關(ISMG)
接口協議(CMPP)
V1.1
中國移動通信集團公司
2000/11/29
--------------------------------------------------------------------------------

CMPP協議1.2、編制説明

本規範為中國移動通信集團公司企業規範,規定信息資源站實體與互聯網短消息網關的應用層接口協議。本協議版本為1.1版。

CMPP協議1.3、略縮語

ISMG Internet Short Message Gateway 互聯網短消息網關
SMPP Short Message Peer to Peer 短消息點對點協議
CMPP China Mobile Peer to Peer 中國移動點對點協議
TLS Transport Layer Security 傳輸層安全
SMC Short Message Center 短消息中心

CMPP協議1.4、網絡結構

因特網SC業務中心即ISMG記錄了全網的SMC的位置,要求ICP的功能實體向ISMG發CMPP_SUBMIT消息,由ISMG將消息轉發到某SMC上。同時,SMC也可向ISMG發送短消息,由ISMG發送給相應的ICP。
維護管理中心對ISMG進行管理。

CMPP協議CMPP功能

CMPP協議2.1、功能簡介

CMPP用以建立短消息中心和ICP之間的通路,業務和信息的提供由ICP完成。可以為實現移動數據增值業務提供服務,例如以下業務:Email通知、語音信箱通知、Internet發短消息、移動台發Email、催費通知、自動綜合業務信息台(信息點播業務,主要有:天氣預報、股票信息、航班信息等)。

CMPP協議2.2、實例

以下以Email通知業務為例,講述信息的流程:某因特網的用户向ICP的Email Server發送一封Email。ICP的POP3 SERVER激活過濾進程,如果該用户申請了Email通知業務,則過濾進程將用户登記的手機號碼取出,將Email的標題取出,綁定在CMPP_SUBMIT消息中,發送給ISMG。ISMG將檢查CMPP_SUBMIT消息中“接收業務的手機號碼”字段,則在ISMG中查詢該手機用户歸屬的SMC的地址,然後發送給SMC。ISMG得到確認消息後,將消息轉換成CMPP_SUBMIT_REP,發回給ICP。SMC收到該消息後,對該消息進行處理,並向ISMG發送確認消息,
由上述流程可見,對於ICP來講,要做的工作主要集中在第二步,即在EMAIL SERVER中做一個過濾程序,實現上述功能即可。
從協議上説,ICP只要具備CMPP中實現的接口,就可以實現對應於控制層的功能,至於對於具體的ICP功能實體,比如Email Server、Web Server等,尚需做一些應用層的工作。

CMPP協議2.3、接口

CMPP協議以TCP/IP作為底層通信承載。在有較高的安全性需要時,可選用TLS層進行安全傳輸。

CMPP協議2.4、消息流程

ICP與ISMG之間進行信息交互時,可以採用長連接方式,也可以採用短連接方式。所謂長連接,指在一個連接上可以連續發送多個數據包,然後斷開連接,在連接保持期間,如果沒有數據包發送,需要雙方發鏈路檢測包。短連接是指通訊雙方有數據交互時,就建立一個連接,數據發送完成後,則斷開此連接,即每次連接只完成一項業務的發送。

CMPP協議2.5、長消息

ICP與ISMG以Client—Server方式建立TCP連接,用於雙方信息的相互提交。TCP/IP連接建立後,由Client發起建立應用層的連接,這時如果ICP或ISMG認為需要建立TLS連接,則在傳輸的數據包中置TLS字段,從而在雙方建立TLS連接。
在應用層連接建立後的數據傳輸過程中,如果ICP或ISMG需要向對端發送加密信息,也可建立TLS連接,這時只需要置相應的消息體中Tls_available(是否使用TLS層)屬性字段,且應的本條消息的消息體中的其他屬性不發送。
消息採用併發方式發送,加以流量控制,窗口大小可調,暫定為10條消息,即接收方在應答前一次收到的消息多於10條將予以拒絕。
ICP向ISMG發送的消息類型包括:
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 路由請求應答
一次操作流程

CMPP協議2.6、短消息

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的連接請求。
ICP向ISMG發送的消息類型包括:
1) CMPP_Connect 請求應用層連接
2) CMPP_Terminate 終止應用層連接
3) CMPP_Terminate_REP 終止應用層連接應答
4) CMPP_Deliver_REP 下發短信應答
5) CMPP_Submit 提交短信
6) CMPP_Query 發送短信狀態查詢
7) CMPP_Cancel 刪除短信
ISMG向ICP發送的消息類型包括:
1) CMPP_Connect_REP 請求連接應答
2) CMPP_Deliver 短信下發
3) CMPP_Submit_REP 提交短信應答
4) CMPP_Query_REP 短信狀態查詢結果
5) CMPP_Cancel_REP 刪除短信應答
6) CMPP_Terminate 終止應用層連接
7) CMPP_Terminate_Rep 終止應用層連接應答
ISMG之間發送的消息類型包括:
1) CMPP_Fwd 消息前轉
2) CMPP_Fwd_REP 消息前轉應答
3) CMPP_Route 路由請求
4) CMPP_Route_REP 路由請求應答
一次操作流程(MO和MT)

CMPP協議2.7、消息定義

CMPP連接端口號定義為7890。字節採用在網絡中通用的網絡序,超時時長間隔採用斐波那契數列,重發次數動態可調,最好不少於3次。
基本數據類型
Integer
C-Octet String
變長字符串,以空字符表示字符串結束
Octet String
定長字符串,位數不足時,右補空

CMPP協議2.8、消息結構

項目  説明
Message Header 消息頭(所有消息公共包頭)
Message Body 消息體

CMPP協議2.9、消息頭格式

(Message Header)
字段名 字節數  類型  描述
Total_Length 4 Integer 消息總長度(含消息頭及消息體)
Command_ID 4 Integer 命令或響應類型
Sequence_ID 4 Integer 消息流水號,順序累加,步長為1,循環使用

CMPP協議2.10、消息體格式

(Message Body)
⒈ CMPP_Connect 請求連接
字段名  字節數  屬性  描述
Source_Addr 6 Octet String ICP_ID
AuthenticatorICP 16 Octet String ICP認證碼[1]
Reverse 8 Octet String 保留項(暫不用)
⒉ CMPP_Connect_REP 請求連接應答
字段名 字節數  屬性  描述
Status 1 Integer 狀態 (0:正確 1:消息結構錯 2:非法ICP_ID
3:ICP認證錯 4~ :其他錯誤)
AuthenticatorISMG 16 Octet String ISMG認證碼[2]
Tls_available 1 Integer 是否使用TLS協議層
⒊ CMPP_Terminate 終止連接
消息體為空。
⒋ CMPP_Terminate_Rep 終止連接響應
消息體為空。
⒌CMPP_Submit 發送短信
字段名 字節數  屬性  描述
Msg_id 4 Integer 信息標識 :1~FFFFFFFFH,順序累加,步長為1,循環使用.
Pk_total 1 Integer 相同Msg_id的消息總條數
Pk_number 1 Integer 相同Msg_id的消息序號
Msg_level 1 Integer 信息級別
Service_id 10 Octet String 業務類型
Tls_available 1 Integer 是否使用TLS協議層
Msg_Fmt 1 Integer 信息格式 0:ASCⅡ串 3:短信寫卡操作 4:二進制信息

CMPP協議2.11、UCS2編碼 15:含GB漢字

Msg_src 6 Octet String 信息內容來源(ICP_ID)
FeeType 1 Integer 資費類別
FeeCode 1 Integer 資費代碼
Valid_Time 1或17 C-Octet String 存活有效期(字節數為1時:不指定存活期,置為NULL)
At_Time 1或17 C-Octet String 定時發送的時間(字節數為1時:不指定發送時間,置為NULL)
Src_terminal_id 21 Octet String 源終端標識(沒有可以為空)
DestUsr_tl 1 Integer 接收消息的用户數量(小於100個用户)
Dest_terminal_id 21*DestUsr_tl Octet String 接收業務的手機號碼
Msg_Length 1 Integer 消息長度(1-70或140)
Msg_Content Msg_length C-Octet String 消息內容
Reserve 8 Octet String 保留
⒍CMPP_Submit_REP 發送短信響應(出錯要求ICP全部重發Msg_Id信息)
字段名 字節數  屬性  描述
Msg_Id 4 Integer 消息標識
Tls_available 1 Integer 是否使用TLS協議層
Result 1 Integer 結果 0:正確 1:消息結構錯 2:命令字錯

CMPP協議2.12、消息序號重複

4:消息長度錯 5:資費代碼錯 6:超過最大信息長
7:業務代碼錯 8: 流量控制錯 9~ :其他錯誤
……
8FeeType & FeeCode 資費類別和資費代碼(待定)
一、信息級別
信息級別從1--9,“9”最高,“0”最低
二、資費代碼
具體定義為:
“00”:免費
“99”:包月
“98”:封頂
“01”--“10”:0.01元--0.10元
“11”--“50”:以0.05元遞增
“51”--“80”:以0.10元遞增
“81”--“97”:保留
[1]用於鑑別ICP。其值通過單向MD5 hash計算得出,表示如下:
AuthenticatorICP =MD5(Source_Addr+9 zero int+ConnectType+shared secret)
Shared secret 由中國移動與ICP事先商定。
[2]用於鑑別ISMG。其值通過單向MD5 hash計算得出,表示如下:
AuthenticatorISMG =MD5(Status+AuthenticatorICP+ Tls_available+shared secret)
Shared secret 由中國移動與ICP事先商定,AuthenticatorICP為ICP發送給ISMG的上一條消息CMPP_Request_Connect中的值。
[3]當Query_Type為0時,此項無效;當Query_Type為1時,此項填寫業務代碼Service_id.
參考資料:http://www.simpleteam.com/simpleteam/sms/cmpp1_1.htm