|
供猴大解决长短信参考
目前短信规范都是GSM 03.40, 而GSM 03.40规范(TP-06 1999-12-15 7.4.0)中规定了SME对于超长短信的合并处理,当前绝大部分GSM手机都支持超长短信.0 ~+ l- n: w$ F* h0 x; |
- e; g" N- i" \9 T' V2 F
超长短信编码:首先把TP_udhi的值设置设置为1,在消息正文中增加协议头,基本上所有特殊短信这样设置它为1
$ L) @+ z/ a$ R' F( }接着在每条超长短信分割而成的短信中增加协议头,协议头分两种,分别是长度为6和长度为7的协议头。格式如下:( c9 ?! V8 A- C; W4 R7 o" T
6位协议头格式:05 00 03 XX MM NN
( `+ m, e2 Y* S9 vbyte 1 : 05, 表示剩余协议头的长度$ k9 A3 U6 A& Y$ k
byte 2 : 00, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。
. L/ v& \9 O9 _. x0 nbyte 3 : 03, 这个值表示剩下短信标识的长度
/ h- h0 j5 f, u0 K! b1 Obyte 4 : XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很重要。
- O1 V! G6 l; ]* H8 A+ q# gbyte 5 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
7 g9 J( n1 M9 R- P& p' r: Abyte 6 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
; _. a5 N! I. m. }例如:05 00 03 39 02 01
. j, G& ~6 `) v: n8 c$ y7位的协议头格式:06 08 04 XX XX MM NN
/ p) b+ ~7 w( q6 P( kbyte 1 : 06, 表示剩余协议头的长度
, U, V9 J/ ~! ~% z5 @* P1 sbyte 2 : 08, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为2(格式中的XX值)。1 g0 p b0 ?/ ^: z; `! s$ `
byte 3 : 04, 这个值表示剩下短信标识的长度
1 f& G% ~1 t% X/ D2 W! kbyte 4-5 : XX XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很重要。4 U" D) {7 `- Q: v% y, V
byte 6 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。, n ^; y/ g; W+ T7 P4 b
byte 7 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。& D0 Y; ?; z( f+ \4 N) \+ }* X
例如:06 08 04 00 39 02 01
7 }3 y4 l, y5 _9 a: V- H9 j( T: x2 H5 q% x
因为一般一个BYTE计算超长短信的标志即可,一般编码使用6位协议头 |
评分
-
查看全部评分
|