关于超长短信

CMPP协议中,CMPP_SUBMIT_MESSAGE中有两个字段pk_total和pk_numer,恰看起来,这就是发送超长短信的设置参数,其实否则,这两个参数的设置,应该是没有用处。web

 

发送超长短信,须要作两件事情:设置TP_udhi的值设置为1,在消息正文中增长协议头。协议后能够两种格式,分别是长度为6和长度为7的协议头。格式以下:测试

6位协议头格式:05 00 03 XX MM NNspa

byte 1: 05, 表示剩余协议头的长度orm

byte 2: 00, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。it

byte 3: 03, 这个值表示剩下短信标识的长度webkit

byte 4: XX,这批短信的惟一标志,事实上,SME(手机或者SP)把消息合并完以后,就从新记录,因此这个标志是否惟一并非很重要。协议

byte 5: MM, 这批短信的数量。若是一个超长短信总共5条,这里的值就是5。消息

byte 6: NN, 这批短信的数量。若是当前短信是这批短信中的第一条的值是1,第二条的值是2。参数

例如:05 00 0339 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, 这个值表示剩下短信标识的长度

byte4-5 : XX XX,这批短信的惟一标志,事实上,SME(手机或者SP)把消息合并完以后,就从新记录,因此这个标志是否惟一并非很重要。

byte 6: MM, 这批短信的数量。若是一个超长短信总共5条,这里的值就是5。

byte 7: NN, 这批短信的数量。若是当前短信是这批短信中的第一条的值是1,第二条的值是2。

例如:06 08 0400 39 02 01

 

7位协议头和6位协议头的区别是,6位协议头短信的标识字段是1个byte,而7位协议头短信的标志字段为2个byte。大多手机采用6位的协议头,也就是05 00 03 XX MM NN。

 

发送的短信这么处理,接受短信反过来就能够了。上述内容,在CMPP协议以及多款手机上通过测试验证。

转自bbs.sendsms.cn

相关文章
相关标签/搜索