中国网通PHS短消息网关技术规范第一分册.docx
- 文档编号:6830151
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:52
- 大小:111.31KB
中国网通PHS短消息网关技术规范第一分册.docx
《中国网通PHS短消息网关技术规范第一分册.docx》由会员分享,可在线阅读,更多相关《中国网通PHS短消息网关技术规范第一分册.docx(52页珍藏版)》请在冰点文库上搜索。
中国网通PHS短消息网关技术规范第一分册
中国网络通信集团公司企业标准
PHS短消息网关技术规范
第一分册短消息网关与服务提供商(SP)接口规范(CNGP)V2.0
发布
目录
前言1
1.适用范围2
2.引用标准2
3.缩略语2
4.CNGP概述3
4.1CNGP功能描述3
4.2协议栈3
4.3通信方式3
4.3.1长连接4
4.3.2短连接6
4.3.3交互过程中的应答方式7
4.3.4端口号7
4.4通信流程7
4.4.1CNGP登录模式7
4.4.2SP发送短消息8
4.4.3SP接收短消息8
4.4.4SMGW转发短消息9
4.5编号规则10
5.CNGP消息定义12
5.1基本数据类型12
5.2消息结构12
5.3消息头格式12
5.4SP与SMGW之间的消息定义13
5.4.1login13
5.4.2login_resp14
5.4.3submit15
5.4.4submit_resp16
5.4.5deliver16
5.4.6deliver_resp17
5.4.7active_test18
5.4.8active_test_resp18
5.4.9exit18
5.4.10exit_resp18
5.5SMGW与SMGW之间的消息定义18
5.5.1login19
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次后仍未得到应答则停发。
现阶段建议取值为:
T=60秒,N=3。
短连接的操作流程举例如图4.3所示:
......
服务器/客户端
客户端/服务器端
建立TCP连接
CNGP消息2
对CNGP消息2的应答
拆除TCP连接
图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
消息体(必选部分)
变长
MessageBody
消息体(可选部分)
TLV
5.3消息头格式
字段名
字节数
类型
描述
total_length
4
UnsignedInteger
消息总长度(含消息头及消息体)
command_id
4
UnsignedInteger
命令标识
command_status
4
UnsignedInteger
命令状态(参见7.4status错误代码表)
sequence_id
4
UnsignedInteger
消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
5.4SP与SMGW之间的消息定义
请求名称
请求标识
消息方向
说明
login
0x00000001
SPSMGW
登录请求
login_resp
0x80000001
SPSMGW
登录请求的应答
submit
0x00000002
SPSMGW
SP发送短消息请求
submit_resp
0x80000002
SPSMGW
SP发送短消息请求的应答
deliver
0x00000003
SMGWSP
SMGW发送短消息请求
deliver_resp
0x80000003
SMGWSP
SMGW发送短消息的应答
active_test
0x00000004
SPSMGW
测试通信链路是否正常请求(由客户端发起,SP和SMGW可以通过定时发送此请求来维持连接)
active_test_resp
0x80000004
SPSMGW
测试通信链路是否正常的应答
exit
0x00000006
SPSMGW
退出请求
exit_resp
0x80000006
SPSMGW
退出请求的应答
5.4.1login
字段
长度(字节)
数据类型
说明
ClientID
10
OctetString
SMGW设置的SP接入标识
AuthenticatorClient
16
OctetString
客户端密码
用于鉴别客户端的接入请求。
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorClient=MD5
(ClientID+7字节的二进制0+Sharedsecret+TimeStamp)
Sharedsecret由服务器端与客户端事先商定的,最长15字节,TimeStamp格式为:
mmddhhmmss,即月日时分秒,10位
LoginMode
1
Integer
登录类型(0=发送短消息,1=接收短消息,2=收发短消息,其他保留)
TimeStamp
4
Integer
时间戳的明文,由客户端产生,格式为mmddhhmmss,即月日时分秒,10位数字的整型,右对齐
Version
1
Integer
客户端支持的版本号(高位4bit表示主版本号,低位4bit表示次版本号)
5.4.2login_resp
字段
长度(字节)
数据类型
说明
AuthenticatorServer
16
OctetString
服务器端认证码,当客户端认证出错时,此项为空
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorServer=MD5
(Status+AuthenticatorClient
+Sharedsecret)
Sharedsecret由服务器端与客户端事先商定,最长15字节
AuthenticatorClient为客户端发送给服务器端的上一条消息login中的值
Version
1
Integer
服务器支持的最高版本号
5.4.3submit
字段
长度(字节)
数据类型
说明
SPID
10
Integer
SP的企业代码
SubType
1
Integer
短消息子类型(0=取消订阅,1=订阅或点播请求,2=点播下发,3=订阅下发,其他保留)
NeedReport
1
Integer
是否要求返回状态报告:
(0=不要求,1=要求)
Priority
1
Integer
发送优先级(从0到3)3为最高级
ServiceID
10
OctetString
业务类型
FeeType
2
OctetString
资费类型
00=免费
01=按条收费
02=包月
03=封顶
04=包月扣费请求
05=CR话单
其他:
保留
FeeUserType
1
OctetString
计费用户类型字段
0:
对目的终端计费
1:
对源终端计费
2:
对SP计费
3:
按照计费用户号码计费
其他保留
FeeCode
6
OctetString
每条短消息的信息费,单位:
分
MsgFormat
1
OctetString
短消息格式(参见短消息格式代码表7.1)
ValidTime
17
OctetString
有效时间,(格式:
参照SMPP3.4协议)
AtTime
17
OctetString
定时发送时间,(格式:
参照SMPP3.4协议)
SrcTermID
21
OctetString
短消息发送用户号码
ChargeTermID
21
OctetString
计费用户号码
DestTermIDCount
1
Integer
短消息接收号码总数(≤100)
DestTermID
21*DestTermCount
OctetString
短消息接收号码(连续存储DestTermIDCount个号码)
MsgLength
1
UnsignedInteger
短消息长度
MsgContent
≤254
OctetString
短消息内容
ProtocolID
TLV
协议标识(参见TLV说明表7.5)
5.4.4submit_resp
字段
长度(字节)
数据类型
说明
MsgID
10
OctetString
SMGW产生的短消息流水号,由三部分组成:
SMGW代码:
3字节(BCD码)
时间:
4字节(BCD码)
序列号:
3字节(BCD码)
CongestionState
TLV
流量控制(参见TLV说明表7.5)
5.4.5deliver
字段
长度(字节)
数据类型
说明
MsgID
10
OctetString
SMGW产生的短消息流水号,由三部分组成:
SMGW代码:
3字节(BCD码)
时间:
4字节(BCD码)
序列号:
3字节(BCD码)
IsReport
1
Integer
是否状态报告:
0:
不是
1:
是
MsgFormat
1
Integer
短消息格式(参见短消息格式代码表7.1)
RecvTime
14
OctetString
短消息接收时间(格式:
yyyymmddhhmmss,例如20010301200000)
SrcTermID
21
OctetString
短消息发送用户号码
DestTermID
21
OctetString
短消息接收用户号码
MsgLength
1
UnsignedInteger
短消息长度
MsgContent
≤254
OctetString
短消息内容
ProtocolID
TLV
协议标识(参见TLV说明表7.5)
5.4.6deliver_resp
字段
长度(字节)
数据类型
说明
MsgID
10
OctetString
SMGW产生的短消息流水号,由三部分组成:
SMGW代码:
3字节(BCD码)
时间:
4字节(BCD码)
序列号:
3字节(BCD码)
CongestionState
TLV
流量控制(参见TLV说明表7.5)
5.4.7active_test
无消息体。
5.4.8active_test_resp
无消息体。
5.4.9exit
无消息体。
5.4.10exit_resp
无消息体。
5.5SMGW与SMGW之间的消息定义
请求名称
请求标识
说明
login
0x00000001
SMGW登录请求
login_resp
0x80000001
SMGW登录请求的应答
active_test
0x00000004
测试通信链路是否正常请求(由客户端发起,SMGW和SMGW可以通过定时发送此请求来维持连接)
active_test_resp
0x80000004
测试通信链路是否正常的应答
forward
0x00000005
SMGW转发短消息请求
forward_resp
0x80000005
SMGW转发短消息的应答
exit
0x00000006
退出请求
exit_resp
0x80000006
退出请求的应答
5.5.1login
字段
长度(字节)
数据类型
说明
ClientID
10
OctetString
此处为源SMGW代码
AuthenticatorClient
16
OctetString
客户端密码
用于鉴别客户端的接入请求。
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorClient=MD5
(ClientID+7字节的二进制0+Sharedsecret+TimeStamp)
Sharedsecret由服务器端与客户端事先商定的,最长15字节,
TimeStamp格式为:
mmddhhmmss,即月日时分秒,10位
LoginMode
1
Integer
登录类型(0=发送短消息,1=接收短消息,2=收发短消息,其他保留)
TimeStamp
4
Integer
时间戳的明文,由客户端产生,格式为mmddhhmmss,即月日时分秒,10位数字的整型,右对齐
Version
1
Integer
客户端支持的版本号(高位4bit表示主版本号,低位4bit表示次版本号)
5.5.2login_resp
字段
长度(字节)
数据类型
说明
AuthenticatorServer
16
OctetString
服务器端认证码,当客户端认证出错时,此项为空
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorServer=MD5
(Status+AuthenticatorClient
+Sharedsecret)
Sharedsecret由服务器端与客户端事先商定,最长15字节
AuthenticatorClient为客户端发送给服务器端的上一条消息login中的值
Version
1
Integer
服务器支持的最高版本号
5.5.3active_test
无消息体。
5.5.4active_test_resp
无消息体。
5.5.5forward
字段
长度(字节)
数据类型
说明
MsgID
10
OctetString
SMGW产生的短消息流水号,由三部分组成:
SMGW代码:
3字节(BCD码)
时间:
4字节(BCD码)
序列号:
3字节(BCD码)
DestSMGWNo
6
OctetString
目标SMGW代码
SrcSMGWNo
6
OctetString
源SMGW代码
SMSCNo
6
OctetString
源SMSC代码
SMType
1
Integer
短消息类型(0=PHS用户发到SP的MO,1=PHS用户发到异网用户,2=SP发到PHS用户的MT,3=异网用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国 网通 PHS 短消息 网关 技术规范 第一 分册