+
中国电信集团公司企业标准
CT/T
1-2001
标准型信息终端综合平台技术规范
第七分册:短信网关协议
Short Message Gateway Protocol v1.0
2001-06-18发布 2001-06-18实施
中国电信集团公司 发布
目 录
1、 介绍.............................................................................................................................................................. 3
1.1、 目标................................................................................................................................................. 3
1.2、 适用范围........................................................................................................................................ 3
1.3、 缩略语............................................................................................................................................ 3
1.4、 参考资料........................................................................................................................................ 4
2、 SMGP概述................................................................................................................................................. 4
2.1、 SMGP功能.................................................................................................................................... 4
2.2、 SMGP定义.................................................................................................................................... 4
2.3、 SMGP通信流程............................................................................................................................ 5
2.3.1、 SP发送短信........................................................................................................................ 5
2.3.2、 SP接收短信........................................................................................................................ 5
2.3.3、 SMG转发短信.................................................................................................................... 6
2.3.4、 SP发送管理信息................................................................................................................ 7
3、 SMGP数据包定义................................................................................................................................... 7
3.1、 数据包结构.................................................................................................................................... 7
3.2、 请求说明........................................................................................................................................ 7
3.3、 包体结构........................................................................................................................................ 8
3.3.1、 login...................................................................................................................................... 8
3.3.2、 login_resp............................................................................................................................ 8
3.3.3、 submit.................................................................................................................................... 8
3.3.4、 submit_resp.......................................................................................................................... 9
3.3.5、 deliver................................................................................................................................... 9
3.3.6、 deliver_resp......................................................................................................................... 9
3.3.7、 active_test............................................................................................................................ 9
3.3.8、 acitve_test_resp................................................................................................................ 10
3.3.9、 forward............................................................................................................................... 10
3.3.10、 forword_resp................................................................................................................... 10
3.3.11、 exit.................................................................................................................................... 10
3.3.12、 exit_resp........................................................................................................................... 11
3.4、 特殊短信格式............................................................................................................................. 11
3.4.1、 状态报告格式.................................................................................................................... 11
3.4.2、 修改密码格式.................................................................................................................... 11
3.4.3、 包月收费格式................................................................................................................... 12
4、 编码说明.................................................................................................................................................. 12
4.1、 短信格式代码表......................................................................................................................... 12
4.2、 收费类型代码表......................................................................................................................... 12
4.3、 错误代码表.................................................................................................................................. 12
本文档(用文档表示是否合适??)详细介绍中国电信的短信网关(SMG应为SMGW,为统一起见,建议所有的短信网关改为短消息网关,所有的短信中心改为短消息中心)和服务提供商(SP)之间、短信网关和短信网关之间的通信协议。本协议简称SMGP(Short Message Gateway Protocol)。
服务提供商使用SMGP接入短信网关,向中国电信的短信用户发送短信,以及接收短信用户发送的短信。短信网关使用SMGP相互转发短信。
本标准起草单位: 中国电信集团公司、中国电信集团上海研发中心、中国亚信科技公司
本标准主要起草人:
本协议使用于短信网关开发商和短信服务提供商。
SMGP 中国电信短信网关通信协议
SMG 短信网关
SMPP 短信点对点协议
SMC 短信中心
MO 由短信用户向短信服务提供商发送的短信
MT 由短信服务提供商向用户电话发送的短信
SP 服务提供商
l
Short Message Peer to Peer
Protocol Specification v3.4
l
GSM 3.40
l
GSM 3.38
网关通信协议是短信服务提供商与短信网关,以及短信网关与短信网关之间的通信协议。SMGP可以实现以下功能:
l
服务提供商向中国电信短信用户发送push短信,例如邮件通知、天气预报等。
l
中国电信短信用户向服务提供商点播信息,例如查询股票信息、航班信息。
l
服务提供商以某个短信用户的身份向中国电信短信用户发送传情信息(是否应与总册中的说法一致,指订阅信息),例如图片传情、音乐传情等。
网关通信协议是一个基于数据包的交互式协议,通过TCP/IP传递数据。每个数据包都包含请求标识,代表数据包的用途。服务提供商与短信网关或者短信网关与短信网关之间采用客户-服务器的方式交互信息,客户向服务器发送一个请求包,服务器向客户返回回应包。
客户发送的所有请求包都包含一个唯一的序列号,服务器返回的回应包也带有相应的序列号,以便客户识别这是哪一个请求的回应。
客户和服务器之间采用长连接,如果在一定时间内客户和服务器之间没有发送合法的请求包,连接就中断。
SP以发送者身份登录后,就可以发送短信。SP可以不等待上一个短信发送回应包,就发送下一个短信。
SP以接收者身份登录后,短信网关就向SP下发MO短信,短信网关可以不等待上一个下发MO短信回应包,就下发下一个MO短信。
短信网关需要把异地MT/MO短信转发到相应的短信网关,在转发之前短信网关需要通过网关认证。
SP可以通过发送特殊格式的短信向短信网关发送管理信息,例如修改密码请求、包月收费请求等。发送的流程与发送短信一样。
SMGP数据包分为包头和包体两部分,包头的结构如下:
字段
|
长度
|
数据类型
|
说明
|
PacketLength
|
4
|
Integer
|
数据包长度(包头和包体的长度之和)
|
RequestID
|
4
|
Integer
|
请求标识
|
SequenceID
|
4
|
Integer
|
序列号(由客户分配,递增)
|
请求标识(RequestID)代表数据包的作用,请求包的请求标识和回应包的请求标识一一对应。
请求名称
|
请求标识
|
说明
|
Login
|
0x00000001
|
SP或SMG登录请求
|
login_resp
|
0x80000001
|
SP或SMG登录回应
|
Submit
|
0x00000002
|
SP发送短信请求
|
submit_resp
|
0x80000002
|
SP发送短信回应
|
deliver
|
0x00000003
|
SMG向SP下发接收短信请求
|
deliver_resp
|
0x80000003
|
SMG向SP下发接收短信回应
|
active_test
|
0x00000004
|
测试通信链路是否正常请求(由客户端发起,SP和SMG可以通过定时发送此请求来维持连接)
|
active_test_resp
|
0x80000004
|
测试通信链路是否正常回应
|
forward
|
0x00000005
|
SMG转发MT/MO短信请求
|
forward_resp
|
0x80000005
|
SMG转发MT/MO短信回应
|
exit
|
0x00000006
|
退出请求
|
exit_resp
|
0x80000006
|
退出回应
|
字段
|
长度
|
数据类型
|
说明
|
User
|
10
|
string
|
SP编号或者SMG编号
|
Password
|
10
|
|
密码
|
LoginMode
|
1
|
integer
|
登录类型(0=发送短信, 1=接收短信,2=转发短信)
|
字段
|
长度
|
数据类型
|
说明
|
result
|
4
|
integer
|
返回结果(参照错误代码表)
|
字段
|
长度
|
数据类型
|
说明
|
NeedReport
|
1
|
integer
|
是否要求返回状态报告(0=不要求,1=要求)
|
Priority
|
1
|
integer
|
发送优先级(从0到9)
|
ServiceID
|
10
|
string
|
服务类型
|
FeeType
|
2
|
string
|
收费类型(参照收费类型代码表)
|
FeeCode
|
6
|
string
|
资费代码(单位为分)
|
MsgFormat
|
1
|
integer
|
短信格式(参照短信格式代码表)
|
ValidTime
|
17
|
string
|
有效时间,格式遵循SMPP3.3协议
|
AtTime
|
17
|
string
|
定时发送时间,格式遵循SMPP3.3协议
|
SrcTermID
|
21
|
string
|
短信发送号码
|
DestTermIDCount
|
1
|
integer
|
短信接收号码总数(小于100)
|
DestTermID
|
21*
DestTermIDCount
|
string
|
短信接收号码(连续存储DestTermIDCount个号码)
|
MsgLength
|
1
|
integer
|
短信长度(小于160)
|
MsgContent
|
160
|
string
|
短信内容
|
字段
|
长度
|
数据类型
|
说明
|
MsgID
|
10
|
string
|
短信标识
|
result
|
4
|
integer
|
返回结果(参照错误代码表)
|
字段
|
长度
|
数据类型
|
说明
|
MsgID
|
10
|
string
|
短信标识
|
IsReport
|
1
|
integer
|
是否状态报告(0=不是,1=是)
|
MsgFormat
|
1
|
integer
|
短信格式(参照短信格式代码表)
|
RecvTime
|
14
|
string
|
短信接收时间(格式:yyyymmddhhmiss,例如20010301200000)
|
SrcTermID
|
21
|
string
|
短信发送号码
|
DestTermID
|
21
|
string
|
短信接收号码
|
MsgLength
|
1
|
integer
|
短信长度(小于160)
|
MsgContent
|
160
|
string
|
短信内容
|
字段
|
长度
|
数据类型
|
说明
|
MsgID
|
10
|
string
|
短信标识
|
result
|
4
|
integer
|
返回结果(参照错误代码表)
|
没有包体
没有包体
字段
|
长度
|
数据类型
|
说明
|
DestSMGNo
|
6
|
string
|
目标网关代码
|
SrcSMGNo
|
6
|
string
|
源网关代码
|
SMType
|
1
|
integer
|
短信类型(0=MT,1=MO)
|
NeedReport
|
1
|
integer
|
当SMType=0时,表示是否要求返回状态报告(0=不要求,1=要求)
当SMType=1时,表示是否状态报告(0=不是,1=是)
|
Priority
|
1
|
integer
|
发送优先级(从0到9)
|
ServiceID
|
1
|
integer
|
服务类型
|
FeeType
|
2
|
string
|
资费类型(参照收费类型代码表)
|
FeeCode
|
6
|
string
|
资费代码(单位为分)
|
MsgFormat
|
1
|
integer
|
短信格式(参照短信格式代码表)
|
ValidTime
|
17
|
string
|
有效时间,格式遵循SMPP3.3协议
|
AtTime
|
17
|
string
|
定时发送时间,格式遵循SMPP3.3协议
|
SrcTermID
|
21
|
string
|
短信发送号码
|
DestTermID
|
21
|
string
|
短信接收号码
|
MsgLength
|
1
|
integer
|
短信长度(小于160)
|
MsgContent
|
160
|
string
|
短信内容
|
字段
|
长度
|
数据类型
|
说明
|
MsgID
|
10
|
string
|
短信标识
|
Result
|
4
|
integer
|
返回结果(参照错误代码表)
|
没有包体
没有包体
状态报告和管理信息都存储在短信内容里,因此它们是特殊的短信,各自具有特殊的格式。
字段
|
长度
|
数据类型
|
说明
|
submit_date
|
12
|
string
|
短信提交时间(格式:yymmddhhmiss,例如010331200000)
|
done_date
|
12
|
string
|
短信下发时间(格式:yymmddhhmiss,例如010331200000)
|
Status
|
7
|
string
|
短信状态(参照短信状态表)
|
Err
|
3
|
string
|
具体值参见Mobile
Application Part (MAP) specification
(GSM 09.02 version 7.3.0
Release 1998), MAP-MT-FORWARD-SHORT-MESSAGE 消息的错误代码定义
|
短信状态表:
Message State
|
Final Message States
|
Description
|
DELIVERED
|
DELIVRD
|
Message is delivered to destination
|
EXPIRED
|
EXPIRED
|
Message validity period has
expired
|
DELETED
|
DELETED
|
Message has been deleted.
|
UNDELIVERABLE
|
UNDELIV
|
Message is undeliverable
|
ACCEPTED
|
ACCEPTD
|
Message is in accepted state(i.e. has been manually read on behalf of
the subscriber by customer service)
|
UNKNOWN
|
UNKNOWN
|
Message is in invalid state
|
REJECTED
|
REJECTD
|
Message is in a rejected state
|
字段
|
长度
|
数据类型
|
说明
|
OldPassword
|
10
|
string
|
旧密码
|
NewPassword
|
10
|
string
|
新密码
|
字段
|
长度
|
数据类型
|
说明
|
Month
|
6
|
string
|
包月费收取月份(格式:yyyymm,例如200103)
|
TermID
|
21
|
string
|
收取包月费的电话号码
|
ServiceID
|
10
|
string
|
服务类型
|
Fee
|
6
|
string
|
包月费金额,单位为分
|
MaxFee
|
6
|
string
|
封顶费金额,单位为分
|
代码
|
含义
|
0
|
ASCII编码
|
3
|
短信写卡操作
|
4
|
二进制短信
|
8
|
UCS2编码
|
15
|
含GB汉字
|
100
|
修改密码
|
101
|
包月收费(SP在每月出帐日向SMG发送包月收费短信,告诉SMG需要向电话取出的包月费用)
|
代码
|
含义
|
00
|
免费
|
01
|
按条收费
|
02
|
包月
|
代码
|
含义
|
0
|
成功
|
1
|
非法数据包
|
2
|
登录失败
|
3
|
非法发送优先级
|
4
|
非法资费类型
|
5
|
非法资费代码
|
6
|
非法短信格式
|
7
|
非法有效时间
|
8
|
非法定时发送时间
|
9
|
非法短信发送号码
|
10
|
非法短信接收号码
|
11
|
非法短信长度
|
12
|
非法目标网关代码
|
13
|
非法源网关代码
|
14
|
非法转发短信接收号码
|
15
|
修改密码失败
|
16
|
非法包月收费短信格式
|