中國移動通訊資訊資來源站點實體與互連網短訊息網關(ISMG)

來源:互聯網
上載者:User

中國移動通訊資訊資來源站點實體與互連網短訊息網關(ISMG)
介面協議(CMPP)
V1.1
中國移動通訊集團公司
2000/11/29

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

編製說明
本規範為中國移動通訊集團公司企業規範,規定資訊資來源站點實體與互連網短訊息網關的應用程式層介面協議。本協議版本為1.1版。

略縮語
ISMG Internet Short Message Gateway 互連網短訊息網關
SMPP Short Message Peer to Peer 短訊息點對點通訊協定 (PPP)
CMPP China Mobile Peer to Peer 中國移動點對點通訊協定 (PPP)
TLS Transport Layer Security 傳輸層安全
SMC Short Message Center 短訊息中心

 

ICP  Internet Content Provider互連網內容供應商

網路結構

網際網路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次。

基礎資料型別 (Elementary Data Type):

Integer
不帶正負號的整數

C-Octet String
變長字串,以Null 字元表示字串結束

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.
參考資料:http://www.simpleteam.com/simpleteam/sms/cmpp1_1.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.