中国移动通信集团公司第1页共21页中国移动通信信息资源站实体与互联网短消息网关接口协议(V1.2)中国移动通信集团公司2001/6/12中国移动通信集团公司第2页共21页1.编制说明本规范为中国移动通信集团公司企业规范,规定信息资源站实体与互联网短消息网关的应用层接口协议。本协议版本为1.2版。2.缩略语ISMGInternetShortMessageGateway互联网短消息网关SMPPShortMessagePeertoPeer短消息点对点协议CMPPChinaMobilePeertoPeer中国移动点对点协议TLSTransportLayerSecurity传输层安全SMCShortMessageCenter短消息中心3.网络结构短讯中心防火墙ICP防火墙SMPPTCP/X.25InternetICPEMAILSERVERISMG维护管理中心TCP/IPCMPPTCP/IPCMPPSMPPTCP/IPCMPPCMPPSMPP要求SP的功能实体向ISMG发CMPP_SUBMIT消息,由ISMG将消息转发到某SMC上。同时,SMC也可向ISMG发送短消息,由ISMG发送给相应的SP。中国移动通信集团公司第3页共21页4.CMPP功能概述CMPP用以建立短消息中心和SP之间的通路,业务和信息的提供由SP完成。可以为实现移动数据增值业务提供服务,例如以下业务:Email通知、语音信箱通知、Internet发短消息、移动台发Email、催费通知、自动综合业务信息台(信息点播业务,主要有:天气预报、股票信息、航班信息等)。以下以Email通知业务为例,讲述信息的流程:某因特网的用户向SP的EmailServer发送一封Email,SP的POP3SERVER激活过滤进程,如果该用户申请了Email通知业务,则过滤进程将用户登记的手机号码取出,将Email的标题取出,绑定在CMPP_SUBMIT消息中,发送给ISMG,ISMG将检查CMPP_SUBMIT消息中“接收业务的手机号码”字段,则在ISMG中查询该手机用户归属的SMC的地址,然后发送给SMC。ISMG得到确认消息后,将消息转换成CMPP_SUBMIT_REP,发回给SP。SMC收到该消息后,对该消息进行处理,发送给用户。SMC向ISMG回送状态报告。由上述流程可见,对于SP来讲,要做的工作主要集中在第二步,即在EMAILSERVER中做一个过滤程序,实现上述功能即可。从协议上说,SP只要具备CMPP中实现的接口,就可以实现对应于控制层的功能,至于对于具体的SP功能实体,比如EmailServer、WebServer等,尚需做一些应用层的工作。5.接口CMPP协议以TCP/IP作为底层通信承载。6消息流程SP与ISMG之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。所谓长连接,指在一个连接上可以连续发送多个数据包,然后断开连接,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。短信网关之间前转时要求每条消息都要有状态报告。当向用户发送信息发生错误时,网关应向CMPPTCPIP底层承载ICPCMPPTCPIP底层承载ISMG中国移动通信集团公司第4页共21页SP发送错误状态报告。6.1长连接SP与ISMG以Client—Server方式建立TCP连接,用于双方信息的相互提交。TCP/IP连接建立后,由Client发起建立应用层连接,然后进行数据传输,当信道上没有数据传输时,客户端应发送链路检测包以维持此连接,超过一定时间(可参数配置,如2秒)服务端如果未收到客户端的任何数据则断开此连接。消息采用并发方式发送,加以流量控制,窗口大小可调,暂定为16条消息,即接收方在应答前一次收到的消息最多不超过16条。SP向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向SP发送的消息类型包括: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终止应用层连接应答中国移动通信集团公司第5页共21页长连接一次操作流程SPISMG说明CMPP_ConnectSP请求与ISMG建立应用层连接CMPP_Connect_REPISMG请求连接应答CMPP_Submit(1)提交短信,要求确认CMPP_Submit(2)提交短信,要求确认CMPP_Submit_REP对(1)的提交短信响应CMPP_Submit_REP对(2)的提交短信响应CMPP_Deliver(3)短信下发CMPP_Deliver(4)短信下发CMPP_Deliver_REP对(3)的短信应答CMPP_Deliver_REP对(4)的短信应答CMPP_Cancel删除短信CMPP_Cancel_REP删除短信响应CMPP_Query发送短信状态查询CMPP_Query_REP短信状态查询结果CMPP_Terminate终止应用层连接CMPP_Terminate_Rep终止应用层连接响应图6.1长连接消息流程示意图多次操作。。。。。。中国移动通信集团公司第6页共21页6.2短连接ISMG与SP之间的通讯采用TCP/IP协议,双方互为client和server端。发送与接收单独进行,每项业务建立一个连接,通讯采用应答方式,应答与请求在同一个连接中完成。由于系统采用互为客户端/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。连接中对SP的认证采用阶段性(如一天或一月)认证方式,当SP首次与IMSG交换信息时,SP首先发送身份认证包,ISMG对SP进行身份认证后,记录SP的IP地址等相关信息,在以后的数据交互时,ISMG把SP的IP地址作为认证条件,即对没有注册的SP的相关信息不予处理。当SP想断开此逻辑上的应用层连接时,发送断开连接请求包,ISMG接受断开连接请求后,清除掉与此SP相关的信息,即对MO到此SP或SP的MT信息均不予处理,但保存MO的信息,直到SP再次与ISMG建立逻辑上的应用层连接,即身份认证。也允许ISMG发起断开SP的连接请求。ISMG之间通信采用短连接方式,首先发起连接者作为客户端,对方作为服务器建立连接。消息采用并发方式发送,并加以流量控制,窗口大小可调,暂定为16条消息,即接收方在应答前一次收到的消息最多不超过16条。SP向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向SP发送的消息类型包括:1)CMPP_Connect_REP请求逻辑应用层连接应答2)CMPP_Terminate终止逻辑应用层连接3)CMPP_Terminate_REP终止逻辑应用层连接应答4)CMPP_Deliver短信下发5)CMPP_Submit_REP提交短信应答6)CMPP_Query_REP短信状态查询结果7)CMPP_Cancel_REP删除短信应答ISMG处于同一级别之上,ISMG之间数据传输采用长连接或短连接方式实现,首选长连接方式实现。ISMG间互为客户/服务器模式,连接由数据请求的发起方建立,双方均可关闭此连接。ISMG间发送的消息类型包括:1)CMPP_Fwd消息前转2)CMPP_Fwd_REP消息前转应答中国移动通信集团公司第7页共21页短连接一次操作流程(MO和MT):SPISMG说明CMPP_Connect_REP建立连接MO关闭连接CMPP_SubmitCMPP_Deliver_REP关闭连接建立TCP/IP连接短信下发CMPP_Deliver关闭TCP/IP连接短信下发应答建立TCP/IP连接CMPP_Submit_REP关闭TCP/IP连接短信提交短信提交应答建立连接MT图6.2短连接信息流程示意图建立连接建立TCP/IP连接CMPP_Connect建立逻辑应用层连接逻辑应用层连接应答关闭TCP/IP连接多次操作。。。。。。建立连接建立TCP/IP连接CMPP_Teminate断开逻辑应用层连接请求CMPP_Teminate_REP关闭连接关闭TCP/IP连接断开逻辑应用层连接请求应答关闭连接中国移动通信集团公司第8页共21页ISMG与汇接结点间的消息类型包括:1)CMPP_MT_ROUTEMT路由请求2)CMPP_MT_ROUTE_REPMT路由请求应答3)CMPP_MO_ROUTEMO路由请求4)CMPP_MO_ROUTE_REPMO路由请求应答5)CMPP_GET_ROUTE获取路由请求6)CMPP_GET_ROUTE_REP获取路由请求应答7)CMPP_MT_ROUTE_UPDATEMT路由更新,ISMG-Central8)CMPP_MT_ROUTE_UPDATE_REPMT路由更新回应,Central-ISMG9)CMPP_MO_ROUTE_UPDATEMO路由更新,ISMG-Central10)CMPP_MO_ROUTE_UPDATE_REPMO路由更新回应,Central-ISMG11)CMPP_PUSH_MT_ROUTE_UPDATEMT路由更新,Central-ISMG12)CMPP_PUSH_MT_ROUTE_UPDATE_REPMT路由更新回应,ISMG-Central13)CMPP_PUSH_MO_ROUTE_UPDATEMO路由更新,Central-ISMG14)CMPP_PUSH_MO_ROUTE_UPDATE_REPMO路由更新回应,ISMG-Central6.3交互过程中的应答方式下图给出SP提交短消息的交互流程示例,注意采用同步方式,与以前协议中采用的异步方式不同:本版本规范定义的协议交互流程(同步方式)CMPP_Fwd_REPSMC短信网关短信网关SPGW产生MsgIDSubmit_SM_RSPSubmit_SMCMPP_FwdCMPP_SubmitCMPP_Submit_REP返回MsgID(gw)给SP中国移动通信集团公司第9页共21页7.消息定义CMPP长连接端口号定义为7890,短连接端口号定义为7900。字节采用在网络中通用的网络字节序,超时时长间隔采用斐波那契数列,重发次数动态可调,最好不少于3次。基本数据类型:Integer无符号整数OctetString定长字符串,位数不足时,如果左补0则补ASCII表示的零,如果右补0则补二进制的零7.1消息结构项目说明MessageHeader消息头(所有消息公共包头)MessageBody消息体7.2消息头格式(MessageHeader)字段名字节数类型描述Total_Length4Integer消息总长度(含消息头及消息体)Command_ID4Integer命令或响应类型Sequence_ID4Integer消息流水号,顺序累加,步长为1