短信接口.docx
《短信接口.docx》由会员分享,可在线阅读,更多相关《短信接口.docx(18页珍藏版)》请在冰豆网上搜索。
短信接口
中国移动通信
互联网短信网关接口协议
ChinaMobilePointtoPoint
版本号:
3.0.0
1通信方式3
2消息定义4
2.1基本数据类型4
2.2消息结构4
2.3消息头格式(MessageHeader)4
2.4集团用户(EC)与短信服务平台(SSP)间的消息定义4
2.4.1EC请求连接到SSP(SSP_CONNECT)操作4
2.4.2EC或SSP请求拆除连接(SSP_TERMINATE)操作6
2.4.3EC向SSP提交短信(SSP_SUBMIT)操作6
2.4.4SSP向EC提交短信(SSP_DELIVER)操作7
2.4.5SSP向EC提交账户余额(SSP_REMAIN_NOTIFY)操作9
2.4.6SSP向EC送交状态报告(SSP_REPORT)操作9
2.4.7链路检测(SSP_ACTIVE_TEST)操作11
3Command_Id定义11
4API说明12
1通信方式
通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。
当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。
参数C、T、N原则上应可配置,现阶段建议取值为:
C=3分钟,T=60秒,N=3。
网关与EC之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。
现阶段建议取值为:
T=60秒,N=3。
消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建
服务器端
客户端
议为16,即接收方在应答前一次收到的消息最多不超过16条。
拆除TCP连接
建立TCP连接
对EC消息2的响应
对EC消息1的响应
EC消息2
EC消息1
链路检测包
链路检测包响应
建立TCP链接
拆除TCP连接
2消息定义
2.1基本数据类型
UnsignedInteger
无符号整数
Integer
整数,可为正整数、负整数或零
OctetString
定长字符串,位数不足时,右补齐,以二进制的零以表示字符串的结束符
2.2消息结构
项目
说明
MessageHeader
消息头(所有消息公共包头)
MessageBody
消息体
2.3消息头格式(MessageHeader)
字段名
字节数
属性
描述
Total_Length
4
UnsignedInteger
消息总长度(含消息头及消息体)
Command_Id
4
UnsignedInteger
命令或响应类型
Sequence_Id
4
UnsignedInteger
消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
2.4集团用户(EC)与短信服务平台(SSP)间的消息定义
EC为客户端,向作为服务器端的SSP发起连接请求,在通过身份验证之后EC与SSP之间方可进行数据传输。
2.4.1EC请求连接到SSP(SSP_CONNECT)操作
SSP_CONNECT操作的目的是EC向SSP注册作为一个合法EC身份,若注册成功后即建立了应用层的连接,此后EC可以通过此连接发送短信。
SSP以SSP_CONNECT_RESP消息响应SP的请求。
2.4.1.1SSP_CONNECT消息定义(ECSSP)
字段名
字节数
属性
描述
Source_Addr
6
OctetString
源地址,此处为EC_Id,即EC的用户代码。
不足6位填\0.
AuthenticatorSource
16
OctetString
用于鉴别源地址。
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorSource=
MD5(Source_Addr+9字节的0+sharedsecret+timestamp)
Sharedsecret由SSP与EC实现商定,timestamp格式为:
MMDDHHMMSS,即月日时分秒,10位。
Version
1
UnsignedInteger
双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号),对于1.0的版本,高4bit为1,低4位为0
Timestamp
4
UnsignedInteger
时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐。
2.4.1.2SSP_CONNECT_RESP消息定义(SSPEC)
字段名
字节数
属性
描述
Status
4
UnsignedInteger
状态
0:
正确
1:
消息结构错
2:
非法源地址
3:
认证错
4:
版本太高
5~:
其他错误
AuthenticatorSSP
16
OctetString
SSP认证码,用于EC鉴别SSP。
其值通过单向MD5hash计算得出,表示如下:
AuthenticatorSSP=MD5(Status+AuthenticatorSource+sharedsecret),Sharedsecret由SSP与EC事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息SSP_Connect中的值。
认证出错时,此项为空。
Version
1
UnsignedInteger
服务器支持的最高版本号,对于1.0的版本,高4bit为1,低4位为0
2.4.2EC或SSP请求拆除连接(SSP_TERMINATE)操作
SSP_TERMINATE操作的目的是EC或SSP基于某些原因决定拆除当前的应用层连接而发起的操作。
此操作完成后EC与SSP之间的应用层连接被释放,此后EC若再要与ISMG通信时应发起SSP_CONNECT操作。
SSP或EC以SSP_TERMINATE_RESP消息响应请求。
2.4.2.1SSP_TERMINATE消息定义(ECSSP或SSPEC)
无消息体。
2.4.2.2SSP_TERMINATE_RESP消息定义(ECSSP或SSPEC)
无消息体。
2.4.3EC向SSP提交短信(SSP_SUBMIT)操作
SSP_SUBMIT操作的目的是EC在与ISMG建立应用层连接后向ISMG提交短信。
ISMG以SSP_SUBMIT_RESP消息响应。
2.4.3.1SSP_SUBMIT消息定义(ECSPP)
字段名
字节数
属性
描述
DestUsr_tl
1
UnsignedInteger
接收信息的用户数量(小于等于200个用户)
Dest_terminal_Id
11*DestUsr_tl
OctetString
接收短信的MSISDN11位号码,号码与号码之间无任何间隔
Msg_Length
1
UnsignedInteger
EC长短信长度<=254个字节;如EC无长短信业务,则长度根据EC的签名而定,短信内容长度+签名长度<=140字节,否则返回错误
Msg_Content
Msg_length
OctetString
信息内容,GB2312编码
Long_number
5
OctetString
长号码
2.4.3.2SSP_SUBMIT_RESP消息定义(SSPEC)
字段名
字节数
属性
描述
Msg_Id
8
UnsignedInteger
信息标识,生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):
bit64~bit39,其中
bit64~bit61:
月份的二进制表示;
bit60~bit56:
日的二进制表示;
bit55~bit51:
小时的二进制表示;
bit50~bit45:
分的二进制表示;
bit44~bit39:
秒的二进制表示;
(2)序列号:
bit32~bit1,顺序增加,步长为1,循环使用。
各部分如不能填满,左补零,右对齐。
(EC根据请求和应答消息的Sequence_Id一致性就可得到CMPP_Submit消息的Msg_Id)
Result
4
UnsignedInteger
结果
0:
正确
1:
消息结构错
2:
命令字错
3:
消息序号重复
4:
消息长度错
5:
超过最大信息长
6:
流量超过限制
7:
需充值
2.4.4SSP向EC提交短信(SSP_DELIVER)操作
SSP_DELIVER操作的目的是SSP把从行业网关转发来的短信送交EC,EC以SSP_DELIVER_RESP消息回应。
2.4.4.1SSP_DELIVER消息定义(SSPEC)
字段名
字节数
属性
描述
Msg_Id
8
UnsignedInteger
行业网管请求的MSG_ID
Dest_Id
21
OctetString
目的号码
EC的服务代码,前缀为EC服务代码的长号码;该号码是手机用户短消息的被叫号码。
Src_terminal_Id
11
OctetString
发送短信的MSISDN11位号码
Msg_Length
1
UnsignedInteger
消息长度的字节数
Msg_Content
Msg_length
OctetString
信息内容
2.4.4.2SSP_DELIVER_RESP消息定义(ECSSP)
字段名
字节数
属性
描述
Msg_Id
8
UnsignedInteger
对应于SSP_DELIVER请求的Msg_Id
Result
4
UnsignedInteger
结果
0:
正确
1:
消息结构错
2:
命令字错
3:
消息序号重复
4:
消息长度错
5:
超过最大信息长
6:
流量超过限制
7:
需充值
2.4.5SSP向EC提交账户余额(SSP_REMAIN_NOTIFY)操作
2.4.5.1SSP_REMAIN_NOTIFY消息定义(SSPEC)
字段名
字节数
属性
描述
Remain_count
4
UnsignedInteger
EC的短信余额,系统每小时提供一次数据
2.4.5.2SSP_REMAIN_NOTIFY_RESP消息定义(ECSSP)
字段名
字节数
属性
描述
Result
4
UnsignedInteger
结果
0:
正确
1:
消息结构错
2:
命令字错
3:
消息序号重复
4:
消息长度错
2.4.6SSP向EC送交状态报告(SSP_REPORT)操作
2.4.6.1SSP_REPORT消息定义(SSPEC)
状态报告表示SSP已提交信息到行业网关
字段名
字节数
属性
描述
Msg_Id
8
UnsignedInteger
信息标识
生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):
bit64~bit39,其中
bit64~bit61:
月份的二进制表示;
bit60~bit56:
日的二进制表示;
bit55~bit51:
小时的二进制表示;
bit50~bit45:
分的二进制表示;
bit44~bit39:
秒的二进制表示;
(2)序列号:
bit32~bit1,顺序增加,步长为1,循环使用。
各部分如不能填满,左补零,右对齐。
Stat
7
OctetString
状态,详见下表FINALMESSAGESTATES
Src_terminal_Id
11
OctetString
源终端MSISDN号码(状态报告时填为CMPP_SUBMIT消息的目的终端号码)如Src_terminal_Id为空则表示该Msg_Id所对应的目的手机号码均提交成功。
Stat字段定义
MessageState
FinalMessageStates
Description
DELIVERED
DELIVRD
Messageisdeliveredtodestination
EXPIRED
EXPIRED
Messagevalidityperiodhas
Expired,当天的超时信息如最后接受到,会发送DELIVRD状态报告
DELETED
DELETED
Messagehasbeendeleted.
UNDELIVERABLE
UNDELIV
Messageisundeliverable
ACCEPTED
ACCEPTD
UNKONWN
UNKNOWN
REJECTED
REJECTD
2.4.6.2SSP_REPORT_RESP消息定义(ECSSP)
字段名
字节数
属性
描述
Msg_Id
8
UnsignedInteger
信息标识
(CMPP_DELIVER中的Msg_Id字段)
Result
4
UnsignedInteger
结果
0:
正确
1:
消息结构错
2:
命令字错
3:
消息序号重复
4:
消息长度错
2.4.7链路检测(SSP_ACTIVE_TEST)操作
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。
2.4.7.1SSP_ACTIVE_TEST定义(ECSSP或SSPEC)
无消息体。
2.4.7.2SSP_ACTIVE_TEST_RESP定义(ECSSP或SSPEC)
无消息体。
3Command_Id定义
消息
Command_Id值
说明
SSP_CONNECT
0x00000001
请求连接
SSP_CONNECT_RESP
0x80000001
请求连接应答
SSP_TERMINATE
0x00000002
终止连接
SSP_TERMINATE_RESP
0x80000002
终止连接应答
SSP_SUBMIT
0x00000003
提交短信
SSP_SUBMIT_RESP
0x80000003
提交短信应答
SSP_ACTIVE_TEST
0x00000004
激活测试
SSP_ACTIVE_TEST_RESP
0x80000004
激活测试应答
SSP_REPORT
0x00000005
状态报告提交
SSP_REPORT_RESP
0x80000005
状态报告提交应答
SSP_DELIVER
0x00000006
短信上行请求
SSP_DELIVER_RESP
0x80000006
短信上行请求应答
SSP_REMAIN_NOTIFY
0x00000007
余额提醒
SSP_REMAIN_NOTIFY_RESP
0x80000007
余额提醒应答
4API说明
详见API测试代码