cmpp

裴永年
2023-12-01

基本信息  英文缩写:CMPP (China Mobile Peer to Peer)

  中文名称:中国移动通信互联网短信网关接口协议

  说明:为中国移动通信集团公司企业规范。规范中描述了中国移动短信业务中各网元(包括ISMG、GNS和SP)之间的相关消息的类型和定义。

  范围:

  规范中定义了以下三方面的内容:

  (1)信息资源站实体与互联网短信网关之间的接口协议;

  (2)互联网短信网关之间的接口协议;

  (3)互联网短信网关与汇接网关之间的接口协议。

  适用于各SP和ISMG的开发厂商。

编辑本段关于CMPP

  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

编辑本段详细信息

参数

  中国移动通信信息资源站实体与互联网短消息网关(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.

相关阅读

相关文章

相关问答