MAS接口协议:通道对接CMPP2.0网关协议 下载本文

Octet String 定长字符串,位数不足时,如果左补0则补ASCII表示的零,如果右补0则补二进制的零 7.2消息结构

项目 Message Header Message Body

说明 消息头(所有消息公共包头) 消息体 7.3 消息头格式(Message Header)

字段名 Total_Length Command_Id Sequence_Id 字节数 4 4 4 类型 Unsigned Integer Unsigned Integer Unsigned Integer 描述 消息总长度(含消息头及消息体) 命令或响应类型 消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同) 7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义

7.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作

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

7.4.1.1 CMPP_CONNECT消息定义(SP?ISMG) 字段名 字节数 属性 描述 Source_Addr 6 Octet String 源地址,此处为SP_Id,即SP的企业代码。 其值通过单向MD5 AuthenticatorSource 16 Octet String 用于鉴别源地址。hash计算得出,表示如下: AuthenticatorSource = MD5(Source_Addr+9 字节的0 +shared secret+timestamp) Shared secret 由中国移动与源地址实Page 13 of 34 Page 13 of 34

Version Timestamp 1 4 Unsigned Integer Unsigned Integer 体事先商定,timestamp格式为:MMDDHHMMSS,即月日时分秒,10位。 双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号) 时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐 。 7.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG ? SP) 字段名 字节数 描述 属性 1 Unsigned 状态 Status Integer 0:正确 1:消息结构错 2:非法源地址 3:认证错 4:版本太高 5~ :其他错误 ISMG认证码,用于鉴别ISMG。 其值通过单向MD5 hash计算得出,表示如下: AuthenticatorISMG =MD5(Status+AuthenticatorSource+shared secret),Shared secret 由中国移动与源地址实体事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。 认证出错时,此项为空。 服务器支持的最高版本号 AuthenticatorISMG 16 Octet String Version 1 Unsigned Integer 7.4.2 SP或ISMG请求拆除连接(CMPP_TERMINATE)操作

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

ISMG或SP以CMPP_TERMINATE_RESP消息响应请求。

7.4.2.1 CMPP_TERMINATE消息定义(SP?ISMG或ISMG ? SP)

无消息体。

7.4.2.2 CMPP_TERMINATE_RESP消息定义(SP?ISMG或ISMG ? SP)

无消息体。

Page 14 of 34 Page 14 of 34

7.4.3 SP向ISMG提交短信(CMPP_SUBMIT)操作

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

7.4.3.1 CMPP_SUBMIT消息定义(SP?ISMG) 字段名 Msg_Id Pk_total Pk_number 字节数 8 1 1 属性 Registered_Del1 ivery Unsigned Integer Unsigned Integer Unsigned Integer Unsigned Integer 描述 信息标识,由SP侧短信网关本身产生,本处填空。 相同Msg_Id的信息总条数,从1开始 相同Msg_Id的信息序号,从1开始 是否要求返回状态确认报告: 0:不需要 1:需要 2:产生SMC话单 (该类型短信仅供网关计费使用,不发送给目的终端) 信息级别 Msg_level Service_Id 1 10 Fee_UserType 1 Unsigned Integer Octet String 业务类型,是数字、字母和符号的组合。 计费用户类型字段 Unsigned 0:对目的终端MSISDN计费; Integer 1:对源终端MSISDN计费; 2:对SP计费; 3:表示本字段无效,对谁计费参见Fee_terminal_Id字段。 被计费用户的号码(如本字节填空,则表示本字段无效,对谁计费参见Fee_UserType字段,本字段与Fee_UserType字段互斥) GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.9 GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐 信息格式 0:ASCII串 3:短信写卡操作 4:二进制信息 8:UCS2编码 15:含GB汉字 。。。。。。 信息内容来源(SP_Id) 资费类别 01:对“计费用户号码”免费 Fee_terminal_Id TP_pId TP_udhi Msg_Fmt 21 Unsigned Integer Unsigned Integer Unsigned Integer 1 1 1 Unsigned Integer Msg_src FeeType 6 2 Octet String Octet String Page 15 of 34 Page 15 of 34

FeeCode Valid_Time At_Time Src_Id 6 17 17 21 Octet String Octet String Octet String Octet String DestUsr_tl 1 Dest_terminal_Id 21*DestUsr_tl Msg_Length 1 Msg_Content Reserve Msg_length 8 Unsigned Integer Octet String Unsigned Integer Octet String Octet String 02:对“计费用户号码”按条计信息费 03:对“计费用户号码”按包月收取信息费 04:对“计费用户号码”的信息费封顶 05:对“计费用户号码”的收费是由SP实现 资费代码(以分为单位) 存活有效期,格式遵循SMPP3.3协议 定时发送时间,格式遵循SMPP3.3协议 源号码 SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码 接收信息的用户数量(小于100个用户) 接收业务的MSISDN号码 信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节) 信息内容 保留 注意:关于短信群发的问题,若SP对于群发消息不要求状态报告的回送时,才可以考虑群发,否则必须逐条发送。

7.4.3.2 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) Page 16 of 34 Page 16 of 34