CMPP3 消息定义1

来源:互联网 发布:公司取名软件duote 编辑:程序博客网 时间:2024/04/30 20:17
(一)            基本数据类型

Unsigned Integer 

无符号整数

Integer

整数,可为正整数、负整数或零

Octet String

定长字符串,位数不足时,如果左补0则补ASCII表示的零以填充,如果右补0则补二进制的零以表示字符串的结束符

(二)            消息结构

项目

说明

Message Header

消息头(所有消息公共包头)

Message Body

消息体

 

(三)            消息头格式(Message Header

字段名

字节数

类型

描述

Total_Length  

4

Unsigned Integer

消息总长度(含消息头及消息体)

Command_Id

4

Unsigned Integer

命令或响应类型

Sequence_Id

4

Unsigned Integer

消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)

 

(四)            业务提供商(SP)与互联网短信网关(ISMG)间的消息定义

SP为客户端,向作为服务器端的ISMG发起连接请求,在通过身份验证之后SPISMG之间方可进行数据传输。

1.        SP请求连接到ISMGCMPP_CONNECT)操作

CMPP_CONNECT操作的目的是SPISMG注册作为一个合法SP身份,若注册成功后即建立了应用层的连接,此后SP可以通过此ISMG接收和发送短信。

ISMGCMPP_CONNECT_RESP消息响应SP的请求。

CMPP_CONNECT消息定义(SPàISMG

字段名

字节数

属性

描述

Source_Addr 

6

Octet String

源地址,此处为SP_Id,即SP的企业代码。

AuthenticatorSource

16

Octet String

用于鉴别源地址。其值通过单向MD5 hash计算得出,表示如下:

AuthenticatorSource =

MD5Source_Addr+9 字节的0 +shared secret+timestamp

Shared secret 由中国移动与源地址实体事先商定,timestamp格式为:MMDDHHMMSS,即月日时分秒,10位。

Version

1

Unsigned Integer

双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号),对于3.0的版本,高4bit3,低4位为0

Timestamp

4

Unsigned Integer

时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐

CMPP_CONNECT_RESP消息定义(ISMG à SP

字段名

字节数

属性

描述

Status

4

Unsigned Integer

状态

0:正确

1:消息结构错

 2:非法源地址

 3:认证错

 4:版本太高

  5~ :其他错误

AuthenticatorISMG

16

Octet String

ISMG认证码,用于鉴别ISMG

其值通过单向MD5 hash计算得出,表示如下:

AuthenticatorISMG =MD5Status+AuthenticatorSource+shared secret),Shared secret 由中国移动与源地址实体事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。

 认证出错时,此项为空。

Version

1

Unsigned Integer

服务器支持的最高版本号,对于3.0的版本,高4bit3,低4位为0

 

2.        SPISMG请求拆除连接(CMPP_TERMINATE)操作

CMPP_TERMINATE操作的目的是SPISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后SPISMG之间的应用层连接被释放,此后SP若再要与ISMG通信时应发起CMPP_CONNECT操作。

ISMGSPCMPP_TERMINATE_RESP消息响应请求。

CMPP_TERMINATE消息定义(SPàISMGISMG à SP

无消息体。

CMPP_TERMINATE_RESP消息定义(SPàISMGISMG à SP

无消息体。

 

3.        SPISMG提交短信(CMPP_SUBMIT)操作

CMPP_SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信。

ISMGCMPP_SUBMIT_RESP消息响应。

CMPP_SUBMIT消息定义(SPàISMG

字段名

字节数

属性

描述

Msg_Id

8

Unsigned Integer

信息标识。

Pk_total

1

Unsigned Integer

相同Msg_Id的信息总条数,从1开始。

Pk_number

1

Unsigned Integer

相同Msg_Id的信息序号,从1开始。

Registered_Delivery

1

Unsigned Integer

是否要求返回状态确认报告:

0:不需要;

1:需要。

Msg_level

1

Unsigned Integer

信息级别。

Service_Id

10

Octet String

业务标识,是数字、字母和符号的组合。

Fee_UserType

1

Unsigned Integer

计费用户类型字段:

0:对目的终端MSISDN计费;

1:对源终端MSISDN计费;

2:对SP计费;

3:表示本字段无效,对谁计费参见Fee_terminal_Id字段。

Fee_terminal_Id

32

Octet String

被计费用户的号码,当Fee_UserType3时该值有效,当Fee_UserType012时该值无意义。

Fee_terminal_type

1

Unsigned Integer

被计费用户的号码类型,0:真实号码;1:伪码。

TP_pId

1

Unsigned Integer

GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.9

TP_udhi

1

Unsigned Integer

GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐。

Msg_Fmt

1

Unsigned Integer

信息格式:

0ASCII串;

3:短信写卡操作;

4:二进制信息;

8UCS2编码;

15:含GB汉字。。。。。。

Msg_src

6

Octet String

信息内容来源(SP_Id)

FeeType

2

Octet String

资费类别:

01:对“计费用户号码”免费;

02:对“计费用户号码”按条计信息费;

03:对“计费用户号码”按包月收取信息费。

FeeCode

6

Octet String

资费代码(以分为单位)。

ValId_Time

17

Octet String

存活有效期,格式遵循SMPP3.3协议。

At_Time

17

Octet String

定时发送时间,格式遵循SMPP3.3协议。

Src_Id

21

Octet String

源号码。SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码。

DestUsr_tl

1

Unsigned Integer

接收信息的用户数量(小于100个用户)

Dest_terminal_Id

32*DestUsr_tl

Octet String

接收短信的MSISDN号码。

Dest_terminal_type

1

Unsigned Integer

接收短信的用户的号码类型,0:真实号码;1:伪码。

Msg_Length

1

Unsigned Integer

信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节),取值大于或等于0

Msg_Content

Msg_length

Octet String

信息内容。

LinkID

20

Octet String

点播业务使用的LinkID,非点播类业务的MT流程不使用该字段。

 

系统应该支持短信的群发功能,关于短信群发功能的实现请参阅“附录1 短信群发功能的实现”。

CMPP_SUBMIT_RESP消息定义(ISMG à SP

 

字段名

字节数

属性

描述

Msg_Id

8

Unsigned Integer

信息标识,生成算法如下:

采用64位(8字节)的整数:

(1)时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中

bit64~bit61:月份的二进制表示;

bit60~bit56:日的二进制表示;

bit55~bit51:小时的二进制表示;

bit50~bit45:分的二进制表示;

bit44~bit39:秒的二进制表示;

(2)短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中;

(3)序列号:bit16~bit1,顺序增加,步长为1,循环使用。

各部分如不能填满,左补零,右对齐。

SP根据请求和应答消息的Sequence_Id一致性就可得到CMPP_Submit消息的Msg_Id

Result

4

Unsigned Integer

结果:

0:正确;

1:消息结构错;

 2:命令字错;

 3:消息序号重复;

4:消息长度错;

5:资费代码错;

6:超过最大信息长;

7:业务代码错;

8:流量控制错;

9:本网关不负责服务此计费号码;

10Src_Id错误;

11Msg_src错误;

12Fee_terminal_Id错误;

13Dest_terminal_Id错误;

……

 

4.        SPISMG查询发送短信状态(CMPP_QUERY)操作

CMPP_QUERY操作的目的是SPISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。ISMGCMPP_QUERY_RESP应答。

 

 

CMPP_QUERY消息的定义(SPàISMG

字段名

字节数

属性

描述

Time

8

Octet String

时间YYYYMMDD(精确至日)

Query_Type

1

Unsigned Integer

查询类别:

0:总数查询;

1:按业务类型查询。

Query_Code

10

Octet String

查询码。

Query_Type0时,此项无效;当Query_Type1时,此项填写业务类型Service_Id.

Reserve

8

Octet String

保留。

 

CMPP_QUERY_RESP消息的定义(ISMG àSP

字段名

字节数

属性

描述

Time

8

Octet String

时间(精确至日)

Query_Type

1

Unsigned Integer

查询类别:

0:总数查询;

1:按业务类型查询。

Query_Code

10

Octet String

查询码。

MT_TLMsg

4

Unsigned Integer

SP接收信息总数。

MT_Tlusr

4

Unsigned Integer

SP接收用户总数。

MT_Scs

4

Unsigned Integer

成功转发数量。

MT_WT

4

Unsigned Integer

待转发数量。

MT_FL

4

Unsigned Integer

转发失败数量。

MO_Scs

4

Unsigned Integer

SP成功送达数量。

MO_WT

4

Unsigned Integer

SP待送达数量。

MO_FL

4

Unsigned Integer

SP送达失败数量。

原创粉丝点击