这是独立的一节,关于短信sms解码的一些实际例子,包括收到的短信、发送的短信和短信的状态,网络上的例子比较分散,整理在此以备查找。同时关于短信编解码的官方文档当然是 3gpp的相关文档了,关于短信请参考3gpp 23.040这个文档。
1. ---有短信中心号发送
0891683108705505F0040d91685111975441f9000011707261410523054674be5e07
08 长度 91---5F结束 8对
91 国际号码
683108705505F0 短信中心 ---这里是短信中心的地址 如以00开头,表示没有短信中心
04 pduType ---虽然只有一个字节,却包括了应答路径、用户头数据,状态报告、有效期、消息类型等信息
0d
91
685111975441f9 号码 ---和短信中心的解释一样,只不过这里 0d长度去指68---f9的数字个数,最后一个F是占位用的
00 协议标识
00 编码方案 7bit
11707261410523 年月日时分秒时区 --每两个颠倒后就是 11年07月27号16点14分50秒 32是时区
05 数据长度 --- 这个短信正文的长度
4674be5e07 --- 正文,解码就知道是什么了
2. ---无短信中心的
00 无短信中心号
01 pduType 发送
00 通常为00
0b
81
5111975441f9
00
00
02
c532
3. ---长短信的,已经大致上分好了,和普通短信的区别不大
00
41
00
0b818126300532f6
00
00
a0
050003e10201 注意这里 05是长度 从00---01结束 00表示多包 03后面的长度 e1是ID 02表示一共有几段 01表示当前是第几段
8c
e7b34da552dd743a95ce54
abd568349bcd66abd540349acd66b3d5
6a20e3f96c53a954379d4ea533d56a35
1acd66b3d96a35108d66b3d96cb51ac8
00
41
00
0b818126300532f6
00
00
80
050003e10202 --最后一个02表明这是第二段
68369bcd56ab8168349bcd66
abd540c6f3d9a652a96e3a9d4a67aad5
6a349acd66b3d56a201acd66b3d96a35
90f17cb6a954aa9b4ea7d2996ab51a8d
4-- 接收的,一个例子而已,没有新东西
08
91
683108200005F0
04
0c
a1
0156087011200018
11707261611423
8c
0032003765e500310036003a0031003681f40031003500310031003800310036003400310034003977ed4fe19001
8fbe3002000a9999854953ef7f1389e3773c775b75b252b3ff1a7ecf5e3897625bf975358111ff0c6bcf592953ef54030
031002d0032683999998549ff0c53ef4fdd8bc14f53518594be94a05e738861ff0c7f1389e3773c775b4e0d9002
5--短信的状态报告 这个不是很常用,而且解码规则也有点变化,写下说明一下
第一个:
0006080D91683158136777F7602070416530006020704165300000
00 表示无短信中心号;
06 (00000110) 表示这是一个状态报告;
08 与AT发送时状态相对应
0D91683158136777F7 接收方的手机号, 这个好像不是中国内地的号码,
60207041653000 短信中心收到消息的时间;
60207041653000 短信中心处理消息的时间;
00
发送短信的状态,00表示成功;
第二个:
07915862339420F4060108811630424511604111222523116041113250230000
07 (长度) 从91开始至F4 :915862339420F4
其它的和第一个例子解释相同
06
01
088116304245 (08是长度, 81与91的含义类似 16304245 这里不算81的长度 要特别注意。 实际号码61032454 )
11604111222523
11604111325023
0000
就写这么多,如果朋友们有更好的例子,欢迎补充,谢谢