cmpp

cmpp

ChinaMobilePeertoPeer,中國移動點對點協議。

CMPP


ChinaMobilePeertoPeer--中國移動點對點協議
AboutCMPP
TheCenterforMaximumPublicPerformanceisaninteractivediscussion,avirtualcenterofexcellence.
Theconceptforthisvirtualcenterofexcellenceisthatthereexistswithingovernment,apowertocollaboratethatiscurrentlyunstructured.Thatifthispotentialcouldbestructured,wewouldallbenefitthroughtheapplicationandenhancementof"evolutionarypractices"-sharinginthebenefitsofevolutionaryimprovement,andasfarassoftwaresolutionsgoforexample,oftenwithouttheassociatedcostincreasesofeachnew"version."Recognizingthatwearealltoobusytomeetregularlyandthatsuchmeetingswhentheydooccurcanbeoverwhelming,theideaistocreateavirtual"thinktank(s)"wherelocalgovernmentcanpostevolutionarythinking.Thesitereferencedabovewillchangeovertime,droppingreferencetomemberorganizationsandcontentassociatedwiththemember,insteadprovidingatopicalrepositoryformaterial.
MembercommunitiespresentlyincludethecityofTallahasee,thecountiesofAlachua,Leon,Martin,Monroe,Sarasota&Seminole.
Theintentofthesiteistosupporteffortsofpublicsectorprofessionalsfocusedonthemeasurementandimprovementofpublicsectoroperationalandstrategicperformance.
SarasotaCountyispleasedtoofferthedevelopmentandcontinuedenhancementofthissite.

CMPP協議


中國移動通信信息資源站實體與網際網路短消息網關(ISMG)
介面協議(CMPP)
V1.1
2000/11/29
編製說明
本規範為中國移動通信集團公司企業規範,規定信息資源站實體與網際網路短消息網關的應用層介面協議。本協議版本為1.1版。
略縮語
ISMGInternetShortMessageGateway網際網路短消息網關
SMPPShortMessagePeertoPeer短消息點對點協議
CMPPChinaMobilePeertoPeer中國移動點對點協議
TLSTransportLayerSecurity傳輸層安全
SMCShortMessageCenter短消息中心
網路結構
網際網路SC業務中心即ISMG記錄了全網的SMC的位置,要求ICP的功能實體向ISMG發CMPP_SUBMIT消息,由ISMG將消息轉發到某SMC上。同時,SMC也可向ISMG發送短消息,由ISMG發送給相應的ICP。
維護管理中心對ISMG進行管理。
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等,尚需做一些應用層的工作。
介面
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-OctetString
變長字元串,以空字元表示字元串結束
OctetString
定長字元串,位數不足時,右補空
7.1消息結構
項目說明
MessageHeader消息頭(所有消息公共包頭)
MessageBody消息體
7.2消息頭格式(MessageHeader)
欄位名位元組數類型描述
Total_Length4Integer消息總長度(含消息頭及消息體)
Command_ID4Integer命令或響應類型
Sequence_ID4Integer消息流水號,順序累加,步長為1,循環使用
7.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~:其他錯誤
……
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。其值通過單向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.

參考資料


http://www.simpleteam.com/simpleteam/sms/cmpp1_1.htm