當前位置:名人名言大全網 - 短信平臺 - 誰給我解釋CMPP協議,發壹份說明最好不過.謝謝

誰給我解釋CMPP協議,發壹份說明最好不過.謝謝

中國移動通信信息資源站實體與互聯網短消息網關(ISMG)

接口協議(CMPP)

V1.1

中國移動通信集團公司

2000/11/29

--------------------------------------------------------------------------------

編制說明

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

略縮語

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 短消息中心

網絡結構

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

維護管理中心對ISMG進行管理。

CMPP功能

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

以下以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協議以TCP/IP作為底層通信承載。在有較高的安全性需要時,可選用TLS層進行安全傳輸。

消息流程

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

長消息

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 路由請求應答

壹次操作流程

短消息

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的連接請求。

消息采用並發方式發送,並加以流量控制,窗口大小可調,暫定為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 刪除短信

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連接端口號定義為7890。字節采用在網絡中通用的網絡序,超時時長間隔采用斐波那契數列,重發次數動態可調,最好不少於3次。

基本數據類型:

Integer

無符號整數

C-Octet String

變長字符串,以空字符表示字符串結束

Octet String

定長字符串,位數不足時,右補空

7.1消息結構

項目

說明

Message Header

消息頭(所有消息公***包頭)

Message Body

消息體

7.2 消息頭格式(Message Header)

字段名

字節數

類型

描述

Total_Length

4

Integer

消息總長度(含消息頭及消息體)

Command_ID

4

Integer

命令或響應類型

Sequence_ID

4

Integer

消息流水號,順序累加,步長為1,循環使用

7.3 消息體格式(Message Body)

1. CMPP_Connect 請求連接

字段名

字節數

屬性

描述

Source_Addr

6

Octet String

ICP_ID

AuthenticatorICP

16

Octet String

ICP認證碼[1]

Reverse

8

Octet String

保留項(暫不用)

2. 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協議層

3. CMPP_Terminate 終止連接

消息體為空。

4. CMPP_Terminate_Rep 終止連接響應

消息體為空。

5.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:ASCII串

3:短信寫卡操作

4:二進制信息

8: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

保留

6.CMPP_Submit_REP 發送短信響應(出錯要求ICP全部重發Msg_Id信息)

字段名

字節數

屬性

描述

Msg_Id

4

Integer

消息標識

Tls_available

1

Integer

是否使用TLS協議層

Result

1

Integer

結果

0:正確

1:消息結構錯

2:命令字錯

3:消息序號重復

4:消息長度錯

5:資費代碼錯

6:超過最大信息長

7:業務代碼錯

8: 流量控制錯

9~ :其他錯誤

7.CMPP_Query 發送短信狀態查詢(查詢Time屬性指定的日期的統計信息)

字段名

字節數

屬性

描述

Tls_available

1

Integer

是否使用TLS協議層

Time

8

Octet String

時間(精確至日)

Query_Type

1

Integer

查詢類別

0:總數查詢

1:按業務代碼查詢

Query_Code

10

Octet String

查詢碼[3](業務類型)

Reserve

8

Octet String

保留

8.CMPP_Query_REP 短信狀態查詢結果

字段名

字節數

屬性

描述

Tls_available

1

Integer

是否使用TLS協議層

Time

8

Octet String

時間(精確至日)

Query_Type

1

Integer

查詢類別

0:總數查詢

1:按業務代碼查詢

Query_Code

10

Octet String

查詢碼

MT_TLMsg

4

Integer 從ICP接收信息總數

MT_TLusr

4

Integer

從ICP接收用戶總數

MT_Scs

4

Integer

成功轉發數量

MT_WT

4

Integer

待轉發數量

MT_FL

4

Integer

轉發失敗數量

MO_Scs

4

Integer

向ICP成功送達數量

MO_WT

4

Integer

向ICP待送達數量

MO_FL

4

Integer

向ICP送達失敗數量

9. CMPP_Deliver

字段名

字節數

屬性

描述

Msg_Id

4

Integer

消息標識

Msg_Level

1

Integer

信息級別

Tls_available

1

Integer

是否使用TLS協議層

Service_id

10

Octet String

業務類型

Msg_Fmt

1

Integer

信息格式

0:ASCII串

4:二進制信息

8:UCS2編碼

Srcterminal_id

21

Octet String

源終端標識

Msg_Length

1

Integer

消息長度

Msg_Content

Msg_length

C-Octet String

消息內容

Reserve

8

Octet String

保留項(以後為ICP提供已提交給手機用戶的確認信息)

10.CMPP_Deliver_REP 下發短信響應

字段名

字節數

屬性

描述

Msg_Id

4

Integer

消息標識

Tls_available

1

Integer

是否使用TLS協議層

Result

1

Integer

結果

0:正確

1:消息結構錯

2:命令字錯

3:消息序號重復

4:消息長度錯

5:資費代碼錯

6:超過最大信息長

7:業務代碼錯

8: 流量控制錯

9~ :其他錯誤

11.CMPP_Cancel 刪除短信

字段名

字節數

屬性

描述

Msg_Id

4

Integer

消息標識

Tls_available

1

Integer

是否使用TLS協議層

12.CMPP_Cancel_REP 刪除短信響應

字段名

字節數

屬性

描述

Tls_available

1

Integer

是否使用TLS協議層

Success_Id

1

Integer

成功標識(0:成功; 1:失敗)

13.CMPP_Active_Test 激活測試

字段名

字節數

屬性

描述

Tls_available

1

Integer

是否使用TLS協議層

14.CMPP_Active_Test_REP 激活測試響應

字段名

字節數

屬性

描述

Tls_available

1

Integer

是否使用TLS協議層

Success_Id

1

Integer

成功標識(0--成功)

15. CMPP_Fwd 短信前轉

字段名

字節數

屬性

描述

Source_ Id

4

Octet String

源網關的代碼

Dest_Id

4

Octet String

目的網關代碼

NodesCount

1

Integer

經過的網關數量

Tls_available

1

Integer

是否使用TLS協議層

Msg_id

4

Interger

信息標識

Pk_total

1

Integer

相同Msg_id的消息總條數

Pk_number

1

Integer

相同Msg_id的消息序號

Msg_level

1

Integer

信息級別

Service_id

10

Octet String

業務類型

Msg_Fmt

1

Integer

信息格式

0:ASCII串

4:二進制信息

8:UCS2編碼

15:含GB漢字

Srcterminal_id

21

Octet String

源終端標識(沒有可以為空)

DestUsr_tl

1

Integer

接收消息的用戶數量

Dest_terminal_id

21*DestUsr_tl

C-Octet String

接收業務的手機號碼

Msg_src

6

Octet String

信息內容來源

FeeCode

2

Octet String

資費代碼

Valid_Time

1or17

C-Octet String

有效期(字節數為1時:不指定發送時間,置為NULL)

At_Time

1or17

C-Octet String

定時發送的時間(字節數為1時:不指定發送時間,置為NULL)

Msg_Length

1

Integet

消息長度

Msg_Content

Msg_length

C-Octet String

消息內容

Reserve

8

M

保留

16. CMPP_Fwd _REP 短信前轉響應

字段名

字節數

屬性

描述

Msg_Id

4

Integer

消息標識

Pk_total

1

Integer

相同Msg_id的消息總條數

Pk_number

1

Integer

相同Msg_id的消息序號

Tls_available

1

Integer

是否使用TLS協議層

Result

1

Integer

結果

0:正確

1:消息結構錯

2:命令字錯

3:消息序號重復

4:消息長度錯

5:資費代碼錯

6:超過最大信息長

7:業務代碼錯

8: 流量控制錯

9: 前轉判斷錯(此ICP不應發往本ISMG)

10~ :其他錯誤

17. CMPP_Route 路由請求

字段名

字節數

屬性

描述

New_Gate

1

Integer

0:普通網關;1:新增加網關

Request_Total

2

Integer

0:請求壹條;1:請求多條路由表數據(如果後面字段為空,請求路由表全部)

Service_Type

10

Octet String

請求的業務類型

Service_Code

4

Integer

請求的業務代碼

ICP_ID

6

Octet String

ICP的接入代碼(如果置Service_Type字段,此字段為空)

18. CMPP_Route_REP 路由請求應答

字段名

字節數

屬性

描述

Request_Number

2

Integer

返回的路由表數據條數,此字段值如果大於1,下面5個字段重復出現

Service_Type

10

Octet string

業務類型

Service_Code_Start

4

Integer

業務代碼起始標誌

Service_Code_End

4

Integer

業務代碼結束標誌

ICP_ID

6

Octet String

ICP的接入代碼(如果置Service_Type字段,此字段為空)

ISMG_ID

4

Octet String

對應上述條件的網關代碼

……

8.編號

8.1 ISMG_ID

地點

編號(ISMG_ID暫用區號標識)

說明

北京

(010)

斯特奇

江西

(0791)

清華深訊

廣州

(020)

清華深訊

天津

(022)

其他待定

8.2 ICP編號

ICP名稱

編號(ISMG_ID)

說明

新浪

(待定)

搜狐

(待定)

待定)

8.3 Command_ID

命令字名稱

Command_ID值

說明

CMPP_Connect

0x00000001

請求連接

CMPP_Connect_REP

0x80000001

請求連接應答

CMPP_Terminate

0x00000002

終止連接

CMPP_Terminate_REP

0x80000002

終止連接應答

CMPP_Submit

0x00000004

提交短信

CMPP_Submit_REP

0x80000004

提交短信應答

CMPP_Deliver

0x00000005

短信下發

CMPP_Deliver_REP

0x80000005

下發短信應答

CMPP_Query

0x00000006

發送短信狀態查詢

CMPP_Query_REP

0x80000006

發送短信狀態查詢應答

CMPP_Cancel

0x00000007

刪除短信

CMPP_Cancel_REP

0x80000007

刪除短信應答

CMPP_Active_Test

0x00000008

激活測試

CMPP_Active_Test_REP

0x80000008

激活測試應答

CMPP_Fwd

0x00000009

消息前轉

CMPP_Fwd_REP

0x80000009

消息前轉應答

CMPP_Route

0x00000003

路由請求

CMPP_Route_REP

0x80000003

路由請求應答

8.4 FeeType & 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.