1)背景
目前我们的短信发送基本上就是超过140字节(甚至更少)就切分(移动普通短信超过140个字节甚至都发送不了,联通倒是可以),然后分几条发给客户,而且也不能保证顺序,用户体验不好,
运营这边抱怨说精简再精简还是超过了字数,于是长短信的支持就成为必须的事情了。
2)原理
2.1)长短信的协议和普通短信的协议稍有不同
2.1.1) TP_udhi=1
在Msg_content中加入6个字节或者7个字节的udhi头做为前缀
2.1.2)6个字节的TP_udhi协议头
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
2.1.3)7个字节的TP_udhi协议头
06 08 04 XX XX MM NN
byte 1 : 06, 表示剩余协议头的长度
byte 2 :