中国网通PHS短消息网关技术规范第一分册Word文档格式.docx
《中国网通PHS短消息网关技术规范第一分册Word文档格式.docx》由会员分享,可在线阅读,更多相关《中国网通PHS短消息网关技术规范第一分册Word文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
5.5.2login_resp19
5.5.3active_test20
5.5.4active_test_resp20
5.5.5forward20
5.5.6forward_resp22
5.5.7exit22
5.5.8exit_resp23
6.状态报告格式24
6.1MO的状态报告24
6.2MT的状态报告25
7.CNGP编码说明26
7.1短消息格式代码表26
7.2短消息状态表26
7.3Err错误代码表31
7.4status错误代码表32
7.5TLV说明表33
8.基于CNGP的API函数35
附录A基于CNGP协议的API函数说明36
前言
本标准描述了PHS短消息网关(SMGW)和服务提供商(SP)之间、短消息网关(SMGW)和短消息网关(SMGW)之间的通信协议。
本协议简称CNGP(ChinaNetcomShortMessageGatewayProtocol)。
本标准是PHS短消息网关技术规范的系列规范之一,该系列规范的名称如下:
PHS短消息网关技术规范第一分册:
短消息网关与服务提供商(SP)接口规范(CNGP);
PHS短消息网关技术规范第二分册:
短消息网关与计费中心接口规范;
PHS短消息网关技术规范第三分册:
短消息中心外部接口协议(CNPP);
PHS短消息网关技术规范第四分册:
短消息网关设备规范;
PHS短消息网关技术规范V2.0说明。
本标准起草单位:
中国网络通信集团公司、中国网通集团研究院
本标准主要起草人:
张文钺、李松林、蒋美景、叶丹、杨哲、宋冠云
本规范的解释权属于中国网络通信集团公司。
1.适用范围
本规范适用于短消息网关(SMGW)开发商和短消息服务提供商(SP)。
2.引用标准
SMPP(ShortMessagePeertoPeerProtocolSpecification)v3.4
3.缩略语
英文缩写
英文全称
说明
SMGW
ShortMessageGateway
短消息网关
SMPP
ShortMessagePeertoPeer
短消息点对点协议
SMSC
ShortMessageServiceCenter
短消息中心
SP
ServiceProvider
服务提供商
TLV
TagLengthValue
由tag/length/value三参数定义变量
MO
MessageOrigination
用户发送短消息到SP的上行过程
MT
MessageTermination
SP发送短消息到用户的下行过程
PSC
PrepaidServiceCenter
预付费中心
CR
ChargeRequest
SP为收取业务费用而向短消息网关发送的消息,短消息网关收到消息后不送给用户,仅产生相应的话单
4.CNGP概述
4.1CNGP功能描述
CNGP标准是SP与SMGW,以及SMGW与SMGW之间的通信标准。
CNGP可以实现以下功能:
1)SP通过SMGW向用户发送短消息,例如邮件通知、天气预报等。
2)短消息用户向SP点播信息,例如查询股票信息、航班信息等。
3)SP以某个短消息用户的身份向其他短消息用户发送信息。
4)短消息用户发送的短消息通过SMGW转发给异地或异网的短消息用户。
注:
异网是指其他运营商的网络,以下同。
4.2协议栈
CNGP标准以TCP/IP作为底层通信承载,具体结构由图4.1所示:
图4.1CNGP协议栈
4.3通信方式
SP与SMGW之间、SMGW与SMGW之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。
所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测消息以维持此连接。
短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CNGP消息的发送。
4.3.1长连接
通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。
当信道上没有数据传输时,通信双方应每隔时间C发送链路检测消息以维持此连接,当链路检测消息发出超过时间T后未收到应答,应立即再发送链路检测消息,再连续发送N-1次后仍未得到应答则断开此连接。
参数C、T、N原则上应可配置,现阶段建议取值为:
C=3分钟,T=60秒,N=3。
SMGW与SP之间、SMGW与SMGW之间的消息发送后等待T秒后未收到应答,应立即重发,再连续发送N-1次后仍未得到应答则停发。
现阶段建议取值为:
T=60秒,N=3。
消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建议为16,即接收方在应答前一次收到的消息最多不超过16条。
长连接的操作流程举例如图4.2所示:
......
拆除TCP连接
建立TCP连接
对CNGP消息2的应答
对CNGP消息1的应答
CNGP消息2
服务器端
客户端
CNGP消息1
滑动窗口不大于WW
链路检测消息
链路检测消息应答
图4.2长连接一次操作流程
4.3.2短连接
通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。
系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。
SMGW与SP之间、SMGW与SMGW之间的消息发送后等待T秒后未收到应答,应根据重发机制进行重发,再连续发送N-1次后仍未得到应答则停发。
短连接的操作流程举例如图4.3所示:
服务器/客户端
客户端/服务器端
图4.3短连接的操作流程
4.3.3交互过程中的应答方式
在SP与SMGW及SMGW与SMGW之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送应答消息。
举例如图4.4所示:
SMGW2
SMGW1
SMSC
SP
CNPP应答消息
CNPP请求消息
图4.4异步交互方式示意图
4.3.4端口号
端口号
应用
9890
长连接(SP与SMGW之间)
9900
短连接(SP与SMGW或SMGW与SMGW之间)
9930
长连接(SMGW与SMGW之间)
9001
长连接(SMGW与预付费平台之间)
4.4通信流程
4.4.1CNGP登录模式
在CNGP标准的一个会话中客户端可以采用三种登录方式与服务器端相连:
发送模式(TransmitMode)、接收模式(ReceiveMode)和收发模式(TransceiverMode)。
在发送模式中客户端只能发送短消息、在接收模式中客户端只能接收短消息、在收发模式中客户端既可以发送也可以接收短消息。
三种模式均可以采用长连接与短连接两种连接方式的一种,根据实际情况选择。
4.4.2SP发送短消息
SP以发送者或者是收发者身份登录后,就可以发送短消息。
SP可以不等待上一个短消息的应答消息,就发送下一个短消息。
图4.5SP发送短消息
4.4.3SP接收短消息
SP以接收者或者是收发者身份登录后,SMGW向SP发送短消息,SMGW可以不等待上一个短消息的应答消息,就发送下一个短消息。
图4.6SP接收短消息
4.4.4SMGW转发短消息
SMGW需要把异地或异网短消息转发到相应的SMGW,在转发短消息之前SMGW需要通过对方SMGW认证。
图4.7SMGW转发短消息
4.5编号规则
在整个SMGW系统中所有的通信节点(SMGW、SP和SMSC)都有一个唯一的数字编号,不同的SP、SMSC或SMGW编号不能相同,编号由系统管理人员负责分配,由集团统一管理,编号规则如下:
SMGW的编号规则:
1AAAXY
SMSC的编号规则:
2AAAXY
SP企业的编号规则:
3AAAQQQQQQ
其中,AAA表示三位长途区号(不足三位的长途区号右对齐左补零),XY表示从00到99的序号,QQQQQQ表示6位企业代码。
SP服务的编号规则:
服务代码是在使用短消息方式的点播类业务中,提供给用户点播的短消息服务代码。
服务代码以前缀+4位数字表示,全国业务服务代码长度统一为8位,即前缀+“1000”-“9999”,其中前缀为“1061”-“1069”,由集团统一分配;
本地业务服务代码长度统一为9位,即前缀+“01000”-“09999”,其中前缀为“1061”-“1069”,后五位数字由各省自行分配。
SP业务的编号规则:
SP的业务类型,数字、字母和符号的组合,由SP自定,如图片传情可定为TPCQ,股票查询可定义为11。
最大长度为10字节。
5.CNGP消息定义
5.1基本数据类型
类型
Integer
整数,长度根据具体协议确定,多字节情况下高字节在前
UnsignedInteger
无符号整数
OctetString
定长字符串,位数不足时左对齐,右补二进制的零
5.2消息结构
项目
格式
MessageHeader
消息头(所有消息公共包头)
定长
MessageBody
消息体(必选部分)
变长
消息体(可选部分)
5.3消息头格式
字段名
字节数
描述
total_length
4
消息总长度(含消息头及消息体)
command_id
命令标识
command_status
命令状态(参见7.4status错误代码表)
sequence_id
消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
5.4SP与SMGW之间的消息定义
请求名称
请求标识
消息方向
login
0x00000001
SPSMGW
登录请求
login_resp
0x80000001
登录请求的应答
submit
0x00000002
SPSMGW
SP发送短消息请求
submit_resp
0x80000002
SP发送短消息请求的应答
deliver
0x00000003
SMGWSP
SMGW发送短消息请求
deliver_resp
0x80000003
SMGW发送短消息的应答
active_test
0x00000004
测试通信链路是否正常请求(由客户端发起,SP和SMGW可以通过定时发送此请求来维持连接)
active_test_resp
0x80000004
测试通信链路是否正常的应答
exit
0x00000006
退出请求
exit_resp
0x80000006
退出请求的应答
5.4.1login
字段
长度(字节)
数据类型
ClientID
10
SMGW设置的SP接入标识
AuthenticatorClient
16
客户端密码
用于鉴别客户端的接入请求。
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorClient=MD5
(ClientID+7字节的二进制0+Sharedsecret+TimeStamp)
Sharedsecret由服务器端与客户端事先商定的,最长15字节,TimeStamp格式为:
mmddhhmmss,即月日时分秒,10位
LoginMode
1
登录类型(0=发送短消息,1=接收短消息,2=收发短消息,其他保留)
TimeStamp
时间戳的明文,由客户端产生,格式为mmddhhmmss,即月日时分秒,10位数字的整型,右对齐
Version
客户端支持的版本号(高位4bit表示主版本号,低位4bit表示次版本号)
5.4.2login_resp
AuthenticatorServer
服务器端认证码,当客户端认证出错时,此项为空
AuthenticatorServer=MD5
(Status+AuthenticatorClient
+Sharedsecret)
Sharedsecret由服务器端与客户端事先商定,最长15字节
AuthenticatorClient为客户端发送给服务器端的上一条消息login中的值
服务器支持的最高版本号
5.4.3submit
SPID
SP的企业代码
SubType
短消息子类型(0=取消订阅,1=订阅或点播请求,2=点播下发,3=订阅下发,其他保留)
NeedReport
是否要求返回状态报告:
(0=不要求,1=要求)
Priority
发送优先级(从0到3)3为最高级
ServiceID
业务类型
FeeType
2
资费类型
00=免费
01=按条收费
02=包月
03=封顶
04=包月扣费请求
05=CR话单
其他:
保留
FeeUserType
计费用户类型字段
0:
对目的终端计费
1:
对源终端计费
2:
对SP计费
3:
按照计费用户号码计费
其他保留
FeeCode
6
每条短消息的信息费,单位:
分
MsgFormat
短消息格式(参见短消息格式代码表7.1)
ValidTime
17
有效时间,(格式:
参照SMPP3.4协议)
AtTime
定时发送时间,(格式:
SrcTermID
21
短消息发送用户号码
ChargeTermID
计费用户号码
DestTermIDCount
短消息接收号码总数(≤100)
DestTermID
21*DestTermCount
短消息接收号码(连续存储DestTermIDCount个号码)
MsgLength
短消息长度
MsgContent
≤254
短消息内容
ProtocolID
协议标识(参见TLV说明表7.5)
5.4.4submit_resp
MsgID
SMGW产生的短消息流水号,由三部分组成:
SMGW代码:
3字节(BCD码)
时间:
4字节(BCD码)
序列号:
CongestionState
TLV
流量控制(参见TLV说明表7.5)
5.4.5deliver
IsReport
是否状态报告:
不是
是
RecvTime
14
短消息接收时间(格式:
yyyymmddhhmmss,例如20010301200000)
短消息接收用户号码
5.4.6deliver_resp
5.4.7active_test
无消息体。
5.4.8active_test_resp
5.4.9exit
5.4.10exit_resp
5.5SMGW与SMGW之间的消息定义
SMGW登录请求
SMGW登录请求的应答
测试通信链路是否正常请求(由客户端发起,SMGW和SMGW可以通过定时发送此请求来维持连接)
forward
0x00000005
SMGW转发短消息请求
forward_resp
0x80000005
SMGW转发短消息的应答
5.5.1login
此处为源SMGW代码
Sharedsecret由服务器端与客户端事先商定的,最长15字节,
TimeStamp格式为:
5.5.2login_resp
Sharedsecret由服务器端与客户端事先商定,最长15字节
AuthenticatorClient为客户端发送给服务器端的上一条消息login中的值
5.5.3active_test
5.5.4active_test_resp
5.5.5forward
DestSMGWNo
目标SMGW代码
SrcSMGWNo
源SMGW代码
SMSCNo
源SMSC代码
SMType
短消息类型(0=PHS用户发到SP的MO,1=P