2004-11-24
1.概要
本规范是为了解决客户端所发的短消息过长时而设计
2.名词解释
短消息长度超过协议规定的最大长度的时候,便对它进行拆分发送。
3.消息定义
请查阅CMPP V2.0。
4.拆分规范说明
CMPP协议规定短消息最大长度为140,(DCS非0时)
拆分的消息UDHI字段要置为1表示该消息的内容有头结构。 针对长消息拆分的头结构表示如下: 05 00 03 00 04 01 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 1 2 3 4 5 6 其中头结构各位表示如下 :
1,表示后面的头的长度,不包括自身。 3,表示头结构为拆分的连续短消息。 5,表示拆分的总条数。 6,表示该条为第几条。 具体的参见规范。
后面是编码后的短消息内容。
短消息长度为包括头结构的长度。
例如一条短消息编码后如下要拆分成3条 AAAAAABBBBBBCCCCCC
DCS为8 三条分别为:
05 00 03 00 03 01 00 41 00 41 00 41 00 41 00 41 00 41
4:是0—255的循环递增正整数,标识同一超长消息的子消息(补充:liangqiangzhi)。
05 00 03 00 03 02 00 42 00 42 00 42 00 42 00 42 00 42
05 00 03 00 03 03 00 43 00 43 00 43 00 43 00 43 00 43
三条消息的UDHI都为1
5相关的消息结构体(红色代表注意事项)
CMPP_SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信。 ISMG以CMPP_SUBMIT_RESP消息响应。
5.1 CMPP_SUBMIT消息定义(SPISMG) 字段名 字节数 8 1 属性 Msg_Id(12) Pk_total(20) Pk_number(21) 1 Registered_Del1 ivery(22) Unsigned Integer Unsigned Integer Unsigned Integer Unsigned Integer 描述 信息标识,由SP侧短信网关本身产生,本处填空。 相同Msg_Id的信息总条数,从1开始 相同Msg_Id的信息序号,从1开始 是否要求返回状态确认报告: 0:不需要 1:需要 2:产生SMC话单 (该类型短信仅供网关计费使用,不发送给目的终端) Msg_level(23) Service_Id(24) 1 10 Fee_UserType(34) 1 Unsigned Integer Octet String Unsigned Integer 信息级别 业务类型,是数字、字母和符号的组合。 计费用户类型字段 0:对目的终端MSISDN计费; 1:对源终端MSISDN计费; 2:对SP计费; 3:表示本字段无效,对谁计费参见Fee_terminal_Id字段。 Fee_terminal_Id(35) 21 Unsigned Integer 被计费用户的号码(如本字节填空,则表示本字段无效,对谁计费参见Fee_UserType字段,本字段与Fee_UserType字段互斥) GSM协议类型。详细是解释请参考TP_pId(56) 1 Unsigned Integer GSM03.40中的9.2.3.9 GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐(为长短信时TP_udhi必须置1) 信息格式 0:ASCII串 3:短信写卡操作 4:二进制信息 8:UCS2编码 15:含GB汉字 。。。。。。 TP_udhi(57) 1 Unsigned Integer Msg_Fmt(58) 1 Unsigned Integer Msg_src(59) FeeType(65) 6 2 Octet String Octet String 信息内容来源(SP_Id) 资费类别 01:对“计费用户号码”免费 02:对“计费用户号码”按条计信息费 03:对“计费用户号码”按包月收取信息费 04:对“计费用户号码”的信息费封顶 05:对“计费用户号码”的收费是由SP实现 FeeCode(67) ValId_Time(73) At_Time(90) Src_Id(107) 6 17 17 21 Octet String Octet String Octet String Octet String 资费代码(以分为单位) 存活有效期,格式遵循SMPP3.3协议 定时发送时间,格式遵循SMPP3.3协议 源号码 SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码 DestUsr_tl(128) Dest_terminal_Id(129) Msg_Length (150) Msg_Content Reserve
1 21*DestUsr_tl 1 Msg_length 8 Unsigned Integer Octet String Unsigned Integer Octet String Octet String 接收信息的用户数量(小于100个用户) 接收短信的MSISDN号码 信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节) 信息内容(为长短信时Msg_Conternt必须包括长短信头结构) 保留 注意:关于短信群发的问题,若SP对于群发消息不要求状态报告的回送时,才可以考虑群发,否则必须逐条发送。
5.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消息的Result 1 Msg_Id) 结果 0:正确 1:消息结构错 2:命令字错 3:消息序号重复 4:消息长度错 5:资费代码错 6:超过最大信息长 7:业务代码错 8:流量控制错 9~ :其他错误
Unsigned Integer
因篇幅问题不能全部显示,请点此查看更多更全内容