2023年7月31日发(作者:)
中国移动通信互联网短信网关接口协议
(China Mobile Peer to Peer, CMPP)
中国移动通信集团公司2002年4月
()
目 录
前 言...................................................................... 4
1. 范围 ................................................................. 5
2. 缩略语 ............................................................... 5
3.网络结构 .................................................................. 6
4.CMPP功能概述 .............................................................. 6
5. 协议栈.................................................................... 8
6. 通信方式 .................................................................. 8
长连接 ........................................................... 9
短连接 .......................................................... 11
本协议中涉及的端口号 ............................................ 12
交互过程中的应答方式 .................................................. 12
7.消息定义 ................................................................. 12
基本数据类型 ............................................................ 12
消息结构 ................................................................ 13
消息头格式(Message Header) ........................................... 13
信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义 .................... 13
SP请求连接到ISMG(CMPP_CONNECT)操作 ............................... 13
CMPP_CONNECT消息定义(SPISMG) ............................... 13
CMPP_CONNECT_RESP消息定义(ISMG SP) ........................ 14
SP或ISMG请求拆除连接(CMPP_TERMINATE)操作 ........................ 14
CMPP_TERMINATE消息定义(SPISMG或ISMG SP) ................. 14
CMPP_TERMINATE_RESP消息定义(SPISMG或ISMG SP) ............ 14
SP向ISMG提交短信(CMPP_SUBMIT)操作 ............................... 15
CMPP_SUBMIT消息定义(SPISMG) ................................ 15
CMPP_SUBMIT_RESP消息定义(ISMG SP) ......................... 16
SP向ISMG查询发送短信状态(CMPP_QUERY)操作 ........................ 17
CMPP_QUERY消息的定义(SPISMG) ............................... 17
CMPP_QUERY_RESP消息的定义(ISMG SP) ......................... 17
ISMG向SP送交短信(CMPP_DELIVER)操作 .............................. 18
CMPP_DELIVER消息定义(ISMGSP) ............................... 18
CMPP_DELIVER_RESP消息定义(SP ISMG) ........................ 20
SP向ISMG发起删除短信(CMPP_CANCEL)操作 ..................... 20
CMPP_CANCEL消息定义(SP ISMG) .............................. 21
CMPP_CANCEL_RESP消息定义(ISMG SP) ......................... 21
链路检测(CMPP_ACTIVE_TEST)操作 ............................ 21
CMPP_ACTIVE_TEST定义(SP ISMG或ISMGSP) ................... 21
CMPP_ACTIVE_TEST_RESP定义(SP ISMG或ISMGSP) .............. 21
互联网短信网关(ISMG)之间的消息定义 ...................................... 21
源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作 ....................... 21
源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作 ............... 21 链路检测(CMPP_ACTIVE_TEST)操作 .................................... 21
源ISMG向目的ISMG转发短信(CMPP_FWD)操作 ........................... 22
CMPP_FWD定义(ISMG ISMG) .................................... 22
CMPP_FWD_RESP定义(ISMG ISMG) ............................... 25
互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义 ....................... 26
ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作 ........... 26
ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作.................................................................... 26
ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作 ...................... 26
CMPP_MT_ROUTE消息定义(ISMGGNS) ............................. 26
CMPP_MT_ROUTE_RESP消息定义(GNS ISMG) ...................... 26
ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作 ...................... 27
CMPP_MO_ROUTE消息定义(ISMGGNS) ............................. 27
CMPP_MO_ROUTE_RESP消息定义(GNS ISMG) ...................... 27
向汇接网关获取路由(CMPP_GET_ROUTE)操作 ............................ 27
CMPP_GET_ ROUTE消息定义(ISMGGNS) ........................... 27
CMPP_GET_ ROUTE_RESP消息定义(GNS ISMG) .................... 28
ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作 ............... 28
CMPP_MT_ROUTE_UPDATE消息定义(ISMGGNS) ...................... 28
CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS ISMG) ............... 29
ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作 ............... 29
CMPP_MO_ROUTE_UPDATE消息定义(ISMGGNS) ...................... 29
CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS ISMG) ................ 29
汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作 ........... 30
CMPP_PUSH_MT_ROUTE_UPDATE消息定义(GNSISMG) ................ 30
CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG GNS) ......... 30
汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作 ........... 30
CMPP_PUSH_MO_ROUTE_UPDATE消息定义(GNSISMG) ................ 30
CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMG GNS) ......... 31
系统定义 ................................................................ 31
Command_Id定义 ..................................................... 31
附录1 MO状态报告的产生 ..................................................... 33
修订历史...................................................... 错误!未定义书签。
前 言
本规范为中国移动通信集团公司企业规范,简称CMPP,现阶段版本是对1.2.1版修订后形成的,为版。本规范描述了中国移动短信业务中各网元(包括ISMG、GNS和SP)之间的相关消息的类型和定义。根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加。
本规范解释权属于中国移动通信集团公司。
本规范起草单位:中国移动通信集团公司研发中心。
1. 范围
本规范规定了以下三方面的内容:
(1)信息资源站实体与互联网短信网关之间的接口协议;
(2)互联网短信网关之间的接口协议;
(3)互联网短信网关与汇接网关之间的接口协议。
本规范适用于各SP和ISMG的开发厂商。
2. 缩略语
英文缩写 英文全称
Short Message
说明
互联网短信网关
短消息点对点协议
中国移动点对点协议
短消息中心
网关名称服务器(汇接网关)
业务提供者,即信息资源站实体
SP为收取包月业务费用而向网关发送的消息,网关收到后不送给用户仅产生相应的话单;
网关代码:0XYZ01~0XYZ99,其中XYZ为省会区号,位数不足时左补零,如北京编号为1的网关代码为001001,江西编号为1的网关代码为079101,依此类推。
SP的企业代码:网络中SP地址和身
份的标识、地址翻译、计费、结算等
均以企业代码为依据。企业代码以数
字表示,共6位,从“9XY000”至
“9XY999”,其中“XY”为各移动公
司代码。
SP的服务代码:服务代码是在使用
短信方式的点播类业务中,提供给
用户点播的内容/应用服务提供商代
码。服务代码以数字表示,全国业
务服务代码长度统一为 4 位,即
“1000”-“9999”;本地业务服务
Internet
ISMG
Gateway
SMPP Short Message Peer to Peer
CMPP China Mobile Peer to Peer
SMC Short Message Center
GNS Gateway Name Server
SP Service Provider
SMC
ISMG_Id
SP_Id
Short Message Control
SP_Code
Service_Id
代码长度统一为5 位,即
“01000”-“09999”。
SP的业务类型,数字、字母和符号的
组合,由SP自定,如图片传情可定
为TPCQ,股票查询可定义为11。
3.网络结构
SPSMPP专线或局域网. . .SP短信中心ISMG . . .CMPPGNSInternetInternet . . .GNS短信短信中心中心SMPP专线或局域网ISMGSP. . .SP图1 互联网短信网关逻辑网络结构
如图1所示,互联网短信网关(ISMG)是外部信息资源站实体(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。
4.CMPP功能概述
CMPP协议主要提供以下两类业务操作: (1) 短信发送(Short Message Mobile Originate,SM MO)
典型的业务操作举例如图2所示:
1
源ISMG
3
4
GNS(汇接网关)
5
目的ISMG
2
SMC
6
7
SP
8
图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) 短信接收(Short Message Mobile Terminated,SM MT)
典型的业务操作举例如图3所示:
SP SMC
1
源ISMG
3
4
GNS(汇接网关)
5
目的ISMG
2
6
7 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将通过信令网向移动用户发送信息,移动用户收到后将返回状态报告(Delivery-Receipt)给短信中心,短信中心将按照MO操作的流程将状态报告返回给SP(如果SP要求返回状态报告)。
5. 协议栈
CMPP协议以TCP/IP作为底层通信承载,具体结构由图4所示:
SP ISMG ISMG
CMPP CMPP CMPP
TCP TCP
TCP
IP IP IP
底层承载 底层承载
底层承载
图4 CMPP协议栈
GNS
CMPP
TCP
IP
底层承载
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所示:
客户端
建立TCP连接
CMPP消息1
服务器端
CMPP消息2
对CMPP消息1的响应
对CMPP消息2的响应
滑动窗口不大于W . . . . . .
链路检测包
链路检测包响应
链路检测包
链路检测包响应
. . . . . .
拆除TCP连接
图5 长连接一次操作流程
6.2 短连接
通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。
短连接的操作流程举例如图6所示:
客户端/服务建立TCP连接
服务器/客户端
CMPP消息1
图6 短连接的操作流程
对CMPP消息1的响应
拆除TCP连接
建立TCP连接
CMPP消息2
对CMPP消息2的响应
拆除TCP连接
. . . . . . 6.3 本协议中涉及的端口号
端口号 应用
7890 长连接(SP与网关间)
7900 短连接(SP与网关间或网关之间)
7930 长连接(网关之间)
9168 短连接(短信网关与汇接网关之间)
交互过程中的应答方式
在SP与ISMG之间、SMC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。举例如图7所示:
SMC ISMG1 ISMG2
SMPP请求消息
CMPP请求消息
SMPP响应消息
CMPP响应消息
图7 异步交互方式示意图
SP
CMPP请求消息
CMPP响应消息
7.消息定义
基本数据类型
Unsigned Integer 无符号整数
Integer 整数,可为正整数、负整数或零
Octet String 定长字符串,位数不足时,如果左补0则补ASCII表示的零,如果右补0则补二进制的零 消息结构
项目
Message Header
Message Body
说明
消息头(所有消息公共包头)
消息体
消息头格式(Message Header)
字段名
Total_Length
Command_Id
Sequence_Id
字节数
类型
描述
4
4
4
Unsigned
消息总长度(含消息头及消息体)
Integer
Unsigned
命令或响应类型
Integer
Unsigned
消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相Integer
同)
信息资源站实体(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消息定义(SPISMG)
字段名
字节数
属性 描述
Source_Addr
源地址,此处为SP_Id,即SP的企业6 Octet
代码。
String
用于鉴别源地址。其值通过单向MD5
AuthenticatorSour16 Octet
hash计算得出,表示如下:
ce String
AuthenticatorSource =
MD5(Source_Addr+9 字节的0
+shared secret+timestamp) Version
Timestamp
1
4
Unsigned
Integer
Unsigned
Integer
Shared secret 由中国移动与源地址实体事先商定,timestamp格式为:MMDDHHMMSS,即月日时分秒,10位。
双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号)
时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐 。
7.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG SP)
字段名
字节数
描述
属性
1 Unsigned 状态
Status
Integer 0:正确
1:消息结构错
2:非法源地址
3:认证错
4:版本太高
5~ :其他错误
Octet String ISMG认证码,用于鉴别ISMG。
其值通过单向MD5 hash计算得出,表示如下:
AuthenticatorISMG =MD5(Status+AuthenticatorSource+shared secret),Shared secret 由中国移动与源地址实体事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。
认证出错时,此项为空。
服务器支持的最高版本号
Unsigned
AuthenticatorISMG 16
Version
1
Integer
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)
SP) 7.4.2.2 CMPP_TERMINATE_RESP消息定义(SP无消息体。
ISMG或ISMG 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侧短信网关本身产生,本处填空。
相同Msg_Id的信息总条数,从1开始
相同Msg_Id的信息序号,从1开始
是否要求返回状态确认报告:
0:不需要
1:需要
2:产生SMC话单
(该类型短信仅供网关计费使用,不发送给目的终端)
信息级别
业务类型,是数字、字母和符号的组合。
Msg_Id
Pk_total
Pk_number
Registered_Delivery
字节数
8
1
1
1
属性
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Msg_level
Service_Id
1
10
Fee_UserType 1
全包35
Unsigned
Integer
Octet
String
Unsigned
Integer
Fee_terminal_Id
TP_pId
TP_udhi
Msg_Fmt
21
1
1
1
全包59
Msg_src
6
计费用户类型字段
0:对目的终端MSISDN计费;
1:对源终端MSISDN计费;
2:对SP计费;
3:表示本字段无效,对谁计费参见Fee_terminal_Id字段。
被计费用户的号码(如本字节填空,则表Unsigned
示本字段无效,对谁计费参见Integer
Fee_UserType字段,本字段与Fee_UserType字段互斥)
Unsigned GSM协议类型。详细是解释请参考中的Integer
9.2.3.9
Unsigned GSM协议类型。详细是解释请参考中的Integer
9.2.3.23,仅使用1位,右对齐
信息格式
Unsigned
0:ASCII串
Integer
3:短信写卡操作
4:二进制信息
8:UCS2编码
15:含GB汉字 。。。。。。
Octet String 信息内容来源(SP_Id) FeeType
2
FeeCode
ValId_Time
At_Time
Src_Id
6全包73
17
17
21
Octet String 资费类别
01:对“计费用户号码”免费
02:对“计费用户号码”按条计信息费
03:对“计费用户号码”按包月收取信息费
04:对“计费用户号码”的信息费封顶
05:对“计费用户号码”的收费是由SP实现
Octet String 资费代码(以分为单位)
DestUsr_tl
Dest_terminal_Id
Msg_Length
Msg_Content
Reserve
Octet String 存活有效期,格式遵循协议
Octet String 定时发送时间,格式遵循协议
Octet String 源号码
SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码
1 Unsigned 接收信息的用户数量(小于100个用户)
Integer
21*DestUsr_tl Octet String 接收短信的MSISDN号码
1
Msg_length
8
Unsigned
Integer
Octet String
Octet String
信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节)
信息内容
保留
注意:关于短信群发的问题,若SP对于群发消息不要求状态报告的回送时,才可以考虑群发,否则必须逐条发送。
7.4.3.2 CMPP_SUBMIT_RESP消息定义(ISMG
字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
SP)
描述
信息标识,生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中
bit64~bit61:月份的二进制表示;
bit60~bit56:日的二进制表示;
bit55~bit51:小时的二进制表示;
bit50~bit45:分的二进制表示;
bit44~bit39:秒的二进制表示;
(2)短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中。
(3)序列号:bit16~bit1,顺序增加,步长为1,循环使用。
各部分如不能填满,左补零,右对齐。 Result 1
(SP根据请求和应答消息的Sequence_Id一致性就可得到CMPP_Submit消息的Msg_Id)
Unsigned
结果
0:正确
Integer
1:消息结构错
2:命令字错
3:消息序号重复
4:消息长度错
5:资费代码错
6:超过最大信息长
7:业务代码错
8:流量控制错
9~ :其他错误
7.4.4 SP向ISMG查询发送短信状态(CMPP_QUERY)操作
CMPP_QUERY操作的目的是SP向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。 ISMG以CMPP_QUERY_RESP应答。
7.4.4.1 CMPP_QUERY消息的定义(SP字段名
Time
Query_Type
字节数
8
1
ISMG)
Query_Code 10
Reserve
8
属性 描述
Octet String 时间YYYYMMDD(精确至日)
查询类别
Unsigned
0:总数查询
Integer
1:按业务类型查询
Octet String 查询码
当Query_Type为0时,此项无效;当Query_Type为1时,此项填写业务类型Service_Id.
Octet String 保留
7.4.4.2 CMPP_QUERY_RESP消息的定义(ISMG
字段名
Time
Query_Type
字节数
8
1
属性
Octet String
Unsigned
Integer
SP)
Query_Code
MT_TLMsg
MT_Tlusr
10
4
4
描述
时间(精确至日)
查询类别
0:总数查询
1:按业务类型查询
Octet String 查询码
Unsigned 从SP接收信息总数
Integer
Unsigned 从SP接收用户总数
Integer MT_Scs
MT_WT
MT_FL
MO_Scs
MO_WT
MO_FL
4
4
4
4
4
4
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
成功转发数量
待转发数量
转发失败数量
向SP成功送达数量
向SP待送达数量
向SP送达失败数量
7.4.5 ISMG向SP送交短信(CMPP_DELIVER)操作
CMPP_DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交SP,SP以CMPP_DELIVER_RESP消息回应。
7.4.5.1 CMPP_DELIVER消息定义(ISMG字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
SP)
描述
信息标识
生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中
bit64~bit61:月份的二进制表示;
bit60~bit56:日的二进制表示;
bit55~bit51:小时的二进制表示;
bit50~bit45:分的二进制表示;
bit44~bit39:秒的二进制表示;
(2)短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中。
(3)序列号:bit16~bit1,顺序增加,步长为1,循环使用。
各部分如不能填满,左补零,右对齐。
目的号码
SP的服务代码,一般4--6位,或者是前缀为服务代码的长号码;该号码是手机用户短消息的被叫号码。
Dest_Id 21 Octet String Service_Id
10
Octet String
Unsigned
Integer
Unsigned
Integer
TP_pid
TP_udhi
Msg_Fmt
1
1
1 Unsigned
Integer
Src_terminal_Id
21
Octet String
Unsigned
Integer
Unsigned
Integer
Octet String
Octet String
Registered_Delivery
Msg_Length
Msg_Content
1
1
Msg_length
8
业务类型,是数字、字母和符号的组合。
GSM协议类型。详细解释请参考中的9.2.3.9
GSM协议类型。详细解释请参考中的9.2.3.23,仅使用1位,右对齐
信息格式
0:ASCII串
3:短信写卡操作
4:二进制信息
8:UCS2编码
15:含GB汉字
源终端MSISDN号码(状态报告时填为CMPP_SUBMIT消息的目的终端号码)
是否为状态报告
0:非状态报告
1:状态报告
消息长度
消息内容
保留项
Reserved
当ISMG向SP送交状态报告时,信息内容字段(Msg_Content)格式定义如下:
字段名
字节数
属性 描述
Msg_Id 8 Unsigned 信息标识
Integer SP提交短信(CMPP_SUBMIT)操作时,与SP相连的ISMG产生的Msg_Id。
Stat 7 Octet String 发送短信的应答结果,含义与SMPP协议要求中stat字段定义相同,详见表一。SP根据该字段确定CMPP_SUBMIT消息的处理状态。
Submit_time 10 Octet String YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59)
Done_time 10 Octet String YYMMDDHHMM
Dest_terminal_21 Octet String 目的终端MSISDN号码(SP发送CMPP_SUBMIT消Id 息的目标终端)
SMSC_sequence 4 Unsigned 取自SMSC发送状态报告的消息体中的消息标Integer 识。
表一 Stat字段定义
Message State
DELIVERED
EXPIRED
DELETED
Final Message States Description
DELIVRD Message is delivered to
destination
EXPIRED Message validity period has
expired
DELETED Message has been deleted. UNDELIVERABLE
ACCEPTED
UNDELIV
ACCEPTD
UNKNOWN
REJECTED
注意:
UNKNOWN
REJECTD
Message is undeliverable
Message is in accepted state.
has been manually read on behalf
of the subscriber by customer
service)
Message is in invalid state
Message is in a rejected state
1.其中ACCEPTED为中间状态,网关若从短信中心收到后应丢弃,不做任何操作。
2.Stat字段长度为7个字节,填写时应填表一中Final Message States中的缩写形式,如
状态为DELIVERED时填写DELIVRD,依此类推。
3.SP等待状态报告缺省时间为48小时。
7.4.5.2 CMPP_DELIVER_RESP消息定义(SP
字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
ISMG)
描述
信息标识
(CMPP_DELIVER中的Msg_Id字段)
结果
0:正确
1:消息结构错
2:命令字错
3:消息序号重复
4:消息长度错
5:资费代码错
6:超过最大信息长
7:业务代码错
8: 流量控制错
9~ :其他错误
Result 1
Unsigned
Integer
7.4.6 SP向ISMG发起删除短信(CMPP_CANCEL)操作
CMPP_CANCEL操作的目的是SP通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CMPP_CANCEL_RESP回应删除操作的结果。
7.4.6.1 CMPP_CANCEL消息定义(SP
字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
ISMG)
描述
信息标识(SP想要删除的信息标识)
7.4.6.2 CMPP_CANCEL_RESP消息定义(ISMG
字段名
Success_Id
字节数
1
属性
Unsigned
Integer
SP)
描述
成功标识
0:成功
1:失败
7.4.7 链路检测(CMPP_ACTIVE_TEST)操作
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。
7.4.7.1 CMPP_ACTIVE_TEST定义(SP
无消息体。
ISMG或ISMGSP)
7.4.7.2 CMPP_ACTIVE_TEST_RESP定义(SP
字段名
Reserved
字节数
1
属性
ISMG或ISMGSP)
描述
互联网短信网关(ISMG)之间的消息定义
网关之间互为客户/服务器,任一方都可在需要时建立连接进行数据传输。
7.5.1 源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作
消息定义同7.4.1.1和所述。其中Source_Addr填源网关代码。
7.5.2 源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作
消息定义同7.4.2.1和所述。
7.5.3链路检测(CMPP_ACTIVE_TEST)操作
本操作仅用于通信双方采用长连接通信方式时保持连接。消息定义同7.4.6.1和所述。 7.5.4 源ISMG向目的ISMG转发短信(CMPP_FWD)操作
CMPP_FWD操作的目的是源ISMG可以根据一定的路由策略将SP提交的短信、MO状态报告、短信中心产生的状态报告、用户提交的短信转发到目的ISMG,目的ISMG以CMPP_FWD_RESP回应。
7.5.4.1 CMPP_FWD定义(ISMG字段名
Source_ Id
Destination_Id
NodesCount
Msg_Fwd_Type
字节数
6
6
1
1
ISMG)
属性
Octet
String
Octet
String
Unsigned
Integer
Unsigned
Integer
描述
源网关的代码(右对齐,左补0)
目的网关代码(右对齐,左补0)
经过的网关数量
前转的消息类型
0:MT前转
1:MO前转
2:MT时的状态报告
3:MO时的状态报告
信息标识
相同Msg_Id的消息总条数,从1开始
相同Msg_Id的消息序号,从1开始
Msg_Id
Pk_total
Pk_number
8
1
1
Unsigned
Integer
Registered_De1
livery
Msg_level
Service_Id
1
10
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
是否要求返回状态确认报告
0:不需要
1:需要
2:产生SMC话单
Unsigned
信息级别
Integer
Octet
String
业务类型
Fee_UserType 1 Unsigned
计费用户类型字段
0:对目的终端MSISDN计费;
Integer
Fee_terminal_21
Id
TP_pid
TP_udhi
1
1
1:对源终端MSISDN计费;
2:对SP计费;
3: 表示本字段无效,对谁计费参见Fee_terminal_Id字段。
Unsigned
被计费用户的号码(如本字节填空,则表示本字段无效,对谁计费参见Integer
Fee_UserType字段。本字段与Fee_UserType字段互斥)
Unsigned GSM协议类型。详细是解释请参考中的Integer
9.2.3.9
Unsigned GSM协议类型。详细是解释请参考中的Msg_Fmt
1
Integer
Unsigned
Integer
Msg_src
FeeType
6
2
Octet
String
Octet
String
9.2.3.23,仅使用1位,右对齐
信息格式
0:ASCII串
3:短信写卡操作
4:二进制信息
8:UCS2编码
15:含GB汉字
信息内容来源(SP_Id,SP的企业代码)
资费类别
00:“短消息类型”为“发送”,对“计
费用户号码”不计信息费,此类
话单仅用于核减SP对称的信道费
01:对“计费用户号码”免费
02:对“计费用户号码”按条计信息
费
03:对“计费用户号码”按包月收取
信息费
04:对“计费用户号码”的信息费封
顶
05:对“计费用户号码”的收费是由SP
实现
资费代码(以分为单位)
有效期
定时发送的时间
源号码
1. MT时为SP的服务代码,即CMPP_SUBMIT消息中的Src_Id。
2. MO时为发送此消息的源终端MSISDN号码。
3. MT状态报告时,可填空或填接收到短信的终端MSISDN号码,即对应CMPP_SUBMIT消息中的Dest_Terminal_Id。
4. MO状态报告时,可填空或填SP的服务代码,即CMPP_DELIVER中的Dest_Id。
接收消息的用户数量
目的号码
1.MT转发时为目的终端MSISDN号码,即对应CMPP_SUBMIT消息中的Dest_Terminal_Id。
2.MO转发时为SP的服务代码,一般4--6位,或者是前缀为服务代码的长号码,该号码是手机用户短消息的被叫号码。
FeeCode
Valid_Time
At_Time
Src_Id
6
17
17
21
Octet
String
Octet
String
Octet
String
Octet
String
DestUsr_tl
Dest_Id
1 Unsigned
Integer
21*DestUsr_tl Octet
String Msg_Length
Msg_Content
Reserve
注意:
1
Msg_length
8
Unsigned
Integer
Octet
String
3.MT状态报告时,可填空或填目的SP的服务代码,即CMPP_SUBMIT消息中的Src_Id。
4.MO状态报告时,可填空或填发送短信的移动用户MSISDN号码。
消息长度
消息内容
保留
1.对于包月的SMC消息,应由ISMG向SP返回成功与否的状态报告,格式同7.4.5.1定义,若成功回送Stat值为“DELIVRD”,失败则回送Stat值“UNDELIV”。
2.当转发消息为MO状态报告(MO状态报告的产生见附录1)时,信息内容字段(Msg_Content)格式定义如下:
字段名
Msg_Id
Stat
字节数
8
7
属性
Unsigned
Integer
Octet
String
Octet
String
描述
信息标识(CMPP_Deliver中的信息标识)
SP的应答结果,CMPP_DELIVER_RESP中Result为0时,填字符DELIVRD,其余值填REJECTD。
YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59)
注:短信网关发出CMPP_DELIVER的时间。
YYMMDDHHMM
注:短信网关收到CMPP_DELIVER_RESP的时间。
目的SP的服务代码,左对齐。
CMPP_DELIVER_time
10
CMPP_DELIVER_RESP_time
Dest_Id
Reserved
注意:
10 Octet
String
Reserved
21
4
在MO流程中,若短信经ISMG2转发给与SP相连的ISMG1,ISMG1在给SP发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息。对这四种情况的处理描述如下:
①②③:ISMG1在处理这三种情况的时候,向ISMG2发送MO状态报告,状态报告中的stat字段取值为“REJECTD”。 ④:ISMG1在处理这种情况时,向ISMG2发送MO状态报告,其中stat字段取值“DELIVRD”。
3.在MT流程中,MT状态报告格式同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字段名
Msg_Id
字节数
8
1
1
1
ISMG)
描述
信息标识(CMPP_FWD中字段值)
属性
Unsigned
Integer
Pk_total
Pk_number
Result
Unsigned
相同Msg_Id的消息总条数
Integer
Unsigned
相同Msg_Id的消息序号
Integer
Unsigned
Integer
结果
0:正确
1:消息结构错
2:命令字错
3:消息序号重复
4:消息长度错
5:资费代码错
6:超过最大信息长
7:业务代码错
8: 流量控制错
9: 前转判断错(此SP不应发往本ISMG)
10~ :其他错误
互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义
要求ISMG与GNS在信息交互时使用短连接的通信方式。ISMG与GNS可互为客户/服务器。
7.6.1 ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作
消息定义同7.4.1.1和所述,其中Source_Addr填源网关代码,可能是ISMG代码或GNS代码。
7.6.2 ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作
消息定义同7.4.2.1和所述。
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字段名
Source_Id
Terminal_Id
字节数
6
21
属性
Octet String
Octet String
GNS)
描述
源网关代码
目的终端MSISDN号码
7.6.3.2 CMPP_MT_ROUTE_RESP消息定义(GNS
字段名
Route_Id
字节数
4
属性
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
Octet String
Unsigned
Integer
ISMG)
描述
路由编号(从0开始,由GNS统一分配)
目标网关代码
目标网关IP地址
目标网关IP端口(7890或7900)
MT路由起始号码段
MT路由截止号码段
手机所属省代号
结果
0:正常
1:没有匹配路由
2:这是最后1条路由
Destination_Id 6
Gateway_IP 15
Gateway_port 2
Start_Id
End_Id
Area_code
Result
6
6
4
1
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字段名
Source_Id
SP_Code
Service_Id
Service_Code
字节数
6
21
10
4
属性
Octet String
Octet String
Octet String
Unsigned
Integer
GNS)
描述
源网关代码
SP的服务代码
请求的业务类型(此项适合全网服务内容,如爱心卡图片传情)
请求的业务代码
(如果未置Service_Id字段,此字段为空,如爱心卡图片传情TPCQ1000—2000对应某个网站的某些相应图片)
7.6.4.2 CMPP_MO_ROUTE_RESP消息定义(GNS
字段名
Route_Id
字节数
4
属性
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
ISMG)
描述
路由编号
目标网关代码
目标网关IP地址
目标网关IP端口
SP的企业代码
MO路由起始业务代码
(如果未置请求的Service_Id字段,此字段为空)
MO路由截止业务代码
(如果未置请求的Service_Id字段,此字段为空)
结果
0:正常
1:没有匹配路由
2:这是最后1条路由
Destination_Id 6
Gateway_IP 15
Gateway_port 2
SP_Id
Start_code
21
4
End_code 4
Result 1
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字段名
Source_Id
Route_type
字节数
6
2
属性
Octet String
Octet String
GNS)
描述
源网关代码
路由类型 Last_route_Id 4 Integer
MO:MO路由
MT:MT路由
已经接收的上一条路由编号
(第1次发送此请求时Last_route_Id=
-1)
7.6.5.2 CMPP_GET_ ROUTE_RESP消息定义(GNS
字段名
Route_Id
字节数
4
属性
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
描述
路由编号
ISMG)
Destination_Id 6
Gateway_IP 15
Gateway_port 2
SP_Code
Service_Id
21
10
目标网关代码
目标网关IP地址
目标网关IP端口
SP的服务代码
(请求的路由类型=MT时,此字段为空)
请求的业务类型
(此项适合全网服务内容,如爱心卡图片传情)
请求的路由类型=MO时:
起始业务代码(如果未置Service_Id字段,此字段为空)
请求的路由类型=MT时:
手机号码段的起始号码
请求的路由类型=MO时:
截止业务代码(如果未置Service_Id字段,此字段为空)
请求的路由类型=MT时:
手机号码段的截止号码
手机所属省代码
(请求的路由类型=MO时,此字段为空)
结果
0:正常
1:没有匹配路由
2:这是最后1条路由
Start_code 4 Unsigned
Integer
End_code 4 Unsigned
Integer
Area_code
Result
4
1
Octet String
Unsigned
Integer
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字段名
Update_type
字节数
1
属性
Unsigned
Integer
描述
0:添加
1:删除
2:更新
GNS) Route_Id 4 Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
Octet String
Destination_Id 6
Gateway_IP 15
Gateway_port 2
Start_Id
End_Id
Area_code
6
6
4
路由编号
(若update_type 为0,即添加时,此字段为零)
目标网关代码
目标网关IP地址
目标网关IP端口
MT路由起始号码段
MT路由截止号码段
手机所属省代码
7.6.6.2 CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS
字段名
Result
字节数
1
属性
Unsigned
Integer
ISMG)
描述
0:数据合法,等待核实
1:数据不合法
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字段名
Update_type
字节数
1
属性
Unsigned
Integer
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
GNS)
Route_Id 4
Destination_Id 6
Gateway_IP 15
Gateway_port 2
SP_Code
Service_Id
21
10
描述
0:添加
1:删除
2:更新
路由编号
(若update_type 为0,即添加时,此字段为零)
目标网关代码
目标网关IP地址
目标网关IP端口
SP的服务号码
请求的业务类型(此项适合全网服务内容,如爱心卡图片传情,如该路由不包含此业务,此字段为空)
MO路由起始业务代码(如果未置请求的Service_Id字段,此字段为空)
MO路由截止业务代码(如果未置请求的Service_Id字段,此字段为空)
Start_code
End_code
4
4
Unsigned
Integer
Unsigned
Integer
7.6.7.2CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS
字段名
Result
字节数
1
属性
Unsigned
Integer
ISMG)
描述
0:数据合法,等待核实
1:数据不合法 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字段名
Update_type
字节数
1
属性
Unsigned
Integer
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
Octet String
描述
0:添加;
1:删除;
2:更新
路由编号
ISMG)
Route_Id 4
Destination_Id 6
Gateway_IP 15
Gateway_port 2
Start_Id
End_Id
Area_code
6
6
4
目标网关代码
目标网关IP地址
目标网关IP端口
MT路由起始号码段
MT路由截止号码段
手机所属省代码
7.6.8.2 CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG
字段名
Result
字节数
1
属性
Unsigned
Integer
描述
0:成功更改
1:更改失败
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字段名
Update_type
字节数
1
属性
Unsigned
Integer
Unsigned
Integer
Octet String
描述
0:添加;
1:删除;
2:更新
路由编号
目标网关代码
ISMG)
Route_Id 4
Destination_Id 6 Gateway_IP
Gateway_port
SP_Code
Service_Id
15
2
21
10
Octet String
Unsigned
Integer
Octet String
Octet String
目标网关IP地址
目标网关IP端口
SP的服务号码
请求的业务类型(此项适合全网服务内容,如爱心卡图片传情,如该路由不包含此业务,此字段为空)
MO路由起始业务代码(如果未置请求的Service_Id字段,此字段为空)
MO路由截止业务代码(如果未置请求的Service_Id字段,此字段为空)
Start_code
End_code
4
4
Unsigned
Integer
Unsigned
Integer
7.6.9.2 CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMG
字段名
Result
字节数
1
属性
Unsigned
Integer
描述
0:成功更改
1:更改失败
GNS)
系统定义
7.7.1 Command_Id定义
消息
CMPP_CONNECT
CMPP_CONNECT_RESP
CMPP_TERMINATE
CMPP_TERMINATE_RESP
CMPP_SUBMIT
CMPP_SUBMIT_RESP
CMPP_DELIVER
CMPP_DELIVER_RESP
CMPP_QUERY
CMPP_QUERY_RESP
CMPP_CANCEL
CMPP_CANCEL_RESP
CMPP_ACTIVE_TEST
CMPP_ACTIVE_TEST_RESP
CMPP_FWD
CMPP_FWD_RESP
CMPP_MT_ROUTE
CMPP_MT_ROUTE_RESP
CMPP_MO_ROUTE
CMPP_MO_ROUTE_RESP
CMPP_GET_ROUTE
CMPP_GET_ROUTE_RESP
CMPP_MT_ROUTE_UPDATE
Command_Id值
0x00000001
0x
0x00000002
0x
0x00000004
0x
0x00000005
0x
0x00000006
0x
0x00000007
0x
0x00000008
0x
0x00000009
0x
0x00000010
0x
0x00000011
0x
0x00000012
0x
0x00000013
说明
请求连接
请求连接应答
终止连接
终止连接应答
提交短信
提交短信应答
短信下发
下发短信应答
发送短信状态查询
发送短信状态查询应答
删除短信
删除短信应答
激活测试
激活测试应答
消息前转
消息前转应答
MT路由请求
MT路由请求应答
MO路由请求
MO路由请求应答
获取路由请求
获取路由请求应答
MT路由更新 CMPP_MT_ROUTE_UPDATE_RESP
CMPP_MO_ROUTE_UPDATE
CMPP_MO_ROUTE_UPDATE_RESP
CMPP_PUSH_MT_ROUTE_UPDATE
CMPP_PUSH_MT_ROUTE_UPDATE_RESP
CMPP_PUSH_MO_ROUTE_UPDATE
CMPP_PUSH_MO_ROUTE_UPDATE_RESP
0x
0x00000014
0x
0x00000015
0x
0x00000016
0x
MT路由更新应答
MO路由更新
MO路由更新应答
MT路由更新
MT路由更新应答
MO路由更新
MO路由更新应答 附录1 MO状态报告的产生
为解决MO业务计费及使源网关获知SP对转发的MO消息的接收状态,现要求网关处理流程如下图所示:
MSC1:提交短消息2:提交短消息应答3:DELIVER_SM(SMPP)4:DELIVER_SM_RESP(SMPP)SMSCISMG1ISMG2SP5:CMPP_FWD6: CMPP_FWD_RESP7:CMPP_DELIVER8:CMPP_DELIVER_RESP9: CMPP_FWD10:CMPP_FWD网关产生的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)格式定义如下:
字段名
Msg_Id
Stat
字节数
8
7
属性
Unsigned
Integer
Octet
String
Octet
String
Octet
String
描述
信息标识(CMPP_DELIVER中的信息标识)
SP的应答结果,CMPP_DELIVER_RESP中Result值的字符表示,左对齐。Result为0时,填字符DELIVRD,其余值填REJECTD
YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59)
注:短信网关发出CMPP_DELIVER的时间。
YYMMDDHHMM
注:短信网关收到CMPP_DELIVER_RESP的时间。
目的SP的服务代码,左对齐。
CMPP_Deliver_time 10
CMPP_Deliver_RESP_time
Dest_Id
Reserved
10
21
4
Octet
String
Reserved
TP_udhi=1
在Msg_content中加入6个字节或者7个字节的udhi头做为前缀
)6个字节的TP_udhi协议头
05 00 03 XX MM NN
byte 1 : 05, 表示剩余协议头的长度
byte 2 : 00, 这个值在GSM 规范.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。
byte 3 : 03, 这个值表示剩下短信标识的长度
byte 4 : XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很 重要。
byte 5 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 6 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:05 00 03 39 02 01
)7个字节的TP_udhi协议头
06 08 04 XX XX MM NN
byte 1 : 06, 表示剩余协议头的长度
byte 2 : 08, 这个值在GSM 规范.1中规定,表示随后的这批超长短信的标识位长度为2(格式中的XX值)。
byte 3 : 04, 这个值表示剩下短信标识的长度
byte 4-5 : XX XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯 一并不是很重要。
byte 6 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 7 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:06 08 04 00 39 02 01
2023年7月31日发(作者:)
中国移动通信互联网短信网关接口协议
(China Mobile Peer to Peer, CMPP)
中国移动通信集团公司2002年4月
()
目 录
前 言...................................................................... 4
1. 范围 ................................................................. 5
2. 缩略语 ............................................................... 5
3.网络结构 .................................................................. 6
4.CMPP功能概述 .............................................................. 6
5. 协议栈.................................................................... 8
6. 通信方式 .................................................................. 8
长连接 ........................................................... 9
短连接 .......................................................... 11
本协议中涉及的端口号 ............................................ 12
交互过程中的应答方式 .................................................. 12
7.消息定义 ................................................................. 12
基本数据类型 ............................................................ 12
消息结构 ................................................................ 13
消息头格式(Message Header) ........................................... 13
信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义 .................... 13
SP请求连接到ISMG(CMPP_CONNECT)操作 ............................... 13
CMPP_CONNECT消息定义(SPISMG) ............................... 13
CMPP_CONNECT_RESP消息定义(ISMG SP) ........................ 14
SP或ISMG请求拆除连接(CMPP_TERMINATE)操作 ........................ 14
CMPP_TERMINATE消息定义(SPISMG或ISMG SP) ................. 14
CMPP_TERMINATE_RESP消息定义(SPISMG或ISMG SP) ............ 14
SP向ISMG提交短信(CMPP_SUBMIT)操作 ............................... 15
CMPP_SUBMIT消息定义(SPISMG) ................................ 15
CMPP_SUBMIT_RESP消息定义(ISMG SP) ......................... 16
SP向ISMG查询发送短信状态(CMPP_QUERY)操作 ........................ 17
CMPP_QUERY消息的定义(SPISMG) ............................... 17
CMPP_QUERY_RESP消息的定义(ISMG SP) ......................... 17
ISMG向SP送交短信(CMPP_DELIVER)操作 .............................. 18
CMPP_DELIVER消息定义(ISMGSP) ............................... 18
CMPP_DELIVER_RESP消息定义(SP ISMG) ........................ 20
SP向ISMG发起删除短信(CMPP_CANCEL)操作 ..................... 20
CMPP_CANCEL消息定义(SP ISMG) .............................. 21
CMPP_CANCEL_RESP消息定义(ISMG SP) ......................... 21
链路检测(CMPP_ACTIVE_TEST)操作 ............................ 21
CMPP_ACTIVE_TEST定义(SP ISMG或ISMGSP) ................... 21
CMPP_ACTIVE_TEST_RESP定义(SP ISMG或ISMGSP) .............. 21
互联网短信网关(ISMG)之间的消息定义 ...................................... 21
源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作 ....................... 21
源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作 ............... 21 链路检测(CMPP_ACTIVE_TEST)操作 .................................... 21
源ISMG向目的ISMG转发短信(CMPP_FWD)操作 ........................... 22
CMPP_FWD定义(ISMG ISMG) .................................... 22
CMPP_FWD_RESP定义(ISMG ISMG) ............................... 25
互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义 ....................... 26
ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作 ........... 26
ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作.................................................................... 26
ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作 ...................... 26
CMPP_MT_ROUTE消息定义(ISMGGNS) ............................. 26
CMPP_MT_ROUTE_RESP消息定义(GNS ISMG) ...................... 26
ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作 ...................... 27
CMPP_MO_ROUTE消息定义(ISMGGNS) ............................. 27
CMPP_MO_ROUTE_RESP消息定义(GNS ISMG) ...................... 27
向汇接网关获取路由(CMPP_GET_ROUTE)操作 ............................ 27
CMPP_GET_ ROUTE消息定义(ISMGGNS) ........................... 27
CMPP_GET_ ROUTE_RESP消息定义(GNS ISMG) .................... 28
ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作 ............... 28
CMPP_MT_ROUTE_UPDATE消息定义(ISMGGNS) ...................... 28
CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS ISMG) ............... 29
ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作 ............... 29
CMPP_MO_ROUTE_UPDATE消息定义(ISMGGNS) ...................... 29
CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS ISMG) ................ 29
汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作 ........... 30
CMPP_PUSH_MT_ROUTE_UPDATE消息定义(GNSISMG) ................ 30
CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG GNS) ......... 30
汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作 ........... 30
CMPP_PUSH_MO_ROUTE_UPDATE消息定义(GNSISMG) ................ 30
CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMG GNS) ......... 31
系统定义 ................................................................ 31
Command_Id定义 ..................................................... 31
附录1 MO状态报告的产生 ..................................................... 33
修订历史...................................................... 错误!未定义书签。
前 言
本规范为中国移动通信集团公司企业规范,简称CMPP,现阶段版本是对1.2.1版修订后形成的,为版。本规范描述了中国移动短信业务中各网元(包括ISMG、GNS和SP)之间的相关消息的类型和定义。根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加。
本规范解释权属于中国移动通信集团公司。
本规范起草单位:中国移动通信集团公司研发中心。
1. 范围
本规范规定了以下三方面的内容:
(1)信息资源站实体与互联网短信网关之间的接口协议;
(2)互联网短信网关之间的接口协议;
(3)互联网短信网关与汇接网关之间的接口协议。
本规范适用于各SP和ISMG的开发厂商。
2. 缩略语
英文缩写 英文全称
Short Message
说明
互联网短信网关
短消息点对点协议
中国移动点对点协议
短消息中心
网关名称服务器(汇接网关)
业务提供者,即信息资源站实体
SP为收取包月业务费用而向网关发送的消息,网关收到后不送给用户仅产生相应的话单;
网关代码:0XYZ01~0XYZ99,其中XYZ为省会区号,位数不足时左补零,如北京编号为1的网关代码为001001,江西编号为1的网关代码为079101,依此类推。
SP的企业代码:网络中SP地址和身
份的标识、地址翻译、计费、结算等
均以企业代码为依据。企业代码以数
字表示,共6位,从“9XY000”至
“9XY999”,其中“XY”为各移动公
司代码。
SP的服务代码:服务代码是在使用
短信方式的点播类业务中,提供给
用户点播的内容/应用服务提供商代
码。服务代码以数字表示,全国业
务服务代码长度统一为 4 位,即
“1000”-“9999”;本地业务服务
Internet
ISMG
Gateway
SMPP Short Message Peer to Peer
CMPP China Mobile Peer to Peer
SMC Short Message Center
GNS Gateway Name Server
SP Service Provider
SMC
ISMG_Id
SP_Id
Short Message Control
SP_Code
Service_Id
代码长度统一为5 位,即
“01000”-“09999”。
SP的业务类型,数字、字母和符号的
组合,由SP自定,如图片传情可定
为TPCQ,股票查询可定义为11。
3.网络结构
SPSMPP专线或局域网. . .SP短信中心ISMG . . .CMPPGNSInternetInternet . . .GNS短信短信中心中心SMPP专线或局域网ISMGSP. . .SP图1 互联网短信网关逻辑网络结构
如图1所示,互联网短信网关(ISMG)是外部信息资源站实体(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。
4.CMPP功能概述
CMPP协议主要提供以下两类业务操作: (1) 短信发送(Short Message Mobile Originate,SM MO)
典型的业务操作举例如图2所示:
1
源ISMG
3
4
GNS(汇接网关)
5
目的ISMG
2
SMC
6
7
SP
8
图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) 短信接收(Short Message Mobile Terminated,SM MT)
典型的业务操作举例如图3所示:
SP SMC
1
源ISMG
3
4
GNS(汇接网关)
5
目的ISMG
2
6
7 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将通过信令网向移动用户发送信息,移动用户收到后将返回状态报告(Delivery-Receipt)给短信中心,短信中心将按照MO操作的流程将状态报告返回给SP(如果SP要求返回状态报告)。
5. 协议栈
CMPP协议以TCP/IP作为底层通信承载,具体结构由图4所示:
SP ISMG ISMG
CMPP CMPP CMPP
TCP TCP
TCP
IP IP IP
底层承载 底层承载
底层承载
图4 CMPP协议栈
GNS
CMPP
TCP
IP
底层承载
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所示:
客户端
建立TCP连接
CMPP消息1
服务器端
CMPP消息2
对CMPP消息1的响应
对CMPP消息2的响应
滑动窗口不大于W . . . . . .
链路检测包
链路检测包响应
链路检测包
链路检测包响应
. . . . . .
拆除TCP连接
图5 长连接一次操作流程
6.2 短连接
通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。
短连接的操作流程举例如图6所示:
客户端/服务建立TCP连接
服务器/客户端
CMPP消息1
图6 短连接的操作流程
对CMPP消息1的响应
拆除TCP连接
建立TCP连接
CMPP消息2
对CMPP消息2的响应
拆除TCP连接
. . . . . . 6.3 本协议中涉及的端口号
端口号 应用
7890 长连接(SP与网关间)
7900 短连接(SP与网关间或网关之间)
7930 长连接(网关之间)
9168 短连接(短信网关与汇接网关之间)
交互过程中的应答方式
在SP与ISMG之间、SMC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。举例如图7所示:
SMC ISMG1 ISMG2
SMPP请求消息
CMPP请求消息
SMPP响应消息
CMPP响应消息
图7 异步交互方式示意图
SP
CMPP请求消息
CMPP响应消息
7.消息定义
基本数据类型
Unsigned Integer 无符号整数
Integer 整数,可为正整数、负整数或零
Octet String 定长字符串,位数不足时,如果左补0则补ASCII表示的零,如果右补0则补二进制的零 消息结构
项目
Message Header
Message Body
说明
消息头(所有消息公共包头)
消息体
消息头格式(Message Header)
字段名
Total_Length
Command_Id
Sequence_Id
字节数
类型
描述
4
4
4
Unsigned
消息总长度(含消息头及消息体)
Integer
Unsigned
命令或响应类型
Integer
Unsigned
消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相Integer
同)
信息资源站实体(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消息定义(SPISMG)
字段名
字节数
属性 描述
Source_Addr
源地址,此处为SP_Id,即SP的企业6 Octet
代码。
String
用于鉴别源地址。其值通过单向MD5
AuthenticatorSour16 Octet
hash计算得出,表示如下:
ce String
AuthenticatorSource =
MD5(Source_Addr+9 字节的0
+shared secret+timestamp) Version
Timestamp
1
4
Unsigned
Integer
Unsigned
Integer
Shared secret 由中国移动与源地址实体事先商定,timestamp格式为:MMDDHHMMSS,即月日时分秒,10位。
双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号)
时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐 。
7.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG SP)
字段名
字节数
描述
属性
1 Unsigned 状态
Status
Integer 0:正确
1:消息结构错
2:非法源地址
3:认证错
4:版本太高
5~ :其他错误
Octet String ISMG认证码,用于鉴别ISMG。
其值通过单向MD5 hash计算得出,表示如下:
AuthenticatorISMG =MD5(Status+AuthenticatorSource+shared secret),Shared secret 由中国移动与源地址实体事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。
认证出错时,此项为空。
服务器支持的最高版本号
Unsigned
AuthenticatorISMG 16
Version
1
Integer
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)
SP) 7.4.2.2 CMPP_TERMINATE_RESP消息定义(SP无消息体。
ISMG或ISMG 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侧短信网关本身产生,本处填空。
相同Msg_Id的信息总条数,从1开始
相同Msg_Id的信息序号,从1开始
是否要求返回状态确认报告:
0:不需要
1:需要
2:产生SMC话单
(该类型短信仅供网关计费使用,不发送给目的终端)
信息级别
业务类型,是数字、字母和符号的组合。
Msg_Id
Pk_total
Pk_number
Registered_Delivery
字节数
8
1
1
1
属性
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Msg_level
Service_Id
1
10
Fee_UserType 1
全包35
Unsigned
Integer
Octet
String
Unsigned
Integer
Fee_terminal_Id
TP_pId
TP_udhi
Msg_Fmt
21
1
1
1
全包59
Msg_src
6
计费用户类型字段
0:对目的终端MSISDN计费;
1:对源终端MSISDN计费;
2:对SP计费;
3:表示本字段无效,对谁计费参见Fee_terminal_Id字段。
被计费用户的号码(如本字节填空,则表Unsigned
示本字段无效,对谁计费参见Integer
Fee_UserType字段,本字段与Fee_UserType字段互斥)
Unsigned GSM协议类型。详细是解释请参考中的Integer
9.2.3.9
Unsigned GSM协议类型。详细是解释请参考中的Integer
9.2.3.23,仅使用1位,右对齐
信息格式
Unsigned
0:ASCII串
Integer
3:短信写卡操作
4:二进制信息
8:UCS2编码
15:含GB汉字 。。。。。。
Octet String 信息内容来源(SP_Id) FeeType
2
FeeCode
ValId_Time
At_Time
Src_Id
6全包73
17
17
21
Octet String 资费类别
01:对“计费用户号码”免费
02:对“计费用户号码”按条计信息费
03:对“计费用户号码”按包月收取信息费
04:对“计费用户号码”的信息费封顶
05:对“计费用户号码”的收费是由SP实现
Octet String 资费代码(以分为单位)
DestUsr_tl
Dest_terminal_Id
Msg_Length
Msg_Content
Reserve
Octet String 存活有效期,格式遵循协议
Octet String 定时发送时间,格式遵循协议
Octet String 源号码
SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码
1 Unsigned 接收信息的用户数量(小于100个用户)
Integer
21*DestUsr_tl Octet String 接收短信的MSISDN号码
1
Msg_length
8
Unsigned
Integer
Octet String
Octet String
信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节)
信息内容
保留
注意:关于短信群发的问题,若SP对于群发消息不要求状态报告的回送时,才可以考虑群发,否则必须逐条发送。
7.4.3.2 CMPP_SUBMIT_RESP消息定义(ISMG
字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
SP)
描述
信息标识,生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中
bit64~bit61:月份的二进制表示;
bit60~bit56:日的二进制表示;
bit55~bit51:小时的二进制表示;
bit50~bit45:分的二进制表示;
bit44~bit39:秒的二进制表示;
(2)短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中。
(3)序列号:bit16~bit1,顺序增加,步长为1,循环使用。
各部分如不能填满,左补零,右对齐。 Result 1
(SP根据请求和应答消息的Sequence_Id一致性就可得到CMPP_Submit消息的Msg_Id)
Unsigned
结果
0:正确
Integer
1:消息结构错
2:命令字错
3:消息序号重复
4:消息长度错
5:资费代码错
6:超过最大信息长
7:业务代码错
8:流量控制错
9~ :其他错误
7.4.4 SP向ISMG查询发送短信状态(CMPP_QUERY)操作
CMPP_QUERY操作的目的是SP向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。 ISMG以CMPP_QUERY_RESP应答。
7.4.4.1 CMPP_QUERY消息的定义(SP字段名
Time
Query_Type
字节数
8
1
ISMG)
Query_Code 10
Reserve
8
属性 描述
Octet String 时间YYYYMMDD(精确至日)
查询类别
Unsigned
0:总数查询
Integer
1:按业务类型查询
Octet String 查询码
当Query_Type为0时,此项无效;当Query_Type为1时,此项填写业务类型Service_Id.
Octet String 保留
7.4.4.2 CMPP_QUERY_RESP消息的定义(ISMG
字段名
Time
Query_Type
字节数
8
1
属性
Octet String
Unsigned
Integer
SP)
Query_Code
MT_TLMsg
MT_Tlusr
10
4
4
描述
时间(精确至日)
查询类别
0:总数查询
1:按业务类型查询
Octet String 查询码
Unsigned 从SP接收信息总数
Integer
Unsigned 从SP接收用户总数
Integer MT_Scs
MT_WT
MT_FL
MO_Scs
MO_WT
MO_FL
4
4
4
4
4
4
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
成功转发数量
待转发数量
转发失败数量
向SP成功送达数量
向SP待送达数量
向SP送达失败数量
7.4.5 ISMG向SP送交短信(CMPP_DELIVER)操作
CMPP_DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交SP,SP以CMPP_DELIVER_RESP消息回应。
7.4.5.1 CMPP_DELIVER消息定义(ISMG字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
SP)
描述
信息标识
生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中
bit64~bit61:月份的二进制表示;
bit60~bit56:日的二进制表示;
bit55~bit51:小时的二进制表示;
bit50~bit45:分的二进制表示;
bit44~bit39:秒的二进制表示;
(2)短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中。
(3)序列号:bit16~bit1,顺序增加,步长为1,循环使用。
各部分如不能填满,左补零,右对齐。
目的号码
SP的服务代码,一般4--6位,或者是前缀为服务代码的长号码;该号码是手机用户短消息的被叫号码。
Dest_Id 21 Octet String Service_Id
10
Octet String
Unsigned
Integer
Unsigned
Integer
TP_pid
TP_udhi
Msg_Fmt
1
1
1 Unsigned
Integer
Src_terminal_Id
21
Octet String
Unsigned
Integer
Unsigned
Integer
Octet String
Octet String
Registered_Delivery
Msg_Length
Msg_Content
1
1
Msg_length
8
业务类型,是数字、字母和符号的组合。
GSM协议类型。详细解释请参考中的9.2.3.9
GSM协议类型。详细解释请参考中的9.2.3.23,仅使用1位,右对齐
信息格式
0:ASCII串
3:短信写卡操作
4:二进制信息
8:UCS2编码
15:含GB汉字
源终端MSISDN号码(状态报告时填为CMPP_SUBMIT消息的目的终端号码)
是否为状态报告
0:非状态报告
1:状态报告
消息长度
消息内容
保留项
Reserved
当ISMG向SP送交状态报告时,信息内容字段(Msg_Content)格式定义如下:
字段名
字节数
属性 描述
Msg_Id 8 Unsigned 信息标识
Integer SP提交短信(CMPP_SUBMIT)操作时,与SP相连的ISMG产生的Msg_Id。
Stat 7 Octet String 发送短信的应答结果,含义与SMPP协议要求中stat字段定义相同,详见表一。SP根据该字段确定CMPP_SUBMIT消息的处理状态。
Submit_time 10 Octet String YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59)
Done_time 10 Octet String YYMMDDHHMM
Dest_terminal_21 Octet String 目的终端MSISDN号码(SP发送CMPP_SUBMIT消Id 息的目标终端)
SMSC_sequence 4 Unsigned 取自SMSC发送状态报告的消息体中的消息标Integer 识。
表一 Stat字段定义
Message State
DELIVERED
EXPIRED
DELETED
Final Message States Description
DELIVRD Message is delivered to
destination
EXPIRED Message validity period has
expired
DELETED Message has been deleted. UNDELIVERABLE
ACCEPTED
UNDELIV
ACCEPTD
UNKNOWN
REJECTED
注意:
UNKNOWN
REJECTD
Message is undeliverable
Message is in accepted state.
has been manually read on behalf
of the subscriber by customer
service)
Message is in invalid state
Message is in a rejected state
1.其中ACCEPTED为中间状态,网关若从短信中心收到后应丢弃,不做任何操作。
2.Stat字段长度为7个字节,填写时应填表一中Final Message States中的缩写形式,如
状态为DELIVERED时填写DELIVRD,依此类推。
3.SP等待状态报告缺省时间为48小时。
7.4.5.2 CMPP_DELIVER_RESP消息定义(SP
字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
ISMG)
描述
信息标识
(CMPP_DELIVER中的Msg_Id字段)
结果
0:正确
1:消息结构错
2:命令字错
3:消息序号重复
4:消息长度错
5:资费代码错
6:超过最大信息长
7:业务代码错
8: 流量控制错
9~ :其他错误
Result 1
Unsigned
Integer
7.4.6 SP向ISMG发起删除短信(CMPP_CANCEL)操作
CMPP_CANCEL操作的目的是SP通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CMPP_CANCEL_RESP回应删除操作的结果。
7.4.6.1 CMPP_CANCEL消息定义(SP
字段名
Msg_Id
字节数
8
属性
Unsigned
Integer
ISMG)
描述
信息标识(SP想要删除的信息标识)
7.4.6.2 CMPP_CANCEL_RESP消息定义(ISMG
字段名
Success_Id
字节数
1
属性
Unsigned
Integer
SP)
描述
成功标识
0:成功
1:失败
7.4.7 链路检测(CMPP_ACTIVE_TEST)操作
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。
7.4.7.1 CMPP_ACTIVE_TEST定义(SP
无消息体。
ISMG或ISMGSP)
7.4.7.2 CMPP_ACTIVE_TEST_RESP定义(SP
字段名
Reserved
字节数
1
属性
ISMG或ISMGSP)
描述
互联网短信网关(ISMG)之间的消息定义
网关之间互为客户/服务器,任一方都可在需要时建立连接进行数据传输。
7.5.1 源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作
消息定义同7.4.1.1和所述。其中Source_Addr填源网关代码。
7.5.2 源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作
消息定义同7.4.2.1和所述。
7.5.3链路检测(CMPP_ACTIVE_TEST)操作
本操作仅用于通信双方采用长连接通信方式时保持连接。消息定义同7.4.6.1和所述。 7.5.4 源ISMG向目的ISMG转发短信(CMPP_FWD)操作
CMPP_FWD操作的目的是源ISMG可以根据一定的路由策略将SP提交的短信、MO状态报告、短信中心产生的状态报告、用户提交的短信转发到目的ISMG,目的ISMG以CMPP_FWD_RESP回应。
7.5.4.1 CMPP_FWD定义(ISMG字段名
Source_ Id
Destination_Id
NodesCount
Msg_Fwd_Type
字节数
6
6
1
1
ISMG)
属性
Octet
String
Octet
String
Unsigned
Integer
Unsigned
Integer
描述
源网关的代码(右对齐,左补0)
目的网关代码(右对齐,左补0)
经过的网关数量
前转的消息类型
0:MT前转
1:MO前转
2:MT时的状态报告
3:MO时的状态报告
信息标识
相同Msg_Id的消息总条数,从1开始
相同Msg_Id的消息序号,从1开始
Msg_Id
Pk_total
Pk_number
8
1
1
Unsigned
Integer
Registered_De1
livery
Msg_level
Service_Id
1
10
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
是否要求返回状态确认报告
0:不需要
1:需要
2:产生SMC话单
Unsigned
信息级别
Integer
Octet
String
业务类型
Fee_UserType 1 Unsigned
计费用户类型字段
0:对目的终端MSISDN计费;
Integer
Fee_terminal_21
Id
TP_pid
TP_udhi
1
1
1:对源终端MSISDN计费;
2:对SP计费;
3: 表示本字段无效,对谁计费参见Fee_terminal_Id字段。
Unsigned
被计费用户的号码(如本字节填空,则表示本字段无效,对谁计费参见Integer
Fee_UserType字段。本字段与Fee_UserType字段互斥)
Unsigned GSM协议类型。详细是解释请参考中的Integer
9.2.3.9
Unsigned GSM协议类型。详细是解释请参考中的Msg_Fmt
1
Integer
Unsigned
Integer
Msg_src
FeeType
6
2
Octet
String
Octet
String
9.2.3.23,仅使用1位,右对齐
信息格式
0:ASCII串
3:短信写卡操作
4:二进制信息
8:UCS2编码
15:含GB汉字
信息内容来源(SP_Id,SP的企业代码)
资费类别
00:“短消息类型”为“发送”,对“计
费用户号码”不计信息费,此类
话单仅用于核减SP对称的信道费
01:对“计费用户号码”免费
02:对“计费用户号码”按条计信息
费
03:对“计费用户号码”按包月收取
信息费
04:对“计费用户号码”的信息费封
顶
05:对“计费用户号码”的收费是由SP
实现
资费代码(以分为单位)
有效期
定时发送的时间
源号码
1. MT时为SP的服务代码,即CMPP_SUBMIT消息中的Src_Id。
2. MO时为发送此消息的源终端MSISDN号码。
3. MT状态报告时,可填空或填接收到短信的终端MSISDN号码,即对应CMPP_SUBMIT消息中的Dest_Terminal_Id。
4. MO状态报告时,可填空或填SP的服务代码,即CMPP_DELIVER中的Dest_Id。
接收消息的用户数量
目的号码
1.MT转发时为目的终端MSISDN号码,即对应CMPP_SUBMIT消息中的Dest_Terminal_Id。
2.MO转发时为SP的服务代码,一般4--6位,或者是前缀为服务代码的长号码,该号码是手机用户短消息的被叫号码。
FeeCode
Valid_Time
At_Time
Src_Id
6
17
17
21
Octet
String
Octet
String
Octet
String
Octet
String
DestUsr_tl
Dest_Id
1 Unsigned
Integer
21*DestUsr_tl Octet
String Msg_Length
Msg_Content
Reserve
注意:
1
Msg_length
8
Unsigned
Integer
Octet
String
3.MT状态报告时,可填空或填目的SP的服务代码,即CMPP_SUBMIT消息中的Src_Id。
4.MO状态报告时,可填空或填发送短信的移动用户MSISDN号码。
消息长度
消息内容
保留
1.对于包月的SMC消息,应由ISMG向SP返回成功与否的状态报告,格式同7.4.5.1定义,若成功回送Stat值为“DELIVRD”,失败则回送Stat值“UNDELIV”。
2.当转发消息为MO状态报告(MO状态报告的产生见附录1)时,信息内容字段(Msg_Content)格式定义如下:
字段名
Msg_Id
Stat
字节数
8
7
属性
Unsigned
Integer
Octet
String
Octet
String
描述
信息标识(CMPP_Deliver中的信息标识)
SP的应答结果,CMPP_DELIVER_RESP中Result为0时,填字符DELIVRD,其余值填REJECTD。
YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59)
注:短信网关发出CMPP_DELIVER的时间。
YYMMDDHHMM
注:短信网关收到CMPP_DELIVER_RESP的时间。
目的SP的服务代码,左对齐。
CMPP_DELIVER_time
10
CMPP_DELIVER_RESP_time
Dest_Id
Reserved
注意:
10 Octet
String
Reserved
21
4
在MO流程中,若短信经ISMG2转发给与SP相连的ISMG1,ISMG1在给SP发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息。对这四种情况的处理描述如下:
①②③:ISMG1在处理这三种情况的时候,向ISMG2发送MO状态报告,状态报告中的stat字段取值为“REJECTD”。 ④:ISMG1在处理这种情况时,向ISMG2发送MO状态报告,其中stat字段取值“DELIVRD”。
3.在MT流程中,MT状态报告格式同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字段名
Msg_Id
字节数
8
1
1
1
ISMG)
描述
信息标识(CMPP_FWD中字段值)
属性
Unsigned
Integer
Pk_total
Pk_number
Result
Unsigned
相同Msg_Id的消息总条数
Integer
Unsigned
相同Msg_Id的消息序号
Integer
Unsigned
Integer
结果
0:正确
1:消息结构错
2:命令字错
3:消息序号重复
4:消息长度错
5:资费代码错
6:超过最大信息长
7:业务代码错
8: 流量控制错
9: 前转判断错(此SP不应发往本ISMG)
10~ :其他错误
互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义
要求ISMG与GNS在信息交互时使用短连接的通信方式。ISMG与GNS可互为客户/服务器。
7.6.1 ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作
消息定义同7.4.1.1和所述,其中Source_Addr填源网关代码,可能是ISMG代码或GNS代码。
7.6.2 ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作
消息定义同7.4.2.1和所述。
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字段名
Source_Id
Terminal_Id
字节数
6
21
属性
Octet String
Octet String
GNS)
描述
源网关代码
目的终端MSISDN号码
7.6.3.2 CMPP_MT_ROUTE_RESP消息定义(GNS
字段名
Route_Id
字节数
4
属性
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
Octet String
Unsigned
Integer
ISMG)
描述
路由编号(从0开始,由GNS统一分配)
目标网关代码
目标网关IP地址
目标网关IP端口(7890或7900)
MT路由起始号码段
MT路由截止号码段
手机所属省代号
结果
0:正常
1:没有匹配路由
2:这是最后1条路由
Destination_Id 6
Gateway_IP 15
Gateway_port 2
Start_Id
End_Id
Area_code
Result
6
6
4
1
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字段名
Source_Id
SP_Code
Service_Id
Service_Code
字节数
6
21
10
4
属性
Octet String
Octet String
Octet String
Unsigned
Integer
GNS)
描述
源网关代码
SP的服务代码
请求的业务类型(此项适合全网服务内容,如爱心卡图片传情)
请求的业务代码
(如果未置Service_Id字段,此字段为空,如爱心卡图片传情TPCQ1000—2000对应某个网站的某些相应图片)
7.6.4.2 CMPP_MO_ROUTE_RESP消息定义(GNS
字段名
Route_Id
字节数
4
属性
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Unsigned
Integer
Unsigned
Integer
Unsigned
Integer
ISMG)
描述
路由编号
目标网关代码
目标网关IP地址
目标网关IP端口
SP的企业代码
MO路由起始业务代码
(如果未置请求的Service_Id字段,此字段为空)
MO路由截止业务代码
(如果未置请求的Service_Id字段,此字段为空)
结果
0:正常
1:没有匹配路由
2:这是最后1条路由
Destination_Id 6
Gateway_IP 15
Gateway_port 2
SP_Id
Start_code
21
4
End_code 4
Result 1
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字段名
Source_Id
Route_type
字节数
6
2
属性
Octet String
Octet String
GNS)
描述
源网关代码
路由类型 Last_route_Id 4 Integer
MO:MO路由
MT:MT路由
已经接收的上一条路由编号
(第1次发送此请求时Last_route_Id=
-1)
7.6.5.2 CMPP_GET_ ROUTE_RESP消息定义(GNS
字段名
Route_Id
字节数
4
属性
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
描述
路由编号
ISMG)
Destination_Id 6
Gateway_IP 15
Gateway_port 2
SP_Code
Service_Id
21
10
目标网关代码
目标网关IP地址
目标网关IP端口
SP的服务代码
(请求的路由类型=MT时,此字段为空)
请求的业务类型
(此项适合全网服务内容,如爱心卡图片传情)
请求的路由类型=MO时:
起始业务代码(如果未置Service_Id字段,此字段为空)
请求的路由类型=MT时:
手机号码段的起始号码
请求的路由类型=MO时:
截止业务代码(如果未置Service_Id字段,此字段为空)
请求的路由类型=MT时:
手机号码段的截止号码
手机所属省代码
(请求的路由类型=MO时,此字段为空)
结果
0:正常
1:没有匹配路由
2:这是最后1条路由
Start_code 4 Unsigned
Integer
End_code 4 Unsigned
Integer
Area_code
Result
4
1
Octet String
Unsigned
Integer
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字段名
Update_type
字节数
1
属性
Unsigned
Integer
描述
0:添加
1:删除
2:更新
GNS) Route_Id 4 Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
Octet String
Destination_Id 6
Gateway_IP 15
Gateway_port 2
Start_Id
End_Id
Area_code
6
6
4
路由编号
(若update_type 为0,即添加时,此字段为零)
目标网关代码
目标网关IP地址
目标网关IP端口
MT路由起始号码段
MT路由截止号码段
手机所属省代码
7.6.6.2 CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS
字段名
Result
字节数
1
属性
Unsigned
Integer
ISMG)
描述
0:数据合法,等待核实
1:数据不合法
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字段名
Update_type
字节数
1
属性
Unsigned
Integer
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
GNS)
Route_Id 4
Destination_Id 6
Gateway_IP 15
Gateway_port 2
SP_Code
Service_Id
21
10
描述
0:添加
1:删除
2:更新
路由编号
(若update_type 为0,即添加时,此字段为零)
目标网关代码
目标网关IP地址
目标网关IP端口
SP的服务号码
请求的业务类型(此项适合全网服务内容,如爱心卡图片传情,如该路由不包含此业务,此字段为空)
MO路由起始业务代码(如果未置请求的Service_Id字段,此字段为空)
MO路由截止业务代码(如果未置请求的Service_Id字段,此字段为空)
Start_code
End_code
4
4
Unsigned
Integer
Unsigned
Integer
7.6.7.2CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS
字段名
Result
字节数
1
属性
Unsigned
Integer
ISMG)
描述
0:数据合法,等待核实
1:数据不合法 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字段名
Update_type
字节数
1
属性
Unsigned
Integer
Unsigned
Integer
Octet String
Octet String
Unsigned
Integer
Octet String
Octet String
Octet String
描述
0:添加;
1:删除;
2:更新
路由编号
ISMG)
Route_Id 4
Destination_Id 6
Gateway_IP 15
Gateway_port 2
Start_Id
End_Id
Area_code
6
6
4
目标网关代码
目标网关IP地址
目标网关IP端口
MT路由起始号码段
MT路由截止号码段
手机所属省代码
7.6.8.2 CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG
字段名
Result
字节数
1
属性
Unsigned
Integer
描述
0:成功更改
1:更改失败
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字段名
Update_type
字节数
1
属性
Unsigned
Integer
Unsigned
Integer
Octet String
描述
0:添加;
1:删除;
2:更新
路由编号
目标网关代码
ISMG)
Route_Id 4
Destination_Id 6 Gateway_IP
Gateway_port
SP_Code
Service_Id
15
2
21
10
Octet String
Unsigned
Integer
Octet String
Octet String
目标网关IP地址
目标网关IP端口
SP的服务号码
请求的业务类型(此项适合全网服务内容,如爱心卡图片传情,如该路由不包含此业务,此字段为空)
MO路由起始业务代码(如果未置请求的Service_Id字段,此字段为空)
MO路由截止业务代码(如果未置请求的Service_Id字段,此字段为空)
Start_code
End_code
4
4
Unsigned
Integer
Unsigned
Integer
7.6.9.2 CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMG
字段名
Result
字节数
1
属性
Unsigned
Integer
描述
0:成功更改
1:更改失败
GNS)
系统定义
7.7.1 Command_Id定义
消息
CMPP_CONNECT
CMPP_CONNECT_RESP
CMPP_TERMINATE
CMPP_TERMINATE_RESP
CMPP_SUBMIT
CMPP_SUBMIT_RESP
CMPP_DELIVER
CMPP_DELIVER_RESP
CMPP_QUERY
CMPP_QUERY_RESP
CMPP_CANCEL
CMPP_CANCEL_RESP
CMPP_ACTIVE_TEST
CMPP_ACTIVE_TEST_RESP
CMPP_FWD
CMPP_FWD_RESP
CMPP_MT_ROUTE
CMPP_MT_ROUTE_RESP
CMPP_MO_ROUTE
CMPP_MO_ROUTE_RESP
CMPP_GET_ROUTE
CMPP_GET_ROUTE_RESP
CMPP_MT_ROUTE_UPDATE
Command_Id值
0x00000001
0x
0x00000002
0x
0x00000004
0x
0x00000005
0x
0x00000006
0x
0x00000007
0x
0x00000008
0x
0x00000009
0x
0x00000010
0x
0x00000011
0x
0x00000012
0x
0x00000013
说明
请求连接
请求连接应答
终止连接
终止连接应答
提交短信
提交短信应答
短信下发
下发短信应答
发送短信状态查询
发送短信状态查询应答
删除短信
删除短信应答
激活测试
激活测试应答
消息前转
消息前转应答
MT路由请求
MT路由请求应答
MO路由请求
MO路由请求应答
获取路由请求
获取路由请求应答
MT路由更新 CMPP_MT_ROUTE_UPDATE_RESP
CMPP_MO_ROUTE_UPDATE
CMPP_MO_ROUTE_UPDATE_RESP
CMPP_PUSH_MT_ROUTE_UPDATE
CMPP_PUSH_MT_ROUTE_UPDATE_RESP
CMPP_PUSH_MO_ROUTE_UPDATE
CMPP_PUSH_MO_ROUTE_UPDATE_RESP
0x
0x00000014
0x
0x00000015
0x
0x00000016
0x
MT路由更新应答
MO路由更新
MO路由更新应答
MT路由更新
MT路由更新应答
MO路由更新
MO路由更新应答 附录1 MO状态报告的产生
为解决MO业务计费及使源网关获知SP对转发的MO消息的接收状态,现要求网关处理流程如下图所示:
MSC1:提交短消息2:提交短消息应答3:DELIVER_SM(SMPP)4:DELIVER_SM_RESP(SMPP)SMSCISMG1ISMG2SP5:CMPP_FWD6: CMPP_FWD_RESP7:CMPP_DELIVER8:CMPP_DELIVER_RESP9: CMPP_FWD10:CMPP_FWD网关产生的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)格式定义如下:
字段名
Msg_Id
Stat
字节数
8
7
属性
Unsigned
Integer
Octet
String
Octet
String
Octet
String
描述
信息标识(CMPP_DELIVER中的信息标识)
SP的应答结果,CMPP_DELIVER_RESP中Result值的字符表示,左对齐。Result为0时,填字符DELIVRD,其余值填REJECTD
YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59)
注:短信网关发出CMPP_DELIVER的时间。
YYMMDDHHMM
注:短信网关收到CMPP_DELIVER_RESP的时间。
目的SP的服务代码,左对齐。
CMPP_Deliver_time 10
CMPP_Deliver_RESP_time
Dest_Id
Reserved
10
21
4
Octet
String
Reserved
TP_udhi=1
在Msg_content中加入6个字节或者7个字节的udhi头做为前缀
)6个字节的TP_udhi协议头
05 00 03 XX MM NN
byte 1 : 05, 表示剩余协议头的长度
byte 2 : 00, 这个值在GSM 规范.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。
byte 3 : 03, 这个值表示剩下短信标识的长度
byte 4 : XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很 重要。
byte 5 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 6 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:05 00 03 39 02 01
)7个字节的TP_udhi协议头
06 08 04 XX XX MM NN
byte 1 : 06, 表示剩余协议头的长度
byte 2 : 08, 这个值在GSM 规范.1中规定,表示随后的这批超长短信的标识位长度为2(格式中的XX值)。
byte 3 : 04, 这个值表示剩下短信标识的长度
byte 4-5 : XX XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯 一并不是很重要。
byte 6 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 7 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:06 08 04 00 39 02 01
发布评论