中国移动通信
互联网短信网关接口协议
(China Mobile Peer to Peer, CMPP)
(V2.0)
中国移动通信集团公司
2002年 4 月
目录
前 言..................................................................................................................................................................... 4
1范围.................................................................................................................................................................. 5
2缩略语.............................................................................................................................................................. 5
3.网络结构........................................................................................................................................................... 6
4.CMPP功能概述.............................................................................................................................................. 7
5. 协议栈................................................................................................................................................................. 8
6. 通信方式............................................................................................................................................................. 9
6.1 长连接........................................................................................................ 9
6.2 短连接....................................................................................................... 11
6.3 本协议中涉及的端口号.............................................................................. 12
6.4 交互过程中的应答方式.................................................................................... 12
7.消息定义......................................................................................................................................................... 12
7.1基本数据类型..................................................................................................... 12
7.2消息结构............................................................................................................ 13
7.3 消息头格式(Message Header)......................................................................... 13
7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义.............................. 13
7.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作....................................... 13
7.4.2 SP或ISMG请求拆除连接(CMPP_TERMINATE)操作......................... 14
7.4.3 SP向ISMG提交短信(CMPP_SUBMIT)操作....................................... 15
7.4.4 SP向ISMG查询发送短信状态(CMPP_QUERY)操作.......................... 17
7.4.5 ISMG向SP送交短信(CMPP_DELIVER)操作..................................... 18
7.4.6 SP向ISMG发起删除短信(CMPP_CANCEL)操作............................ 21
7.4.7 链路检测(CMPP_ACTIVE_TEST)操作............................................ 21
7.5互联网短信网关(ISMG)之间的消息定义............................................................. 22
7.5.1 源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作...................... 22
7.5.2 源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作....... 22
7.5.3链路检测(CMPP_ACTIVE_TEST)操作.................................................. 22
7.5.4 源ISMG向目的ISMG转发短信(CMPP_FWD)操作.............................. 22
7.6互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义.................................. 27
7.6.1 ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作. 27
7.6.2 ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作 27
7.6.3 ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作..................... 27
7.6.4 ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作.................... 28
7.6.5ISMG向汇接网关获取路由(CMPP_GET_ROUTE)操作........................... 29
7.6.6 ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作...... 30
7.6.7 ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作..... 30
7.6.8汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作 31
7.6.9汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作 32
7.7系统定义............................................................................................................ 33
7.7.1 Command_Id定义..................................................................................... 33
附录1 MO状态报告的产生........................................................................................................................ 35
修订历史................................................................................................................................................................ 37
前 言
本规范为中国移动通信集团公司企业规范,简称CMPP,现阶段版本是对1.2.1版修订后形成的,为2.0版。本规范描述了中国移动短信业务中各网元(包括ISMG、GNS和SP)之间的相关消息的类型和定义。根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加。
本规范解释权属于中国移动通信集团公司。
本规范起草单位:中国移动通信集团公司研发中心。
本标准主要起草人:党京、孙若雯、于蓉蓉、袁向阳。
1 范围
本规范规定了以下三方面的内容:
(1)信息资源站实体与互联网短信网关之间的接口协议;
(2)互联网短信网关之间的接口协议;
(3)互联网短信网关与汇接网关之间的接口协议。
本规范适用于各SP和ISMG的开发厂商。
2 缩略语
3.网络结构
如图1所示,互联网短信网关(ISMG)是外部信息资源站实体(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。
4.CMPP功能概述
CMPP协议主要提供以下两类业务操作:
(1) 短信发送(Short Message Mobile Originate,SM MO)
典型的业务操作举例如图2所示:
1) 手机发出数据请求(可能是订阅信息或图片点播等),被源ISMG接收;
2) 源ISMG对接收到的信息返回响应;
3) 源ISMG在本地查询不到要连接的SP,向GNS(汇接网关)发路由请求信息;
4) GNS将路由信息返回;
5) 源ISMG根据路由信息将请求前转给目的ISMG;
6) 目的ISMG对接收到的信息返回响应;
7) 目的ISMG将请求信息送SP
8) SP返回响应;
在以上操作中,步骤3到步骤8均使用CMPP协议;
在随后的操作中,目的ISMG在接收到SP的响应后将产生MO状态报告发给源ISMG。
(2) 短信接收(Short Message Mobile Terminated,SM MT)
典型的业务操作举例如图3所示:
1) SP发出数据请求(可能是短信通知或手机铃声等),被源ISMG接收;
2) 源ISMG对接收到的信息返回响应;
3) 源ISMG在本地数据库中找不到要目的手机号段所对应网关代码,向GNS(汇接网关)发路由请求信息;
4) 汇接网关将路由信息返回;
5) 源ISMG根据路由信息将请求前转给目的ISMG;
6) 目的ISMG对接收到的信息返回响应;
7) 目的ISMG将请求信息发送至SMC;
8) SMC向目的ISMG返回响应;
在上述操作中,步骤1到步骤6均使用CMPP协议;
在随后的操作中,SMC将通过NO.7信令网向移动用户发送信息,移动用户收到后将返回状态报告(Delivery-Receipt)给短信中心,短信中心将按照MO操作的流程将状态报告返回给SP(如果SP要求返回状态报告)。
5. 协议栈
CMPP协议以TCP/IP作为底层通信承载,具体结构由图4所示:
图4 CMPP协议栈
6. 通信方式
SP与ISMG之间、ISMG之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CMPP消息的发送。
6.1 长连接
通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。
参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。
消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建
议为16,即接收方在应答前一次收到的消息最多不超过16条。
长连接的操作流程举例如图5所示:
图5 长连接一次操作流程
6.2 短连接
通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。
短连接的操作流程举例如图6所示:
图6 短连接的操作流程
6.3 本协议中涉及的端口号
6.4 交互过程中的应答方式
在SP与ISMG之间、SMC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。举例如图7所示:
图7 异步交互方式示意图
7.消息定义
7.1基本数据类型
7.2消息结构
7.3 消息头格式(Message Header)
7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义
SP与ISMG之间互为客户/服务器,但要求SP首先以客户的身份请求连接到ISMG,之后SP与ISMG之间方可进行数据传输。
7.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作
CMPP_CONNECT操作的目的是SP向ISMG注册作为一个合法SP身份,若注册成功后即建立了应用层的连接,此后SP可以通过此ISMG接收和发送短信。
ISMG以CMPP_CONNECT_RESP消息响应SP的请求。
7.4.1.1 CMPP_CONNECT消息定义(SPàISMG)
7.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG à SP)
7.4.2 SP或ISMG请求拆除连接(CMPP_TERMINATE)操作
CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后SP与ISMG之间的应用层连接被释放,此后SP若再要与ISMG通信时应发起CMPP_CONNECT操作。
ISMG或SP以CMPP_TERMINATE_RESP消息响应请求。
7.4.2.1 CMPP_TERMINATE消息定义(SPàISMG或ISMG à SP)
无消息体。
7.4.2.2 CMPP_TERMINATE_RESP消息定义(SPàISMG或ISMG à SP)
无消息体。
7.4.3 SP向ISMG提交短信(CMPP_SUBMIT)操作
CMPP_SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信。
ISMG以CMPP_SUBMIT_RESP消息响应。
7.4.3.1 CMPP_SUBMIT消息定义(SPàISMG)
注意:关于短信群发的问题,若SP对于群发消息不要求状态报告的回送时,才可以考虑群发,否则必须逐条发送。
7.4.3.2 CMPP_SUBMIT_RESP消息定义(ISMG à SP)
7.4.4 SP向ISMG查询发送短信状态(CMPP_QUERY)操作
CMPP_QUERY操作的目的是SP向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。 ISMG以CMPP_QUERY_RESP应答。
7.4.4.1 CMPP_QUERY消息的定义(SPàISMG)
7.4.4.2 CMPP_QUERY_RESP消息的定义(ISMG àSP)
7.4.5 ISMG向SP送交短信(CMPP_DELIVER)操作
CMPP_DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交SP,SP以CMPP_DELIVER_RESP消息回应。
7.4.5.1 CMPP_DELIVER消息定义(ISMGàSP)
当ISMG向SP送交状态报告时,信息内容字段(Msg_Content)格式定义如下:
表一 Stat字段定义
注意:
1.其中ACCEPTED为中间状态,网关若从短信中心收到后应丢弃,不做任何操作。
2.Stat字段长度为7个字节,填写时应填表一中Final Message States中的缩写形式,如
状态为DELIVERED时填写DELIVRD,依此类推。
3.SP等待状态报告缺省时间为48小时。
7.4.5.2 CMPP_DELIVER_RESP消息定义(SP à ISMG)
7.4.6 SP向ISMG发起删除短信(CMPP_CANCEL)操作
CMPP_CANCEL操作的目的是SP通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CMPP_CANCEL_RESP回应删除操作的结果。
7.4.6.1 CMPP_CANCEL消息定义(SP à ISMG)
7.4.6.2 CMPP_CANCEL_RESP消息定义(ISMG à SP)
7.4.7 链路检测(CMPP_ACTIVE_TEST)操作
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。
7.4.7.1 CMPP_ACTIVE_TEST定义(SP à ISMG或ISMGàSP)
无消息体。
7.4.7.2 CMPP_ACTIVE_TEST_RESP定义(SP à ISMG或ISMGàSP)
7.5互联网短信网关(ISMG)之间的消息定义
网关之间互为客户/服务器,任一方都可在需要时建立连接进行数据传输。
7.5.1 源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作
消息定义同7.4.1.1和7.4.1.2所述。其中Source_Addr填源网关代码。
7.5.2 源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作
消息定义同7.4.2.1和7.4.2.2所述。
7.5.3链路检测(CMPP_ACTIVE_TEST)操作
本操作仅用于通信双方采用长连接通信方式时保持连接。消息定义同7.4.6.1和7.4.6.2所述。
7.5.4 源ISMG向目的ISMG转发短信(CMPP_FWD)操作
CMPP_FWD操作的目的是源ISMG可以根据一定的路由策略将SP提交的短信、MO状态报告、短信中心产生的状态报告、用户提交的短信转发到目的ISMG,目的ISMG以CMPP_FWD_RESP回应。
7.5.4.1 CMPP_FWD定义(ISMGà ISMG)
注意:
1.对于包月的SMC消息,应由ISMG向SP返回成功与否的状态报告,格式同7.4.5.1定义,若成功回送Stat值为“DELIVRD”,失败则回送Stat值“UNDELIV”。
2.当转发消息为MO状态报告(MO状态报告的产生见附录1)时,信息内容字段(Msg_Content)格式定义如下:
注意:
在MO流程中,若短信经ISMG2转发给与SP相连的ISMG1,ISMG1在给SP发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息。对这四种情况的处理描述如下:
①②③:ISMG1在处理这三种情况的时候,向ISMG2发送MO状态报告,状态报告中的stat字段取值为“REJECTD”。
④:ISMG1在处理这种情况时,向ISMG2发送MO状态报告,其中stat字段取值“DELIVRD”。
3.当转发消息为MT状态报告时,信息内容字段(Msg_Content)格式同7.4.5.1定义。若SP发送的短信经由ISMG1转发给ISMG2,ISMG1给ISMG2发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息。对这四种情况的处理描述如下:
①②③:ISMG1在处理这三种情况的时候,向SP发送MT状态报告(如果SP要求状态报告),状态报告中的stat字段取值为“REJECTD”。
④:ISMG1在处理这种情况时,继续等待ISMG2返回状态报告。
随后,ISMG2给SMC发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息。对这四种情况的处理描述如下:
①②③:ISMG2在处理这三种情况的时候,向SP发送MT状态报告(如果SP要求状态报告),状态报告中的stat字段取值为“REJECTD”。
④:ISMG2在处理这种情况时,继续等待SMC返回状态报告。
7.5.4.2 CMPP_FWD_RESP定义(ISMGà ISMG)
7.6互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义
要求ISMG与GNS在信息交互时使用短连接的通信方式。ISMG与GNS可互为客户/服务器。
7.6.1 ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作
消息定义同7.4.1.1和7.4.1.2所述,其中Source_Addr填源网关代码,可能是ISMG代码或GNS代码。
7.6.2 ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作
消息定义同7.4.2.1和7.4.2.2所述。
7.6.3 ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作
CMPP_MT_ROUTE操作用于ISMG不知道需要转发MT消息的路由时查询GNS。GNS以CMPP_MT_ROUTE_RESP应答。
7.6.3.1 CMPP_MT_ROUTE消息定义(ISMGàGNS)
7.6.3.2 CMPP_MT_ROUTE_RESP消息定义(GNS à ISMG)
7.6.4 ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作
CMPP_MO_ROUTE操作的目的是使ISMG当不知道需要转发MO消息的路由时可向GNS查询得到。GNS以CMPP_MO_ROUTE_RESP应答。
7.6.4.1 CMPP_MO_ROUTE消息定义(ISMGàGNS)
7.6.4.2 CMPP_MO_ROUTE_RESP消息定义(GNS à ISMG)
7.6.5ISMG向汇接网关获取路由(CMPP_GET_ROUTE)操作
CMPP_GET_ROUTE操作的目的是使ISMG可向GNS查询MO或MT时的路由信息。GNS以CMPP_GET_ROUTE_RESP消息回应。
7.6.5.1 CMPP_GET_ ROUTE消息定义(ISMGàGNS)
7.6.5.2 CMPP_GET_ ROUTE_RESP消息定义(GNS à ISMG)
7.6.6 ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作
CMPP_MT_ROUTE_UPDATE操作的目的是使ISMG可向GNS更新MT路由信息。GNS以CMPP_MT_ROUTE_UPDATE _RESP消息回应。
7.6.6.1 CMPP_MT_ROUTE_UPDATE消息定义(ISMGàGNS)
7.6.6.2 CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS à ISMG)
7.6.7 ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作
CMPP_MO_ROUTE_UPDATE操作的目的是使ISMG可向GNS更新MO路由信息。GNS以CMPP_MO_ROUTE_UPDATE _RESP消息回应。
7.6.7.1 CMPP_MO_ROUTE_UPDATE消息定义(ISMGàGNS)
7.6.7.2CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS à ISMG)
7.6.8汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作
CMPP_PUSH_MT_ROUTE_UPDATE操作的目的是使GNS可向ISMG更新MT路由信息。ISMG以CMPP_PUSH_MT_ROUTE_UPDATE_RESP 消息回应。
7.6.8.1 CMPP_PUSH_MT_ROUTE_UPDATE消息定义(GNSàISMG)
7.6.8.2 CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG à GNS)
7.6.9汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作
CMPP_PUSH_MO_ROUTE_UPDATE操作的目的是使GNS可向ISMG更新MO路由信息。ISMG以CMPP_PUSH_MO_ROUTE_UPDATE_RESP 消息回应。
7.6.9.1 CMPP_PUSH_MO_ROUTE_UPDATE消息定义(GNSàISMG)
7.6.9.2 CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMG à GNS)
7.7系统定义
7.7.1 Command_Id定义
附录1 MO状态报告的产生
为解决MO业务计费及使源网关获知SP对转发的MO消息的接收状态,现要求网关处理流程如下图所示:
附录1-图1 MO状态报告的产生
1. 用户提交短信到SMSC;
2. SMSC给用户返回提交短信的应答,让用户知道短信发送成功与否,如果该处失败,则SMSC不再进行下述的流程;
3. SMSC通过SMPP消息DELIVER_SM把短信发送给ISMG1;
4. ISMG1以DELIVER_SM_RESP消息应答给SMSC;
5. ISMG1根据用户发送的短消息中目的SP服务代码查询路由后转发给ISMG2;
6. ISMG2发送CMPP_FWD_RESP消息应答;
7. SP对 ISMG2将用户的短信提交给SP;
8. ISMG2发送提交应答;
9. 为保证ISMG1获知SP的接收情况,此时ISMG2应产生一个状态报告转发给ISMG1;
10. ISMG1收到此状态报告后发送转发应答响应;
目的网关用于向源网关通知SP接收情况的状态报告时,CMPP_FWD消息中Msg_Fwd_Type值为3,表示MO的状态报告,信息内容字段(Msg_Content)格式定义如下: