中国移动通信互联网短信网关接口协议1.docx
《中国移动通信互联网短信网关接口协议1.docx》由会员分享,可在线阅读,更多相关《中国移动通信互联网短信网关接口协议1.docx(51页珍藏版)》请在冰豆网上搜索。
中国移动通信互联网短信网关接口协议1
中国移动通信互联网短信网关接口协议
(ChinaMobilePeertoPeer,CMPP)
(V2.0)
中国移动通信集团公司
2002年4月
目录
前言4
1.范围5
2.缩略语5
3.网络结构6
4.CMPP功能概述6
5.协议栈8
6.通信方式8
6.1长连接9
6.2短连接11
6.3本协议中涉及的端口号12
6.4交互过程中的应答方式12
7.消息定义12
7.1基本数据类型12
7.2消息结构13
7.3消息头格式(MessageHeader)13
7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义13
7.4.1SP请求连接到ISMG(CMPP_CONNECT)操作13
7.4.1.1CMPP_CONNECT消息定义(SPISMG)13
7.4.1.2CMPP_CONNECT_RESP消息定义(ISMGSP)14
7.4.2SP或ISMG请求拆除连接(CMPP_TERMINATE)操作14
7.4.2.1CMPP_TERMINATE消息定义(SPISMG或ISMGSP)14
7.4.2.2CMPP_TERMINATE_RESP消息定义(SPISMG或ISMGSP)14
7.4.3SP向ISMG提交短信(CMPP_SUBMIT)操作15
7.4.3.1CMPP_SUBMIT消息定义(SPISMG)15
7.4.3.2CMPP_SUBMIT_RESP消息定义(ISMGSP)16
7.4.4SP向ISMG查询发送短信状态(CMPP_QUERY)操作17
7.4.4.1CMPP_QUERY消息的定义(SPISMG)17
7.4.4.2CMPP_QUERY_RESP消息的定义(ISMGSP)17
7.4.5ISMG向SP送交短信(CMPP_DELIVER)操作18
7.4.5.1CMPP_DELIVER消息定义(ISMGSP)18
7.4.5.2CMPP_DELIVER_RESP消息定义(SPISMG)20
7.4.6SP向ISMG发起删除短信(CMPP_CANCEL)操作20
7.4.6.1CMPP_CANCEL消息定义(SPISMG)20
7.4.6.2CMPP_CANCEL_RESP消息定义(ISMGSP)20
7.4.7链路检测(CMPP_ACTIVE_TEST)操作21
7.4.7.1CMPP_ACTIVE_TEST定义(SPISMG或ISMGSP)21
7.4.7.2CMPP_ACTIVE_TEST_RESP定义(SPISMG或ISMGSP)21
7.5互联网短信网关(ISMG)之间的消息定义21
7.5.1源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作21
7.5.2源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作21
7.5.3链路检测(CMPP_ACTIVE_TEST)操作21
7.5.4源ISMG向目的ISMG转发短信(CMPP_FWD)操作21
7.5.4.1CMPP_FWD定义(ISMGISMG)21
7.5.4.2CMPP_FWD_RESP定义(ISMGISMG)25
7.6互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义25
7.6.1ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作25
7.6.2ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作26
7.6.3ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作26
7.6.3.1CMPP_MT_ROUTE消息定义(ISMGGNS)26
7.6.3.2CMPP_MT_ROUTE_RESP消息定义(GNSISMG)26
7.6.4ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作26
7.6.4.1CMPP_MO_ROUTE消息定义(ISMGGNS)26
7.6.4.2CMPP_MO_ROUTE_RESP消息定义(GNSISMG)27
7.6.5ISMG向汇接网关获取路由(CMPP_GET_ROUTE)操作27
7.6.5.1CMPP_GET_ROUTE消息定义(ISMGGNS)27
7.6.5.2CMPP_GET_ROUTE_RESP消息定义(GNSISMG)27
7.6.6ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作28
7.6.6.1CMPP_MT_ROUTE_UPDATE消息定义(ISMGGNS)28
7.6.6.2CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNSISMG)28
7.6.7ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作29
7.6.7.1CMPP_MO_ROUTE_UPDATE消息定义(ISMGGNS)29
7.6.7.2CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNSISMG)29
7.6.8汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作29
7.6.8.1CMPP_PUSH_MT_ROUTE_UPDATE消息定义(GNSISMG)30
7.6.8.2CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMGGNS)30
7.6.9汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作30
7.6.9.1CMPP_PUSH_MO_ROUTE_UPDATE消息定义(GNSISMG)30
7.6.9.2CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMGGNS)31
7.7系统定义31
7.7.1Command_Id定义31
附录1MO状态报告的产生32
修订历史34
前言
本规范为中国移动通信集团公司企业规范,简称CMPP,现阶段版本是对1.2.1版修订后形成的,为2.0版。
本规范描述了中国移动短信业务中各网元(包括ISMG、GNS和SP)之间的相关消息的类型和定义。
根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加。
本规范解释权属于中国移动通信集团公司。
本规范起草单位:
中国移动通信集团公司研发中心。
1.范围
本规范规定了以下三方面的内容:
(1)信息资源站实体与互联网短信网关之间的接口协议;
(2)互联网短信网关之间的接口协议;
(3)互联网短信网关与汇接网关之间的接口协议。
本规范适用于各SP和ISMG的开发厂商。
2.缩略语
英文缩写
英文全称
说明
ISMG
InternetShortMessageGateway
互联网短信网关
SMPP
ShortMessagePeertoPeer
短消息点对点协议
CMPP
ChinaMobilePeertoPeer
中国移动点对点协议
SMC
ShortMessageCenter
短消息中心
GNS
GatewayNameServer
网关名称服务器(汇接网关)
SP
ServiceProvider
业务提供者,即信息资源站实体
SMC
ShortMessageControl
SP为收取包月业务费用而向网关发送的消息,网关收到后不送给用户仅产生相应的话单;
ISMG_Id
网关代码:
0XYZ01~0XYZ99,其中XYZ为省会区号,位数不足时左补零,如北京编号为1的网关代码为001001,江西编号为1的网关代码为079101,依此类推。
SP_Id
SP的企业代码:
网络中SP地址和身份的标识、地址翻译、计费、结算等均以企业代码为依据。
企业代码以数字表示,共6位,从“9XY000”至“9XY999”,其中“XY”为各移动公司代码。
SP_Code
SP的服务代码:
服务代码是在使用短信方式的点播类业务中,提供给用户点播的内容/应用服务提供商代码。
服务代码以数字表示,全国业务服务代码长度统一为4位,即“1000”-“9999”;本地业务服务代码长度统一为5位,即“01000”-“09999”。
Service_Id
SP的业务类型,数字、字母和符号的组合,由SP自定,如图片传情可定为TPCQ,股票查询可定义为11。
3.网络结构
如图1所示,互联网短信网关(ISMG)是外部信息资源站实体(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。
另一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。
另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。
互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。
4.CMPP功能概述
CMPP协议主要提供以下两类业务操作:
(1)短信发送(ShortMessageMobileOriginate,SMMO)
典型的业务操作举例如图2所示:
2
图2需要前转的MO示意图
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)短信接收(ShortMessageMobileTerminated,SMMT)
典型的业务操作举例如图3所示:
8
图3需要前转的MT示意图
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所示:
GNS
图4CMPP协议栈
6.通信方式
SP与ISMG之间、ISMG之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。
所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。
短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CMPP消息的发送。
.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所示:
......
拆除TCP连接
建立TCP连接
对CMPP消息2的响应
对CMPP消息1的响应
CMPP消息2
服务器端
客户端
CMPP消息1
滑动窗口不大于WW
链路检测包
链路检测包响应
链路检测包响应
......
图5长连接一次操作流程
.2短连接
通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。
系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。
现阶段建议取值为:
T=60秒,N=3。
短连接的操作流程举例如图6所示:
......
拆除TCP连接
服务器/客户端
客户端/服务器端
建立TCP连接
CMPP消息2
对CMPP消息2的响应
拆除TCP连接
图6短连接的操作流程
6.3本协议中涉及的端口号
端口号
应用
7890
长连接(SP与网关间)
7900
短连接(SP与网关间或网关之间)
7930
长连接(网关之间)
9168
短连接(短信网关与汇接网关之间)
6.4交互过程中的应答方式
在SP与ISMG之间、SMC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。
举例如图7所示:
SMC
SP
ISMG2
ISMG1
SMPP响应消息
SMPP请求消息
CMPP响应消息
CMPP响应消息
图7异步交互方式示意图
7.消息定义
7.1基本数据类型
UnsignedInteger
无符号整数
Integer
整数,可为正整数、负整数或零
OctetString
定长字符串,位数不足时,如果左补0则补ASCII表示的零,如果右补0则补二进制的零
7.2消息结构
项目
说明
MessageHeader
消息头(所有消息公共包头)
MessageBody
消息体
7.3消息头格式(MessageHeader)
字段名
字节数
类型
描述
Total_Length
4
UnsignedInteger
消息总长度(含消息头及消息体)
Command_Id
4
UnsignedInteger
命令或响应类型
Sequence_Id
4
UnsignedInteger
消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义
SP与ISMG之间互为客户/服务器,但要求SP首先以客户的身份请求连接到ISMG,之后SP与ISMG之间方可进行数据传输。
7.4.1SP请求连接到ISMG(CMPP_CONNECT)操作
CMPP_CONNECT操作的目的是SP向ISMG注册作为一个合法SP身份,若注册成功后即建立了应用层的连接,此后SP可以通过此ISMG接收和发送短信。
ISMG以CMPP_CONNECT_RESP消息响应SP的请求。
7.4.1.1CMPP_CONNECT消息定义(SPISMG)
字段名
字节数
属性
描述
Source_Addr
6
OctetString
源地址,此处为SP_Id,即SP的企业代码。
AuthenticatorSource
16
OctetString
用于鉴别源地址。
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorSource=
MD5(Source_Addr+9字节的0+sharedsecret+timestamp)
Sharedsecret由中国移动与源地址实体事先商定,timestamp格式为:
MMDDHHMMSS,即月日时分秒,10位。
Version
1
UnsignedInteger
双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号)
Timestamp
4
UnsignedInteger
时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐。
7.4.1.2CMPP_CONNECT_RESP消息定义(ISMGSP)
字段名
字节数
属性
描述
Status
1
UnsignedInteger
状态
0:
正确
1:
消息结构错
2:
非法源地址
3:
认证错
4:
版本太高
5~:
其他错误
AuthenticatorISMG
16
OctetString
ISMG认证码,用于鉴别ISMG。
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorISMG=MD5(Status+AuthenticatorSource+sharedsecret),Sharedsecret由中国移动与源地址实体事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。
认证出错时,此项为空。
Version
1
UnsignedInteger
服务器支持的最高版本号
7.4.2SP或ISMG请求拆除连接(CMPP_TERMINATE)操作
CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。
此操作完成后SP与ISMG之间的应用层连接被释放,此后SP若再要与ISMG通信时应发起CMPP_CONNECT操作。
ISMG或SP以CMPP_TERMINATE_RESP消息响应请求。
7.4.2.1CMPP_TERMINATE消息定义(SPISMG或ISMGSP)
无消息体。
7.4.2.2CMPP_TERMINATE_RESP消息定义(SPISMG或ISMGSP)
无消息体。
7.4.3SP向ISMG提交短信(CMPP_SUBMIT)操作
CMPP_SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信。
ISMG以CMPP_SUBMIT_RESP消息响应。
7.4.3.1CMPP_SUBMIT消息定义(SPISMG)
字段名
字节数
属性
描述
Msg_Id
8
UnsignedInteger
信息标识,由SP侧短信网关本身产生,本处填空。
Pk_total
1
UnsignedInteger
相同Msg_Id的信息总条数,从1开始
Pk_number
1
UnsignedInteger
相同Msg_Id的信息序号,从1开始
Registered_Delivery
1
UnsignedInteger
是否要求返回状态确认报告:
0:
不需要
1:
需要
2:
产生SMC话单
(该类型短信仅供网关计费使用,不发送给目的终端)
Msg_level
1
UnsignedInteger
信息级别
Service_Id
10
OctetString
业务类型,是数字、字母和符号的组合。
Fee_UserType
1
UnsignedInteger
计费用户类型字段
0:
对目的终端MSISDN计费;
1:
对源终端MSISDN计费;
2:
对SP计费;
3:
表示本字段无效,对谁计费参见Fee_terminal_Id字段。
Fee_terminal_Id
21
UnsignedInteger
被计费用户的号码(如本字节填空,则表示本字段无效,对谁计费参见Fee_UserType字段,本字段与Fee_UserType字段互斥)
TP_pId
1
UnsignedInteger
GSM协议类型。
详细是解释请参考GSM03.40中的9.2.3.9
TP_udhi
1
UnsignedInteger
GSM协议类型。
详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
Msg_Fmt
1
UnsignedInteger
信息格式
0:
ASCII串
3:
短信写卡操作
4:
二进制信息
8:
UCS2编码
15:
含GB汉字。
。
。
。
。
。
Msg_src
6
OctetString
信息内容来源(SP_Id)
FeeType
2
OctetString
资费类别
01:
对“计费用户号码”免费
02:
对“计费用户号码”按条计信息费
03:
对“计费用户号码”按包月收取信息费
04:
对“计费用户号码”的信息费封顶
05:
对“计费用户号码”的收费是由SP实现
FeeCode
6
OctetString
资费代码(以分为单位)
ValId_Time
17
OctetString
存活有效期,格式遵循SMPP3.3协议
At_Time
17
OctetString
定时发送时间,格式遵循SMPP3.3协议
Src_Id
21
OctetString
源号码
SP的服务代码或前缀为服务代码的长号码,网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码
DestUsr_tl
1
UnsignedInteger
接收信息的用户数量(小于100个用户)
Dest_terminal_Id
21*DestUsr_tl
OctetString
接收短信的MSISDN号码
Msg_Length
1
UnsignedInteger
信息长度(Msg_Fmt值为0时:
<160个字节;其它<=140个字节)
Msg_Content
Msg_length
OctetString
信息内容
Reserve
8
OctetString
保留
注意:
关于短信群发的问题,若SP对于群发消息不要求状态报告的回送时,才可以考虑群发,否则必须逐条发送。
7.4.3.2CMPP_SUBMIT_RESP消息定义(ISMGSP)
字段名
字节数
属性
描述
Msg_Id
8
UnsignedInteger
信息标识,生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):
bit64~b