1、8.4.4.1CMPP_QUERY消息的定义(SPISMG)128.4.4.2CMPP_QUERY_RESP消息的定义(ISMG SP)138.4.5ISMG向SP送交短信(CMPP_DELIVER)操作138.4.5.1CMPP_DELIVER消息定义(ISMG8.4.5.2CMPP_DELIVER_RESP消息定义(SP ISMG)168.4.6SP向ISMG发起删除短信(CMPP_CANCEL)操作168.4.6.1CMPP_CANCEL消息定义(SP 8.4.6.2CMPP_CANCEL_RESP消息定义(ISMG SP)178.4.7链路检测(CMPP_ACTIVE_TEST)操作1
2、78.4.7.1CMPP_ACTIVE_TEST定义(SP ISMG或ISMGSP)178.4.7.2CMPP_ACTIVE_TEST_RESP定义(SP 8.5互联网短信网关(ISMG)之间的消息定义178.5.1源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作178.5.2源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作178.5.3链路检测(CMPP_ACTIVE_TEST)操作178.5.4源ISMG向目的ISMG转发短信(CMPP_FWD)操作178.5.4.1CMPP_FWD定义(ISMG ISMG)188.5.4.2CMPP_FWD_RE
3、SP定义(ISMG ISMG)218.6互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义218.6.1ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作218.6.2ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作218.6.3ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作218.6.3.1CMPP_MT_ROUTE消息定义(ISMGGNS)228.6.3.2CMPP_MT_ROUTE_RESP消息定义(GNS ISMG)228.6.4ISMG向汇接网关查询MO路由(CMPP_MO_
4、ROUTE)操作228.6.4.1CMPP_MO_ROUTE消息定义(ISMG8.6.4.2CMPP_MO_ROUTE_RESP消息定义(GNS ISMG)238.6.5ISMG向汇接网关获取MT路由(CMPP_GET_MT_ROUTE)操作238.6.5.1CMPP_GET_MT_ROUTE消息定义(ISMGGNS)248.6.5.2CMPP_GET_ ROUTE_RESP消息定义(GNS ISMG)248.6.6SMG向汇接网关获取MO路由(CMPP_GET_MO_ROUTE)操作258.6.6.1CMPP_GET_MO_ROUTE消息定义(ISMGGNS)258.6.6.2CMPP_GE
5、T_MO_ROUTE_RESP消息定义(GNS ISMG)258.6.7ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作268.6.7.1CMPP_MT_ROUTE_UPDATE消息定义(ISMGGNS)268.6.7.2CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS ISMG)278.6.8ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作278.6.8.1CMPP_MO_ROUTE_UPDATE消息定义(ISMGGNS)278.6.8.2CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS ISMG
6、)288.6.9汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作298.6.9.1CMPP_PUSH_MT_ROUTE_UPDATE消息定义(GNSISMG)298.6.9.2CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG GNS)298.6.10汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作298.6.10.1CMPP_PUSH_MO_ROUTE_UPDATE消息定义(GNSISMG)308.6.10.2CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISM
7、G GNS)308.7系统定义318.7.1Command_Id定义318.7.2错误码使用说明318.7.3ISMG与GNS之间消息使用的错误码定义328.7.4GNS上路由信息的Route_Id的编号规则339附录1 短信群发功能的实现3410附录2 GNS协议目前实现说明3411修订历史36前 言本规范规定了移动梦网短信业务开展过程中各网元(包括ISMG、GNS和SP)之间的消息类型和定义,目前为3.0.0版本,是在原来2.1.0版本的基础上进行修订而成。根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加。本标准由中国移动通信集团公司技术部提出并归口。本标准起草单位:中国移动
8、通信集团公司研发中心。本标准主要起草人:党京、孙若雯、于蓉蓉、袁向阳。本标准解释单位:同提出单位。III1 范围本规范规定了以下三方面的内容:1) 业务提供商与互联网短信网关之间的接口协议;2) 互联网短信网关之间的接口协议;3) 互联网短信网关与汇接网关之间的接口协议。本规范适用于各SP和ISMG、GNS的开发厂商。2 引用标准下列标准所包含的条文,通过在本标准中引用而成为本标准的条文。本标准出版时,所示版本均为有效。所有标准都会被修订,使用本标准的各方应探讨使用下列标准最新版本的可能性。SMPP移动梦网短信业务技术方案3 术语和定义英文缩写英文全称说明ISMGIntenet Short M
9、essage Gateway互联网短信网关DSMPData Service Manage Platform数据业务管理平台SMPPShort Message Peer to Peer短消息点对点协议CMPPChina Mobile Peer to Peer中国移动点对点协议SMSCShort Message Service Center短消息中心GNSGateway Name Server网关名称服务器(汇接网关)SPService Provider业务提供者ISMG_Id网关代码:0XYZ010XYZ99,其中XYZ为省会区号,位数不足时左补零,如北京编号为1的网关代码为001001,江西编
10、号为1的网关代码为079101,依此类推SP_IdSP的企业代码:网络中SP地址和身份的标识、地址翻译、计费、结算等均以企业代码为依据。企业代码以数字表示,共6位,从“9XY000”至“9XY999”,其中“XY”为各移动公司代码SP_CodeSP的服务代码:服务代码是在使用短信方式的上行类业务中,提供给用户使用的服务提供商代码。服务代码以数字表示,全国业务服务代码长度为4位,即“1000”“9999”;本地业务服务代码长度统一为5位,即“01000”“09999”;信产部对新的SP的服务代码分配提出了新的要求,要求以“1061”“1069”作为前缀,目前中国移动进行了如下分配:1062:用于
11、省内SP服务代码1066:用于全国SP服务代码其它号段保留。Service_IdSP的业务类型,数字、字母和符号的组合,由SP自定,如图片传情可定为TPCQ,股票查询可定义为114 网络结构图1 互联网短信网关组网结构如图1所示,互联网短信网关(ISMG)是业务提供商(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS
12、)查询的方式获得网关间的转发路由信息。另外,ISMG还必须与数据业务管理平台DSMP进行连接,在业务流程中对用户、业务以及定购关系等进行鉴权并对业务进行批价。5 CMPP功能概述CMPP协议主要提供以下两类业务操作:(1)短信发送(Short Message Mobile Originate,SM MO)详细的流程请参考移动梦网短信业务信令流程规范V3.0.0;(2)短信接收(Short Message Mobile Terminated,SM MT)6 协议栈CMPP协议以TCP/IP作为底层通信承载,具体结构由图4所示:CMPP TCPIP底层承载 GNS图2 CMPP协议栈7 通信方式各
13、网元之间共有两种连接方式:长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CMPP消息的发送。现阶段,要求ISMG之间必须采用长连接的通信方式,建议SP与ISMG之间采用长连接的通信方式。7.1 长连接通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立
14、即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建议为16,即接收方在应答前一次收到的消息最多不超过16条。长连接的操作流程举例如图5所示: . . . . . . 滑动窗口不大于WWCMPP消息1客户端服务器端CMPP消息2对CMPP消息1的响应对CMPP消息2的响应链路检测包
15、链路检测包响应建立TCP连接拆除TCP连接图3 长连接操作流程7.2 短连接通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。短连接的操作流程举例如图6所示:客户端/服务器端服务器/客户端图4 短连接操作流程7.3 本协议涉及的端口号端口号应用7890长连接(SP与网关间)7900短连接(SP与网关间)7930长连接(网关之间)9168短连接(短信网关与汇接网关之间)7.4 交互过程中的应答方式在SP与ISMG之间、SMSC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个
16、网元在收到请求消息后应立即回送响应消息。举例如图7所示:ISMG1ISMG2 SP SMPP请求消息 SMPP响应消息CMPP请求消息CMPP响应消息图5 异步交互方式示意图8 消息定义8.1 基本数据类型Unsigned Integer 无符号整数Integer整数,可为正整数、负整数或零Octet String定长字符串,位数不足时,如果左补0则补ASCII表示的零以填充,如果右补0则补二进制的零以表示字符串的结束符8.2 消息结构项目Message Header消息头(所有消息公共包头)Message Body消息体8.3 消息头格式(Message Header)字段名字节数类型描述T
17、otal_Length4Unsigned Integer消息总长度(含消息头及消息体)Command_Id命令或响应类型Sequence_Id消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)8.4 业务提供商(SP)与互联网短信网关(ISMG)间的消息定义SP为客户端,向作为服务器端的ISMG发起连接请求,在通过身份验证之后SP与ISMG之间方可进行数据传输。8.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作CMPP_CONNECT操作的目的是SP向ISMG注册作为一个合法SP身份,若注册成功后即建立了应用层的连接,此后SP可以通过此ISMG接收和
18、发送短信。ISMG以CMPP_CONNECT_RESP消息响应SP的请求。8.4.1.1 CMPP_CONNECT消息定义(SPISMG)属性Source_Addr6源地址,此处为SP_Id,即SP的企业代码。AuthenticatorSource16用于鉴别源地址。其值通过单向MD5 hash计算得出,表示如下:AuthenticatorSource =MD5(Source_Addr+9 字节的0 +shared secret+timestamp)Shared secret 由中国移动与源地址实体事先商定,timestamp格式为:MMDDHHMMSS,即月日时分秒,10位。Version1
19、双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号),对于3.0的版本,高4bit为3,低4位为0Timestamp时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐 。8.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG SP)Status状态0:正确1:消息结构错 2:非法源地址 3:认证错 4:版本太高 5 :其他错误AuthenticatorISMGISMG认证码,用于鉴别ISMG。AuthenticatorISMG =MD5(Status+AuthenticatorSource+shared secret)
20、,Shared secret 由中国移动与源地址实体事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。 认证出错时,此项为空。服务器支持的最高版本号,对于3.0的版本,高4bit为3,低4位为08.4.2 SP或ISMG请求拆除连接(CMPP_TERMINATE)操作CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后SP与ISMG之间的应用层连接被释放,此后SP若再要与ISMG通信时应发起CMPP_CONNECT操作。ISMG或SP以CMPP_TERMINATE_
21、RESP消息响应请求。8.4.2.1 CMPP_TERMINATE消息定义(SP无消息体。8.4.2.2 CMPP_TERMINATE_RESP消息定义(SP8.4.3 SP向ISMG提交短信(CMPP_SUBMIT)操作CMPP_SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信。ISMG以CMPP_SUBMIT_RESP消息响应。8.4.3.1 CMPP_SUBMIT消息定义(SPMsg_Id8信息标识。Pk_total相同Msg_Id的信息总条数,从1开始。Pk_number相同Msg_Id的信息序号,从1开始。Registered_Deliveryreport_
22、flag是否要求返回状态确认报告:不需要;需要。Msg_level信息级别。10serv_code业务标识,是数字、字母和符号的组合。Fee_UserTypefee_type计费用户类型字段:对目的终端MSISDN计费;对源终端MSISDN计费;2:对SP计费;3:表示本字段无效,对谁计费参见Fee_terminal_Id字段。Fee_terminal_Id32fee_num被计费用户的号码,当Fee_UserType为3时该值有效,当Fee_UserType为0、1、2时该值无意义。Fee_terminal_type被计费用户的号码类型,0:真实号码;伪码。TP_pIdGSM协议类型。详细是
23、解释请参考GSM03.40中的9.2.3.9。TP_udhi详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐。Msg_Fmtmsg_coding信息格式:ASCII串;短信写卡操作;4:二进制信息;8:UCS2编码;15:含GB汉字。Msg_src信息内容来源(SP_Id)。FeeType2资费类别:01:对“计费用户号码”免费;02:对“计费用户号码”按条计信息费;03:对“计费用户号码”按包月收取信息费。FeeCodefee_value资费代码(以分为单位)。ValId_Time17存活有效期,格式遵循SMPP3.3协议。At_Time定时发送时间,格式遵循SMPP3.3协议。Src_Id21sp_num源号码。SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码。DestUsr_tl接收信息的用户数量(小于100个用户)。Dest_terminal_Id32*DestUsr_tlrcv_num接收短信的MSISDN号码。Dest_terminal_type接收短信的用户的号码类型,0:Msg_L