smgp-api分析

SMGP协议

数据类型:Integer、octet String
可选参数:采用TLV(tag、length、value)形式定义,每个可选参数的tag、length、value

tag 2 integer 字段的标签,用于唯一标识可选参数











消息结构:消息头(Message Header),消息体(Message Body) =以下的String 都表示octet String类型

1、消息头结构:

字段 长度(字节) 数据类型 说明 可能的值
PacketLength 4 Integer 数据包长度 smgp数据包长度,指包头好包体的长度之和。单位是字节。
RequestID 4 Integer 请求标识 标识smgp的数据包类型,请求包的请求标识,与应答包的应答标识一一对应
SequenceID 4 Integer 消息流水号 smgp消息流水号,用来匹配请求数据包和应答数据包,两者中的流水号必须一致。(流水号由请求包发起方分配取值范围0x00000000~0xFFFFFFFF,顺序累加,步长为1,循环试用。

2、消息体结构

登录操作(Login)

1、Login对象

字段 数据类型 长度(字节) 说明 可能的值用户账号
ClientID String 8 客户端用来登录服务端的用户账号 当客户端为SP时,用户账号为SP服务代码;当客户端为SMGW,用户账号为SMGW代码;当客户端为GNS时,用户账号为GNS代码。
AuthenticatorClient String 16 客户端认证代码,用来鉴别客户端的合法性。 其值通过单向MD5 hash计算得出。AuthenticatorClient=MD5【ClientID+7字节的二进制0(0x00)+共享秘钥(最长15个字节)+时间戳】
LoginMode Integer 1 客户端用来登录服务端的登录类型 0=发送短信;1=接收短信;2=收发短信。其它保留
TimeStamp Integer 4 时间戳
ClientVersion Integer 1 客户端支持的协议版本号 高4位主版本号。低4位次版本号;(如0x13标识协议版本号为1.3)


2、Login_Resp

字段 数据类型 长度(字节) 说明 可能的值用户账号
Status
Integer 4 请求返回结果 响应包用来向请求包返回成功信息或失败原因。
AuthenticatorServer String 16 服务端返回给客户端的认证码;当客户端认证出错时,此项为空。 其值通过单向MD5 hash计算得出。AuthenticatorServer=MD5【Status+AuthenticatorClient+共享秘钥(最长15个字节)】
ServerVersion Integer 1 服务器端支持的最高版本号 高4位主版本号。低4位次版本号;(如0x13标识协议版本号为1.3)

服务提供商(sp)向短消息网关(smgw)提交短消息的操作(Submit)

1、Submit对象

字段 数据类型  长度(字节) 说明 可能的值
MsgType
Integer 
1 消息类型(回执消息,该字段无效)
0 【=mo消息;终端发给sp】 ,6【=mt消息;sp发给终端】,7【点对点短消息】
NeedReport Integer 1 sp是否要求返回状态报告 0【不要求返回报告】,1【要求返回报告】
Priority Integer
1 短信发送的优先级 0【低优先级】,1【普通优先级】,2【较高优先级】,3【最高优先级】
ServiceID String 10 业务代码(用于固定网业务) 对于mo消息或点对点消息,该字段无效; 业务代码由sp自定定义。
MsgFormat Integer 1 短消息格式(内容体的编码格式)

0【=ascii编码】,3【=短消息写卡操作】,4【=二进制短消息】,8【=ucs2编码】,15【=GB18030编码】,246(F6)【(u)sim相关消息】

ValidTime String    17 短消息有效时间 有效时间在转发过程中保持不变,格式遵循SMPP3.3以上版本协议
AtTime String 17 短消息定时发送时间 定时发送时间在转发过程中保持不变
SrcTermID String    21 短消息发送方号码
DestTermIDCount Integer 1 短消息接收号码总数 短消息接收号码总数(<=100),用于实现群发短消息
DestTermID
String 21*n 短消息接收号码 单个号码不足21位应左对齐,右补0x00;(对于mt消息,DestTermID连续存储DestTermIDCount个号码。)
MsgLenght Integer 1 短消息长度 指MsgCentent域的长度,取值大于或等于0;对于mt消息,取值小于或等于140.
MsgCentent String
短消息内容

当IsReport=1时,MsgCentent中内容为状态报告。

Reserve String 8 保留 保留字段


2、Submit_Resp

字段 数据类型 长度(字节) 说明 可能的值
MsgID String 10 短消息流水号(唯一标识一条短消息)
Status Integer 4 请求返回结果


短消息网关(smgw)向服务提供商(sp)下发短消息的操作(Deliver)

1、Deliver

字段 数据类型 长度(字节) 说明 可能的值
MsgID
String
10 短消息流水号(唯一标识一条短消息)

IsReport
Integer 1 是否为状态报告 0(=不是状态报告),1(=是状态报告),其它保留
MsgFormat
Integer 1 短消息格式(内容体的编码格式)
0【=ascii编码】,3【=短消息写卡操作】,4【=二进制短消息】,8【=ucs2编码】,15【=GB18030编码】,246(F6)【(u)sim相关消息】
ReveTime String 14 短消息接收时间 smgw接收到短消息的时间(格式为:YYYYMMDDHHMMSS)
SrcTermID
String 21 短消息发送号码
DestTermID
String 21 短消息接收号码
MsgLenght
Integer
1
短消息长度
指MsgCentent域的长度,取值大于或等于0;对于mt消息,取值小于或等于140.
MsgCentent
String

短消息内容
当IsReport=1时,MsgCentent中内容为状态报告。
Reserve
String
8 保留
保留字段

2、Deliver_Resp

字段 数据类型 长度(字节) 说明 可能的值
MsgID String 10 短消息流水号(唯一标识一条短消息)
Status Integer 4 请求返回结果



你可能感兴趣的:(smgp-api分析)