您好,欢迎来到划驼旅游。
搜索
您的当前位置:首页中国网通PHS短消息网关技术规范第一分册

中国网通PHS短消息网关技术规范第一分册

来源:划驼旅游


中国网络通信集团公司企业标准

PHS短消息网关技术规范

第一分册 短消息网关与服务提供商(SP)接口规范

(CNGP)V2.0

发布

PHS短消息网关技术规范 第一分册

目 录

前 言 ....................................................................................................................... 1 1.适用范围 ................................................................................................................. 2 2.引用标准 ................................................................................................................. 2 3.缩略语 ..................................................................................................................... 2 4.CNGP概述 ............................................................................................................. 3 4.1 CNGP功能描述 ................................................................................................ 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.1 CNGP登录模式 ........................................................................................................... 7 4.4.2 SP发送短消息 ............................................................................................................. 8 4.4.3 SP接收短消息 ............................................................................................................. 8 4.4.4 SMGW转发短消息 ...................................................................................................... 9

4.5 编号规则 .......................................................................................................... 10 5.CNGP消息定义 ................................................................................................... 12 5.1 基本数据类型 .................................................................................................. 12 5.2 消息结构 .......................................................................................................... 12 5.3 消息头格式 ...................................................................................................... 12 5.4 SP与SMGW之间的消息定义 ...................................................................... 13

5.4.1 login ............................................................................................................................ 13 5.4.2 login_resp .................................................................................................................... 14 5.4.3 submit .......................................................................................................................... 15

第 I 页

PHS短消息网关技术规范 第一分册

5.4.4 submit_resp ................................................................................................................. 16 5.4.5 deliver.......................................................................................................................... 17 5.4.6 deliver_resp ................................................................................................................. 17 5.4.7 active_test.................................................................................................................... 18 5.4.8 active_test_resp ........................................................................................................... 18 5.4.9 exit ............................................................................................................................... 18 5.4.10 exit_resp .................................................................................................................... 18

5.5 SMGW与SMGW之间的消息定义 ............................................................. 18

5.5.1 login ............................................................................................................................ 19 5.5.2 login_resp .................................................................................................................... 19 5.5.3 active_test.................................................................................................................... 20 5.5.4 active_test_resp ........................................................................................................... 20 5.5.5 forward ........................................................................................................................ 20 5.5.6 forward_resp ............................................................................................................... 22 5.5.7 exit ............................................................................................................................... 23 5.5.8 exit_resp ...................................................................................................................... 23

6.状态报告格式 ....................................................................................................... 24 6.1 MO的状态报告 .............................................................................................. 24 6.2 MT的状态报告 ............................................................................................... 25 7.CNGP编码说明 ................................................................................................... 26 7.1 短消息格式代码表 .......................................................................................... 26 7.2 短消息状态表 .................................................................................................. 26 7.3 ERR错误代码表 .............................................................................................. 31 7.4 STATUS错误代码表 .......................................................................................... 32 7.5 TLV说明表 ..................................................................................................... 33 8.基于CNGP的API函数 ..................................................................................... 35 附录A 基于CNGP协议的API函数说明 ........................................................... 36

第 II 页

PHS短消息网关技术规范 第一分册

前 言

本标准描述了PHS短消息网关(SMGW)和服务提供商(SP)之间、短消息网关(SMGW)和短消息网关(SMGW)之间的通信协议。本协议简称CNGP(China Netcom Short Message Gateway Protocol)。

本标准是PHS短消息网关技术规范的系列规范之一,该系列规范的名称如下:

PHS短消息网关技术规范 第一分册:短消息网关与服务提供商(SP)接口规范(CNGP);

PHS短消息网关技术规范 第二分册:短消息网关与计费中心接口规范; PHS短消息网关技术规范 第三分册:短消息中心外部接口协议(CNPP); PHS短消息网关技术规范 第四分册:短消息网关设备规范; PHS短消息网关技术规范 V2.0说明。

本标准起草单位:中国网络通信集团公司、中国网通集团研究院 本标准主要起草人:张文钺、李松林、蒋美景、叶丹、杨哲、宋冠云 本规范的解释权属于中国网络通信集团公司。

第 1 页

PHS短消息网关技术规范 第一分册

1.适用范围

本规范适用于短消息网关(SMGW)开发商和短消息服务提供商(SP)。

2.引用标准

SMPP (Short Message Peer to Peer Protocol Specification) v3.4

3.缩略语

英文缩写 英文全称 短消息网关 短消息点对点协议 短消息中心 服务提供商 由tag/length/value三参数定义变量 用户发送短消息到SP 的上行过程 SP发送短消息到用户的下行过程 预付费中心 SP为收取业务费用而向短消息网关CR Charge Request 发送的消息,短消息网关收到消息后不送给用户,仅产生相应的话单 说明 SMGW Short Message Gateway SMPP SMSC Short Message Peer to Peer Short Message Service Center SP Service Provider TLV MO MT PSC Tag Length Value Message Origination Message Termination Prepaid Service Center 第 2 页

PHS短消息网关技术规范 第一分册

4.CNGP概述

4.1 CNGP功能描述

CNGP标准是SP与SMGW,以及SMGW与SMGW之间的通信标准。CNGP可以实现以下功能:

1) SP通过SMGW向用户发送短消息,例如邮件通知、天气预报等。 2) 短消息用户向SP点播信息,例如查询股票信息、航班信息等。 3) SP以某个短消息用户的身份向其他短消息用户发送信息。

4) 短消息用户发送的短消息通过SMGW转发给异地或异网的短消息用户。 注:异网是指其他运营商的网络,以下同。

4.2 协议栈

CNGP标准以TCP/IP作为底层通信承载,具体结构由图4.1所示:

SP SMGW SMGW SMSC TCP IP 底层承载 CNGP CNGP TCP IP 底层承载 CNGP/CNPP TCP IP 底层承载 CNPP TCP IP 底层承载 图4.1 CNGP协议栈

4.3 通信方式

SP与SMGW之间、SMGW与SMGW之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测消息以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CNGP消息的发送。

第 3 页

PHS短消息网关技术规范 第一分册

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所示:

第 4 页

PHS短消息网关技术规范 第一分册

客户端 服务器端 滑 动窗口不大于W

建立TCP连接 CNGP消息1 CNGP消息2 对CNGP消息1的应答 对CNGP消息2的应答 . . . . . . 链路检测消息 链路检测消息应答 链路检测消息 链路检测消息应答 . . . . . . 拆除TCP连接 图4.2 长连接一次操作流程

第 5 页

PHS短消息网关技术规范 第一分册

4.3.2 短连接

通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。

SMGW与SP之间、SMGW与SMGW之间的消息发送后等待T秒后未收到应答,应根据重发机制进行重发,再连续发送N-1次后仍未得到应答则停发。现阶段建议取值为:T=60秒,N=3。

短连接的操作流程举例如图4.3所示:

客户端/服务器建立TCP连接 服务器/客户端 CNGP消息1

对CNGP消息1的应答 拆除TCP连接 建立TCP连接 CNGP消息2 对CNGP消息2的应答 拆除TCP连接 . . . . . . 图4.3 短连接的操作流程

第 6 页

PHS短消息网关技术规范 第一分册

4.3.3 交互过程中的应答方式

在SP与SMGW及SMGW与SMGW之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送应答消息。举例如图4.4所示:

SMSC SMGW1 CNPP请求消息 SMGW2 SP CNPP应答消息 CNGP请求消息 CNGP应答消息 CNGP请求消息 CNGP应答消息 图4.4 异步交互方式示意图

4.3.4 端口号

端口号 应用 90 长连接( SP与SMGW之间) 9900 短连接(SP与SMGW或SMGW与SMGW之间) 9930 长连接(SMGW与SMGW之间) 9001

长连接(SMGW与预付费平台之间) 4.4 通信流程

4.4.1 CNGP登录模式

在CNGP标准的一个会话中客户端可以采用三种登录方式与服务器端相连:发送模式(Transmit Mode)、接收模式(Receive Mode)和收发模式(Transceiver Mode)。在发送模式中客户端只能发送短消息、在接收模式中客户端只能接收短

第 7 页

PHS短消息网关技术规范 第一分册

消息、在收发模式中客户端既可以发送也可以接收短消息。三种模式均可以采用长连接与短连接两种连接方式的一种,根据实际情况选择。

4.4.2 SP发送短消息

SP以发送者或者是收发者身份登录后,就可以发送短消息。SP可以不等待上一个短消息的应答消息,就发送下一个短消息。

SPlogin login_resp submit(1) submit(2)submit_resp(1) submit_resp(2) exit exit_respSMGW图 4.5 SP发送短消息

4.4.3 SP接收短消息

SP以接收者或者是收发者身份登录后,SMGW向SP发送短消息,SMGW可以不等待上一个短消息的应答消息,就发送下一个短消息。

第 8 页

PHS短消息网关技术规范 第一分册

SPlogin login_resp deliver(1) deliver(2)deliver_resp(1) deliver_resp(2) exit exit_respSMGW

图 4.6 SP接收短消息

4.4.4 SMGW转发短消息

SMGW需要把异地或异网短消息转发到相应的SMGW,在转发短消息之前SMGW需要通过对方SMGW认证。

第 9 页

PHS短消息网关技术规范 第一分册

SMGWloginlogin_resp forward(1) forward(2) forward_resp(1) forward_resp(2) exit exit_respSMGW图 4.7 SMGW转发短消息

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自

第 10 页

PHS短消息网关技术规范 第一分册

定,如图片传情可定为TPCQ,股票查询可定义为11。最大长度为10字节。

第 11 页

PHS短消息网关技术规范 第一分册

5.CNGP消息定义

5.1 基本数据类型

类型 Integer 说明 整数,长度根据具体协议确定,多字节情况下高字节在前 Unsigned Integer Octet String 无符号整数 定长字符串,位数不足时左对齐,右补二进制的零 5.2 消息结构

项目 Message Header Message Body Message Body 说明 消息头(所有消息公共包头) 消息体(必选部分) 消息体(可选部分) 定长 变长 TLV 格式 5.3 消息头格式

字段名 total_length 字节数 4 类型 Unsigned Integer command_id 4 Unsigned Integer command_status 4 Unsigned Integer 命令状态(参见7.4 status错误代码表) 命令标识 描述 消息总长度(含消息头及消息体) 第 12 页

PHS短消息网关技术规范 第一分册

sequence_id 4 Unsigned Integer 消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同) 5.4 SP与SMGW之间的消息定义

请求名称 login login_resp submit submit_resp deliver deliver_resp active_test 请求标识 0x00000001 0x80000001 0x00000002 0x80000002 0x00000003 0x80000003 0x00000004 消息方向 SPSMGW SPSMGW SP SMGW SPSMGW SMGWSP SMGWSP SPSMGW 登录请求 登录请求的应答 SP发送短消息请求 SP发送短消息请求的应答 SMGW发送短消息请求 SMGW发送短消息的应答 测试通信链路是否正常请求(由客户端发起,SP和SMGW可以通过定时发送此请求来维持连接) active_test_resp 0x80000004 SP SMGW 测试通信链路是否正常的应答 exit exit_resp 0x00000006 0x80000006 SPSMGW SPSMGW 退出请求 退出请求的应答 说明 5.4.1 login

字段 ClientID 长度(字节) 数据类型 10 Octet String AuthenticatorClient 16 Octet String 客户端密码 用于鉴别客户端的接入请求。其值通过单向MD5 hash计算得出,表示如说明 SMGW设置的SP接入标识 第 13 页

PHS短消息网关技术规范 第一分册

下: AuthenticatorClient =MD5 (ClientID+7字节的二进制0 +Shared secret+TimeStamp) Shared secret 由服务器端与客户端事先商定的,最长15 字节, TimeStamp格式为:mmddhhmmss,即月日时分秒,10位 LoginMode 1 Integer 登录类型(0=发送短消息,1=接收短消息,2=收发短消息,其他保留) TimeStamp 4 Integer 时间戳的明文,由客户端产生,格式为mmddhhmmss,即月日时分秒,10位数字的整型,右对齐 Version 1 Integer 客户端支持的版本号(高位4bit表示主版本号,低位4bit表示次版本号) 5.4.2 login_resp

字段 长度(字节) 数据类型 Octet String 说明 服务器端认证码,当客户端认证出错时,此项为空 其值通过单向MD5 hash计算得出,表示如下: AuthenticatorServer=MD5 (Status+AuthenticatorClient +Shared secret) Shared secret 由服务器端与客户端事先商定,最长15 字节 AuthenticatorClient为客户端发送给服务器端的上一条消息login中的值 第 14 页

Authenticator16 Server PHS短消息网关技术规范 第一分册

Version 1 Integer 服务器支持的最高版本号 5.4.3 submit

字段 SPID SubType 长度(字节) 数据类型 10 1 Integer Integer 说明 SP的企业代码 短消息子类型(0=取消订阅,1=订阅或点播请求,2=点播下发,3=订阅下发,其他保留) NeedReport 1 Integer 是否要求返回状态报告:(0=不要求,1=要求) Priority 1 Integer 发送优先级(从0到3)3为最高级 ServiceID 10 Octet String FeeType 2 Octet String 资费类型 00=免费 01=按条收费 02=包月 03=封顶 04=包月扣费请求 05=CR话单 其他:保留 FeeUserType 1 Octet String 计费用户类型字段 0:对目的终端计费 1:对源终端计费 2:对SP计费 3:按照计费用户号码计费 其他保留 FeeCode 6 Octet 第 15 页

业务类型 每条短消息的信息费,单位:分 PHS短消息网关技术规范 第一分册

String MsgFormat 1 Octet String ValidTime 17 Octet String AtTime 17 Octet String Octet String ChargeTermID DestTermIDCount DestTermID 21 1 21* DestTerm Count 1 ≤2 Octet String Integer Octet String Unsigned Integer Octet String TLV 计费用户号码 短消息接收号码总数(≤100) 短消息接收号码(连续存储DestTermIDCount个号码) 短消息长度 短消息内容 协议标识(参见TLV说明表7.5) 短消息格式(参见短消息格式代码表7.1) 有效时间,(格式:参照SMPP3.4协议) 定时发送时间,(格式:参照SMPP3.4协议) 短消息发送用户号码 SrcTermID 21 MsgLength MsgContent ProtocolID 5.4.4 submit_resp

字段 MsgID 长度(字节) 数据类型 10 Octet String 说明 SMGW产生的短消息流水号,由三部分组成: SMGW代码:3字节(BCD码) 时间:4字节(BCD码) 序列号:3字节(BCD码) CongestionState TLV 流量控制(参见TLV说明表7.5) 第 16 页

PHS短消息网关技术规范 第一分册

5.4.5 deliver

字段 MsgID 长度(字节) 数据类型 10 Octet String 说明 SMGW产生的短消息流水号,由三部分组成: SMGW代码:3字节(BCD码) 时间:4字节(BCD码) 序列号:3字节(BCD码) IsReport 1 Integer 是否状态报告: 0:不是 1:是 MsgFormat 1 Integer 短消息格式(参见短消息格式代码表7.1) RecvTime 14 Octet String 短消息接收时间(格式:yyyymmddhhmmss20010301200000) SrcTermID 21 Octet String DestTermID 21 Octet String MsgLength 1 Unsigned Integer MsgContent ≤2 Octet String ProtocolID TLV 协议标识(参见TLV说明表7.5) 短消息内容 短消息长度 短消息接收用户号码 短消息发送用户号码 ,例如5.4.6 deliver_resp

字段 MsgID 长度(字节) 数据类型 10 说明 Octet String SMGW产生的短消息流水号,第 17 页

PHS短消息网关技术规范 第一分册

由三部分组成: SMGW代码:3字节(BCD码) 时间:4字节(BCD码) 序列号:3字节(BCD码) CongestionState TLV 流量控制(参见TLV说明表7.5) 5.4.7 active_test

无消息体。

5.4.8 active_test_resp

无消息体。

5.4.9 exit

无消息体。

5.4.10 exit_resp

无消息体。

5.5 SMGW与SMGW之间的消息定义

请求名称 login login_resp active_test 请求标识 0x00000001 SMGW登录请求 0x80000001 SMGW登录请求的应答 0x00000004 测试通信链路是否正常请求(由客户端发起,SMGW和SMGW可以通过定时发送此请求来维持连接) active_test_resp forward 0x80000004 测试通信链路是否正常的应答 0x00000005 SMGW转发短消息请求 第 18 页

说明 PHS短消息网关技术规范 第一分册

forward_resp exit exit_resp 0x80000005 SMGW转发短消息的应答 0x00000006 退出请求 0x80000006 退出请求的应答 5.5.1 login

字段 ClientID AuthenticatorClient 长度(字节) 数据类型 10 16 Octet String Octet String 说明 此处为源SMGW代码 客户端密码 用于鉴别客户端的接入请求。其值通过单向MD5 hash计算得出,表示如下: AuthenticatorClient =MD5 (ClientID+7字节的二进制0 +Shared secret+TimeStamp) Shared secret 由服务器端与客户端事先商定的,最长15 字节, TimeStamp格式为:mmddhhmmss,即月日时分秒,10位 LoginMode 1 Integer 登录类型(0=发送短消息,1=接收短消息,2=收发短消息,其他保留) TimeStamp 4 Integer 时间戳的明文,由客户端产生,格式为mmddhhmmss,即月日时分秒,10位数字的整型,右对齐 Version 1 Integer 客户端支持的版本号(高位4bit表示主版本号,低位4bit表示次版本号) 5.5.2 login_resp

字段 长度(字节) 数据类型 第 19 页

说明 PHS短消息网关技术规范 第一分册

Authenticator16 Server Octet String 服务器端认证码,当客户端认证出错时,此项为空 其值通过单向MD5 hash计算得出,表示如下: AuthenticatorServer=MD5 (Status+AuthenticatorClient +Shared secret) Shared secret 由服务器端与客户端事先商定,最长15 字节 AuthenticatorClient为客户端发送给服务器端的上一条消息login中的值 Version 1 Integer 服务器支持的最高版本号 5.5.3 active_test

无消息体。

5.5.4 active_test_resp

无消息体。

5.5.5 forward

字段 MsgID 长度(字节) 数据类型 10 Octet String 说明 SMGW产生的短消息流水号,由三部分组成: SMGW代码:3字节(BCD码) 时间:4字节(BCD码) 序列号:3字节(BCD码) DestSMGWNo 6 Octet String 第 20 页

目标SMGW代码 PHS短消息网关技术规范 第一分册

SrcSMGWNo 6 Octet String 源SMGW代码 SMSCNo 6 Octet String 源SMSC代码 SMType 1 Integer 短消息类型(0=PHS用户发到SP的MO,1=PHS用户发到异网用户,2=SP发到PHS用户的MT,3=异网用户发到PHS用户,4=同一二级SMGW下的不同SMSC之间的点对点,5=异省点到点,其他保留) SubType 1 Integer 短消息子类型(0=取消订阅,1=订阅或点播请求,2=点播下发,3=订阅下发,其他保留) ReportFlag 1 Integer 状态报告标志(0=是状态报告,1=要求状态报告,2=不要求状态报告,其他保留) Priority 1 Integer 发送优先级(从0到3)3为最高级 ServiceID 10 Octet String 业务类型 FeeType 2 Octet String 资费类型 00=免费 01=按条收费 02=包月 03=封顶 04=包月扣费请求 05=CR话单 其他:保留 第 21 页

PHS短消息网关技术规范 第一分册

FeeCode MsgFormat 6 1 Octet String Integer 每条短消息的信息费,单位:分 短消息格式(参见短消息格式代码表7.1) ValidTime 17 Octet String Octet String Octet String Octet String Octet String 有效时间,格式参照SMPP3.4协议 定时发送时间,格式参照SMPP3.4协议 短消息发送用户号码 短消息接收号码 表示“计费用户号码” AtTime 17 SrcTermID DestTermID ChargeTermID 21 21 21 MsgLength MsgContent NodesCount ProtocolID 1 ≤2 1 Unsigned Integer Octet String Integer TLV 短消息长度 短消息内容 经过SMGW的数量 协议标识(参见TLV说明表7.5) 5.5.6 forward_resp

字段 MsgID 长度(字节) 数据类型 10 Octet String 说明 SMGW产生的短消息流水号,由三部分组成: SMGW代码:3字节(BCD码) 时间:4字节(BCD码) 序列号:3字节(BCD码) CongestionState TLV 流量控制(参见TLV说明表7.5) 第 22 页

PHS短消息网关技术规范 第一分册

5.5.7 exit

无消息体。

5.5.8 exit_resp

无消息体。

第 23 页

PHS短消息网关技术规范 第一分册

6.状态报告格式

6.1 MO的状态报告

目的SMGW向源SMGW通知SP接收情况的状态报告,即MO的状态报告,信息内容字段(MsgContent)格式定义:“id:IIIIIIIIII sub:SSS dlvrd:DDD delivertime:YYMMDDhhmm done_time: YYMMDDhhmm stat:DDDDDDD err:E txt:……”。其中各字段的定义如下表所示:

字段 id 长度(字节) 10 数据类型 Octet String 说明 状态报告对应原短消息的MsgID sub dlvrd delivertime 3 3 10 Octet String Octet String Octet String 取缺省值001 取缺省值001 YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59) 注:短消息网关发出deliver的时间 done_time 10 Octet String YYMMDDHHMM 注:短消息网关收到deliver_resp的时间 stat 7 Octet String 短消息状态(参见第7.2 节短消息状态表) err txt 3 20 Octet String Octet String 参见第7.3 节Err错误代码表 前3 个字节,表示短消息长度(用ASCII码表示),后17 个字节表示短消息的内容(保证内容不出现乱码)后补零 第 24 页

PHS短消息网关技术规范 第一分册

6.2 MT的状态报告

当SMGW向SP送交状态报告时,即MT的状态报告,信息内容字段(MsgContent)格式定义:“id:IIIIIIIIII sub:SSS dlvrd:DDD;

submit_date:YYMMDDhhmm done_date: YYMMDDhhmm stat:DDDDDDD; err:E;txt:……”。其中各字段的定义如下表所示:

字段 id sub dlvrd submit_date 长度(字节) 10 3 3 10 数据类型 Octet String Octet String Octet String Octet String 说明 上次提交到SMSC的短消息编号 取缺省值001 取缺省值001 SMGW提交短消息到SMSC的时间,时间格式为YYMMDDhhmm done_date 10 Octet String 短消息产生状态报告时间 时间格式为YYMMDDhhmm stat 7 Octet String 短消息状态(参见第7.2 节短消息状态表) err 3 Octet String 错误码,参见第7.3 节Err错误代码表 txt 20 Octet String 前3 个字节,表示短消息长度(用ASCII码表示),后17 个字节表示短消息的内容(保证内容不出现乱码) 注:状态报告在SMSC产生,SMGW接收状态报告时,修改状态报告中的MsgID并转发。异网用户发到PHS用户、同一二级SMGW下的不同SMSC之间的点对点、异省点到点的短消息状态报告均遵照MT的状态报告格式。

第 25 页

PHS短消息网关技术规范 第一分册

7.CNGP编码说明

7.1 短消息格式代码表

代码 0 3 4 8 15 ASCII编码 保留 二进制短消息 UCS2编码 GB2312编码 含义 7.2 短消息状态表

状态名 DELIVERED EXPIRED DELETED UNDELIVERABLE ACCEPTED 状态值(字符串) DELIVRD EXPIRED DELETED UNDELIV ACCEPTD 说明 短消息转发成功 短消息超过有效期 短消息已经被删除 短消息是不可转发的 短消息已经被最终用户接收(为保持与SMPP兼容,保留) UNKNOWN REJECTED UNKNOWN REJECTD 未知短消息状态 短消息被拒绝(为保持与SMPP兼容,保留) CA:XXXX CA:XXXX SMGW向PSC发送计费请求时,因为发送失败、网络原因、PSC超时等原因造成的SMGW未接收到PSC应答消息,SMGW生成的状态报告中status字段的取值,其中XXXX为SMGW认定的错误原因第 26 页

PHS短消息网关技术规范 第一分册

代码,其长度为4位,不足4位在前面补0,具体值见对XXXX的说明 CB:YYYY CB:YYYY SMGW向PSC发送计费请求时,接收到PSC的应答消息表明计费失败,SMGW生成的状态报告中的status字段的取值,其中YYYY为PSC返回给SMGW的错误码,其长度为4位,不足4位在前面补0,具体值参见对YYYY的说明 MA:XXXX MA:XXXX SMGW向SMSC发送短消息时,因为发送失败、网络原因、SMSC超时等原因造成的SMGW未接收到SMSC应答消息,SMGW生成的状态报告中的status字段的取值,其中XXXX为SMGW认定的错误原因代码,其长度为4位,不足4位在前面补0,具体值参见对XXXX的说明 MB:ZZZZ MB:ZZZZ SMGW向SMSC发送短消息时,接收到SMSC的应答消息表明SMSC处理消息失败,SMGW生成的状态报告中的status字段的取值,其中ZZZZ为SMSC返回给SMGW的错误码,其长度为4位,不足4位在前面补0,具体值参见对ZZZZ的说明 1、XXXX的定义:

XXXX的值(4位,不足4位前面补0) 含义 第 27 页

PHS短消息网关技术规范 第一分册

0051 0052 0053 00 0100-0499 其它 2、YYYY的定义:

YYYY的值(4位,不足4位前面补0) 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0014 0015 0016 0017 0018 0020 0021 0022 0023 尚未建立连接 尚未成功登录 发送消息失败 超时未接收到应答消息 厂家自定义的错误码 保留未用 含义 非预付费用户 数据库操作失败 鉴权失败 超过最大错误次数 PHS用户帐户数据异常 服务没有激活 用户余额不足 超过包月费用上限 超过最高欠费额 用户已注册该项服务 用户没有注册该项服务 未登记的SMGW SMGW登录摘要错误 参数错误 服务器端数据未传完 重复发送消息序列号MsgID相同的计费请求消息 未知错误 数据库错误 SP互联失败 数值越界 第 28 页

PHS短消息网关技术规范 第一分册

0024 0025 0026 0040 0041 0042 0043 0044 0045 0046 0052 0053 00 0055 0056 0057 0061 0062 0063 00 0065 0066 0067 0068 0100-0499 其它

3、ZZZZ的定义:

ZZZZ的值(4位,不足4位前面补0) 字段超长 无相关数据 数据重复 未登记的SP SP帐户状态异常 SP无权限 SP帐户已存在 未登记的SP业务类型 SP业务类型数据异常 SP业务类型已存在 保留 保留 保留 签约信息已存在 签约信息不存在 签约数据异常 月消费超额 单笔消费超额 用户拒绝 短消息编号已存在 对应扣费请求不存在 扣费请求已被确认 未定义的计费类型 未定义的编码方式 厂家自定义的错误码 保留未用 含义 第 29 页

PHS短消息网关技术规范 第一分册

0X00000001 – 0X0000000F 0X00000010 0X00000011 0X00000012 0X00000013 0X00000014 – 0X0000001F 0X00000020 0X00000021 0X00000022 0X00000023 – 0X0000003F 0X00000040 0X00000041 0X00000042 0X00000043 0X00000044 0X00000045 0X00000046 0X00000047 0X00000048 0X00000049 0X0000004A 0X0000004B 0X0000004C – 0X0000005F 0X00000060 0X00000061 0X00000062 0X00000063 0X000000 0X00000065 保留给SMSC厂商定义错误 消息长度错误 命令长度错误 消息ID无效 没有执行此命令的权限 保留 无效的SYSTEMID 无效的密码 无效的SYSTEMTYPE 保留 地址错误 超过最大提交数 超过最大下发数 无效的用户 无效的数据格式 创建消息失败 无效的MsgID 数据库失败 取消消息失败 短消息状态错误 替换消息失败 替换消息源地址错误 保留 保留 保留 源地址错误 保留 保留 目的地址错误 第 30 页

PHS短消息网关技术规范 第一分册

0X00000066 0X00000067 0X00000068 0X00000069 0X0000006A 0X0000006B 0X0000006C 0X0000006D – 0X0000007F 0X00000080 0X00000081 0X00000082 0X00000083 0X00000084 – 0X0000008F 0X00000090 – 0X00000FFF 其他 3、PSC常见的错误情况

无效的定时时间 无效的超时时间 无效的IsReport 保留 无效的PRI 无效的NeedReport 保留 保留 指定用户已经存在 创建用户失败 用户ID错误 指定用户不存在 保留 保留给SMSC厂商定义错误 保留 1) 状态报告stat为CB:0005:表示PHS后付费用户因为状态不正确如处于

停机、挂起等状态而导致的用户无法享受服务;

2) 状态报告stat为CB:0007:表示PHS预付费用户因为余额不足而导致用

户无法享受服务;

3) 状态报告stat为EXPIRED:表示因为用户长时间关机或者不在服务区等

导致的短消息超时没有递交到用户手机上;

4) 状态报告stat为UNDELIVERABLE:表示PHS后付费用户因为状态不

正确如处于停机、挂起等状态而导致的用户无法享受服务。

7.3 Err错误代码表

状态值 (字符串) 说 明 对应状态 第 31 页

PHS短消息网关技术规范 第一分册

000 001 002 003 004 005 006 007 008 009 010 成功 用户不能通信 用户忙 终端无此部件号 非法用户 用户在黑名单内 系统错误 用户内存满 非信息终端 数据错误 数据丢失 DELIVRD EXPIRED EXPIRED UNDELIV UNDELIV UNDELIV UNDELIV EXPIRED UNDELIV UNDELIV UNDELIV 注:没有的错误类型一律用系统错误,即006。

7.4 status错误代码表

代码 0 1 2 3-9 10 11 12 13-19 20 21 22 23 24 成功 系统忙 超过最大连接数 保留 消息结构错 命令字错 序列号重复 保留 IP地址错 认证错 版本太高 非法FeeUserType 非法SubType 含义 第 32 页

PHS短消息网关技术规范 第一分册

25 26 27-29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44-127 128-255 NodesCount 超过阈值 非法MsgID 保留 非法消息类型(SMType) 非法优先级(Priority) 非法资费类型(FeeType) 非法资费代码(FeeCode) 非法短消息格式(MsgFormat) 非法时间格式 非法短消息长度(MsgLength) 有效期已过 非法查询类别(QueryType) 路由错误 帐户不存在 余额不足 帐户不可用 非预付费用户 保留 厂家自定义 7.5 TLV说明表

1) TAG值定义如下: 标签 ProtocolID CongestionState 2) 具体定义: A.协议标识,缺省0

第 33 页

标签值 0x0100 0x0428 描述 协议标识 拥塞状态 PHS短消息网关技术规范 第一分册

字段 Parameter Tag Length Value 长度(字节) 2 2 1 类型 Integer Integer Integer 描述 0x0100 Value实际长度 协议标识 B.拥塞状态,缺省0 字段 Parameter Tag Length Value 长度(字节) 2 2 1 类型 Integer Integer Integer 0x0428 Value实际长度 0 = 空闲 1-29 = 低负荷 30-49 =中负荷 50-79 =高负荷 80-90 =最合适的负荷 90-99 =接近拥塞 100 = 拥塞 描述 第 34 页

PHS短消息网关技术规范 第一分册

8.基于CNGP的API函数

详见附录A。

第 35 页

PHS短消息网关技术规范 第一分册

附录A 基于CNGP协议的API函数说明

(提示的附录)

A.1基本要求

A.1.1安装

SMGW需要提供API软件包,解压到指定目录下后可以修改配置文件,配置参数至少包括SPId(SP编号)、SPShareKey(SP密码)、ClientIP(客户主机的IP地址)和ServerIP(SMGW地址)。

A.1.2例子程序

SMGW至少应该提供以下例程,供SP调试使用,分别为:

 Connect(参数),检查是否能够成功登录SMGW;  TestAPI(参数),检查是否能够成功连接SMGW。  SetKey (参数),修改SP密码。  SendSM(参数)尝试发送短消息。  RecvSM(参数)尝试接收短消息等。

 RecvSMReport(参数),尝试接收短消息状态报告。

A.1.3操作系统平台要求

SMGW提供的API软件包至少要求支持以下操作系统平台:

 Free BSD 3.x,4.2

 Solaris 5.6, 5.7, 5.8(包含x86)

 Linux(Redhat和Slack等主流产品)  Windows NT/2000等

SMGW提供的API软件包至少要求支持以下编程语言:

 C/C++  JAVA

第 36 页

PHS短消息网关技术规范 第一分册

A.2 API数据结构说明(以C语言为例)

A.2.1接收短消息的返回数据结构(DeliverResp)

 用途

保存CNGPDeliver函数返回的短消息内容。

 字段说明 字段名 sMsgID nMsgFormat 数据类型 Char(11) Int 说明 短消息标识 短消息格式(参照短消息格式代码表7.1)。SMGW不做判定, 透明传输。 sSrcTermID nIsReport Char(22) Int 短消息发送用户号码 是否为应答信息。代码含义:非应答信息(0);应答信息(1) nMsgLen sMsgContent sDestTermID sRecvTime Int Char(201) char(21) char(15) 消息长度 消息内容 SP的接入代码 短消息接收时间(格式:yyyymmddhhmiss,例如20010301200000) A.2.2获取群发短消息的返回数据结构(SendBatchResp)

 用途

使用CNGPSendBatch群发短消息后,每条短消息的“消息标识”和“错误代码”保存在文件里。CNGP API提供GetSendBatchResp函数获取每一条短消息返回信息,保存在SendBatchResp中。

 字段说明 字段名 sMsgID nErrorCode 数据类型 Char(11) Int 说明 短消息标识 错误代码(参照错误代码表) 第 37 页

PHS短消息网关技术规范 第一分册

sPhoneNo Char(22) 发送号码 A.2.3查询SMGW的返回数据结构(QueryResp可选)

 用途

保存CNGPQuery函数返回的查询结果。

 字段说明 字段名 nMT_TLMsg nMT_TLusr nMT_Scs nMT_WT nMT_FL nMO_Scs nMO_WT nMO_FL 数据类型 Int Int Int Int Int Int Int Int 说明 接收短消息总数 接收用户总数 成功转发数量 待转发数量 转发失败数量 成功送达数量 待送达数量 送达失败数量 A.3 API函数说明

A.3.1初始化API(InitCNGPAPI)

 作用

初始化CNGP API,应用程序只需要调用一次此函数。

 参数 参数名 SiniFile 数据类型 说明 ,缺省值Char(100) CNGPAPI配置文件名是:”../config/CNGPc.ini”。 如果应用程序的执行目录不在CNGPapi/bin下,就需要通过绝对或相对路径指定sINIFile。 例如:InitCNGPAPI(“/opt/CNGPapi/config/CNGPc.ini”)  返回 0=成功 1=失败

第 38 页

PHS短消息网关技术规范 第一分册

A.3.2发送单条短消息(CNGPSendSingle)

 作用

向SMGW发送1条短消息到1个终端用户。短消息长度最长为200, CNGP API在发送时自动建立Connection Pool,采用长连接或者短连接发送短消息。当Cache的connection中断时,API能够自动重新连接SMGW。如果应用程序采用多线程发送短消息,多个线程共享同一个Connection Pool。在发送过程中,如果因为通信原因导致发送失败,API能够自动重新发送,重试的次数在配置文件设置。

 参数 参数名 nNeedReport nMsgLevel sServiceID nMsgFormat 数据类型 说明 Int Int Char(11) Int 是否要求返回状态报告(0=不要求,1=要求) 信息级别(0-3,0=最低优先级) 业务类型 短消息格式(参照短消息格式表7.1)。SMGW不做判定, 透明传输。 sFeeType sFeeCode sValidTime sAtTime sChargeTermID sDestTermID nMsgLen sMsgContent Char(3) Char(7) Char(18) Char(18) Char(22) Char(22) Int Char(*)? 资费类型 资费代码(以分为单位) 存活有效期,格式遵循SMPP3.3协议 定时发送时间,格式遵循SMPP3.3协议 计费号码 短消息接收号码 短消息长度 短消息内容(nMsgLen=0时表示存放短消息的文件名) sMsgID Char(11) 返回的短消息标识 第 39 页

PHS短消息网关技术规范 第一分册

nErrorCode Int 错误代码(参照错误代码表)。  返回 0=成功 1=失败

A.3.3群发短消息(CNGPSendBatch)

 作用

向SMGW发送1条短消息到多个手机用户。短消息长度最长为200,此函数使用文件传递短消息内容。CNGP API在发送时自动建立Connection Pool,采用长连接或者短连接发送短消息。当Cache的connection中断时,API能够自动重新连接SMGW。如果应用程序采用多线程发送短消息,多个线程共享同一个Connection Pool。在发送过程中,如果因为通信原因导致发送失败,API能够自动重新发送,重试的次数在配置文件设置。

 参数 参数名 nNeedReport nMsgLevel 数据类型 说明 int int 是否要求返回状态报告(0=不要求,1=要求) 信息级别。(0=最低优先级,1=正常,2=紧急,3=十分紧急) sServiceID nMsgFormat Char(11) Int 业务类型 短消息格式(参照短消息格式表7.1)。SMGW不做判定, 透明传输。 sFeeType sFeeCode sValidTime sAtTime sSrcTermID sChargeTermID Char(3) Char(7) Char(18) Char(18) Char(22) Char(22) 资费类型 资费代码(以分为单位) 存活有效期,格式遵循SMPP3.3协议 定时发送时间,格式遵循SMPP3.3协议 短消息发送用户号码 计费号码(若为空,则对被叫计费) 第 40 页

PHS短消息网关技术规范 第一分册

sDestTermIDFile Char(100) 保存所有目的号码的文件名 nMsgLen sMsgContent Int Char(*) 消息长度 短消息内容(nMsgLen=0时表示存放短消息的文件名) sMsgIDFile Char(100) 保存所有短消息的返回MsgID和ErrorCode的文件名 sSubType Char(2) 短消息子类型  返回 0=成功 1=失败

A.3.4获取群发短消息的结果(GetSendBatchResp)

 作用

从文件里读取群发的某一个短消息的标识、发送结果和发送号码。

 参数 参数名 sMsgIDFile 数据类型 说明 Char(100) 保存所有短消息的返回MsgID和ErrorCode的文件名 nPos pSendBatchResp Int 短消息位置,从0开始 SendBatch用于保存结果的SendBatchResp结构指针 Resp *  返回 0=成功 1=失败

A.3.5接收短消息(CNGPDeliver)

 作用

连接SMGW,等待接收属于本SP的短消息。

第 41 页

PHS短消息网关技术规范 第一分册

 参数 参数名 nTimeout pDeliverResp 数据类型 int 说明 等待时间,单位:秒。0表示永远等待。 DeliverResp * 保存短消息的DeliverResp结构指针  返回 0=成功 1=失败

A.3.6检查SMGW是否能够提供服务(CMMPActiveTest)

 作用

检查SMGW是否能够提供服务。

 参数 参数名 nErrorCode 数据类型 说明 Int 错误代码(参照错误代码表)。  返回 0=成功 1=失败

A 3.7查询短消息流量(CNGPQuery可选)

 作用

向SMGW查询某天的短消息流量。

 参数 参数名 sDate nQueryType sServiceID pQueryResp 数据类型 Char(10) Int Char(11) QueryResp * 说明 查询日期,格式:yyyymmdd 查询类型,0=总数查询;1=按业务代码查询 查询码1(业务类型) 保存查询结果的QueryResp结构指针  返回

第 42 页

PHS短消息网关技术规范 第一分册

0=成功 1=失败

A.4配置CNGP API

配置文件在CNGPapi/config/CNGPc.ini,以下是配置项的说明: 名称 SPId SPShareKey 说明 SP编号。 SP密码。 WithPrevPage第1个以后的分割短消息的前置说明文字,可以为空。 例如(第2个分割短消息):(2/3)(continue)xxxxxx “(continue)”是前置说明AscII短消息的最大长度 文字WithNextPage分割短消息的后置说明文字,可以为空,最后一个短消息不带后置说明文字。 例如(第1个分割短消息):(1/3)xxxxxx(to be continued) “(to be continued)”是后置说明文字PageSpaceAscii PageSpaceGB PageSpaceBinary WithPageIndex MaxPage ClientIP 中文短消息的最大长度 二进制短消息的最大长度 在分割短消息时是否附加页号,0=否,1=是。 最大分割页数,最大是99页。 客户主机的IP地址,必须填写接入Internet的公网地址。如果主机是通过Gateway接入Internet,就填写Gateway地址。如果客户主机的IP地址填写错误会导致应用程序不能通过CNGP用户认证。 ServerIP SMGW的IP地址 第 43 页

PHS短消息网关技术规范 第一分册

ServerPort SubmitRetry SMGW的端口 发送短消息自动重试次数(1表示只发送1次,不重新发送) RequestTimeout 发送请求超时时间,单位:秒

A.5短消息的自动分割功能

CNGPSendSingle和CNGPSendBatch提供自动分割短消息的功能,分割的效果由CNGPc.ini的配置控制。

当参数nMsgFormat等于0或15时,API就提供分割短消息功能。API扫描短消息的内容,把短消息分段,根据每一段的短消息内容设置nMsgFormat。如果某一段短消息含有中文,就把那一段短消息的发送格式设为15,取PageSpaceGB为最大长度;如果不含中文,就把那一段短消息的发送格式设为0,取PageSpaceAscii为最大长度。这样,可以充分利用短消息的最大发送长度,减少分割数量。如果WithPrevPage或者PageSpaceGB含有汉字,所有分割短消息的发送格式都设为15。

当参数nMsgFormat等于4时,API根据PageSpaceBinary配置分割短消息。 当参数nMsgFormat等于0并且长度小于PageSpaceGB,API扫描短消息内容是否含有中文。如果发现中文,就自动把发送格式变为15。

A. 6错误代码含义

编号 4 5 6 7 8 10 含义 非法短消息长度 非法资费代码(FeeCode) 短消息长度超长 非法业务类型(ServiceId) 短消息发送速度太快 非法SP编号 第 44 页

PHS短消息网关技术规范 第一分册

11 12 13 14 15 16 17 18 19 20 21 22 23 24 99 其他

非法信息格式(MsgFormat) 非法资费类型(FeeType) 非法存活有效期(ValidTime) 非法定时发送时间(AtTime) 非法计费号码(ChargeTermId) 非法目标号码(DestTermId) 不能打开目标号码文件(DestTermIdFile) 不能打开短消息内容文件(MsgFile) 非法短消息(MsgContent) 连接SMGW失败 登录失败 接收结果数据包失败 发送队列满 超出系统 系统错误 保留 第 45 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务