GSM 03.40规范(TP-06 1999-12-15 7.4.0)中规定了SME对于超长短信的合并处理。规范制定至今,已经超过6年,绝大多数正在使用的手机,都支持这一功能。
CMPP协议中,CMPP_SUBMIT_MESSAGE中有两个字段pk_total和pk_numer,恰看起来,这就是发送超长短信的设置参数,其实不然,这两个参数的设置,应该是没有用处。
发送超长短信,需要做两件事情:设置TP_udhi的值设置为1,在消息正文中增加协议头。协议后可以两种格式,分别是长度为6和长度为7的协议头。格式如下:
6位协议头格式:05 00 03 XX MM NN
byte 1 : 05, 表示剩余协议头的长度
byte 2 : 00, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。
byte 3 : 03, 这个值表示剩下短信标识的长度
byte 4 : XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很重要。
byte 5 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 6 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:05 00 03 39 02 01
7位的协议头格式:06 08 04 XX XX MM NN
byte 1 : 06, 表示剩余协议头的长度
byte 2 : 08, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为2(格式中的XX值)。
byte 3 : 04, 这个值表示剩下短信标识的长度
byte 4-5 : XX XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很重要。
byte 6 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 7 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:06 08 04 00 39 02 01
7位协议头和6位协议头的区别是,6位协议头短信的标识字段是1个byte,而7位协议头短信的标志字段为2个byte。大多手机采用6位的协议头,也就是05 00 03 XX MM NN。
发送的短信这么处理,接受短信反过来就可以了。上述内容,在CMPP协议以及多款手机上经过测试验证。
分享到:
相关推荐
运行稳定。经过五年在线运行,目前在全国有超过100家SP采用CMPP2API接口库。 效率高,资源占用率低。...支持自动重连,活动检测,超长短信的功能。参数定制性强,可以同时连接多个网关进行消息收发。
15、为了防御网络监听,最常用的方法是 ()[单选题] * A、采用物理传输(非网络) B、信息加密(正确答案) C、无线网 D、使用专线传输 16. 16、向有限的空间输入超长的字符串是哪一种攻击手段?()[单选题] * A、缓冲...
实例178 超长文本的分页显示 276 实例179 查询结果的分栏显示 278 实例180 分类、分栏和分页的综合应用 279 第7章 PHP与其他数据库技术 283 7.1 PHP操纵ACCESS数据库 284 实例181 通过ADO方式连接ACCESS...
实例307 打印超长字符串自动换行 实例308 批量打印文档 实例309 实现横向打印 实例310 设置打印纸大小 实例311 获取打印纸的左边距和上边距 10.11 打印预览 实例312 修改文档/视图结构默认的打印预栏工具栏 ...
实例307 打印超长字符串自动换行 实例308 批量打印文档 实例309 实现横向打印 实例310 设置打印纸大小 实例311 获取打印纸的左边距和上边距 10.11 打印预览 实例312 修改文档/视图结构默认的打印预栏工具栏 ...
cc实例235 SQL语句的应用方法 cc实例236 SQL语句的模糊查询 cc实例237 利用查询语句复制表结构 9.2 查询控件 cc实例238 查询指定控件内字符串 cc实例239 查询日期控件内数据 cc实例...
cc实例235 SQL语句的应用方法 cc实例236 SQL语句的模糊查询 cc实例237 利用查询语句复制表结构 9.2 查询控件 cc实例238 查询指定控件内字符串 cc实例239 查询日期控件内数据 cc实例...
3.3 图片效果 cc实例089 图片马赛克效果 cc实例090 图片百叶窗效果 cc实例091 电影胶片特效 cc实例092 翻转图片效果 3.4 图片颜色转换 cc实例093 图像的锐化处理 cc实例094 图片反色处理 cc实例095 ...