1.4. 编码示例
1.4.1. 发送信息的 PDU 串:
用手机写一条短信息,发送手机号码为 13605696031 ,信息内容为“ Hello World! ”。通过执行 AT + CMGL=2 可以读出此条信息。
AT + CMGL=2 { 读未发短信息 }
+ CMGL: 1,2,,24 {1 表示信息个数, 2 表示未发信息, 24 表示信息总容量 }
08 91 683108501505F0 11 00 0B 81 3106656930F1 0000FF 0B E8329BFD06DDDF723619
OK
下面分析这条信息:
08 | 短信息中心地址长度。(短信息中心号码类型 + 短信息中心号码长度 /2 的十六进制表示) |
91 | 短信息中心号码类型, 91 是 TON/NPI 。 TON/NPI 遵守International/E.164 标准,指在号码前需加‘+’号 ;此外还可有其他数值,但 91 最常用。 |
683108501505F 0 | 短信息中心号码,是所使用的服务中心地址。由于位置上略有处理,实际号码应为: 8613805515500( 字母 F 意指长度减 1), 这是作者所在地 GSM 短信息中心的号码。( 号码处理方法为 , 如果为 +86 开始 , 将 + 号去掉 ,然后判断是否为偶数 , 不是在末尾补 F, 然后将奇数位和偶数位互换 ) |
11 | 文件头字节 (header byte, 是一种 bitmask) 。这里 11指正常地发送短信息。 |
00 | 信息参考号。( TP-MR ) |
0B | 被叫号码长度。被叫号码长度的十六进制表示。 |
81 | 被叫号码类型。 |
3106656930F 1 | 被叫号码,也经过了移位处理,实际号码为 13605696031。 |
00 | 协议标识 (TP-PID), 是普通 GSM 类型,点到点方式 |
00 | 用户信息编码方式 (TP-DCS) , 7-bit 编码( 08 : UCS2 编码) |
FF | 有效期 (TP-VP), 短信的有效时间 |
0B | 短信息长度 |
E8329BFD06DDDF723619 | 短信息内容“ Hello World! ”。 |
1.4.2. 接受信息的 PDU 串
读取以上发送出来的短信,可以收到如下信息 , 接受到来自 13600554267 的“欢迎“ PDU 串为:0891683108503705F0040D91683106504562F7000830507001021500046B228FCE 。而接受到的“欢迎“ PDU 串为:
0891683108503705F0040D91683106504562F70000305070010201000AE8329BFD4697D9EC37 。对以上的 PDU 串分析如下表:
段 | 含义 | 说明 |
08 | SMSC 地址信息的长度 | 共 8 个八位字节 ( 包括 91) |
91 | SMSC 地址格式 (TON/NPI) | 用国际格式号码 ( 在前面加 ‘+’) |
683108503705F 0 | SMSC 地址 | 8613800573500 ,补 ‘F’ 凑成偶数个 |
04 | 基本参数 (TP-MTI/MMS/RP) | 接收,无更多消息,有回复地址,如果为 00 ,就没有以下关于回复地址的三个段 |
0D | 回复地址数字个数 | 共 13 个十进制数 ( 不包括 91 和‘F’) |
91 | 回复地址格式 (TON/NPI) | 用国际格式号码 ( 在前面加 ‘+’) |
683106504562F 7 | 回复地址 (TP-RA) | 8613600554267 ,补 ‘F’ 凑成偶数个 |
00 | 协议标识 (TP-PID) | 是普通 GSM 类型,点到点方式 |
08 | 用户信息编码方式 (TP-DCS) | UCS2 编码(即中文) |
30507001021500 | 时间戳 (TP-SCTS) | 2003-3-12 08:36:45 +8 时区 |
04 | 用户信息长度 (TP-UDL) | 实际长度 4 个字节 |
6B228FCE | 用户信息 (TP-UD) | “ 欢迎 !” |
1.4.3. 超长短信
所谓超长短信不同的地方无非就是数据报文需要有个拼接的过程,这个详细可以参考 gsm03.40 的 9.2.3 .24.1 段。下面是个例子,表明的是短信的第一条和第二条。
第一条
0891683108100005F0 | SMSC 地址 |
44 | 有协议头标志 |
0D91683118216553F6 | 回复地址 |
0008 | TP-PID , TP-DCS |
60403011142423 | 时间戳 (TP-SCTS) |
8C | 用户信息长度 (TP-UDL) |
05 | 协议头的长度 |
00 | 标志这是个分拆短信 |
03 | 分拆数据元素的长度 |
39 | 唯一标志(用于把两条短信合并) |
02 | 一共两条 |
01 | 这是第一条 |
4E8C96F64E005B9A4 F1A597D597D597D76 8465F 665F 665F 695F 4 4E0D597D597D597D7684 | 数据内容 |
第二条
0891683108100005F0 | SMSC 地址 |
44 | 有协议头标志 |
0D91683118216553F6 | 回复地址 |
0008 | TP-PID , TP-DCS |
60403011145423 | 时间戳 (TP-SCTS) |
26 | 用户信息长度 (TP-UDL) |
05 | 协议头的长度 |
00 | 标志这是个分拆短信 |
03 | 分拆数据元素的长度 |
39 | 唯一标志(用于把两条短信合并) |
02 | 一共两条 |
02 | 这是第二条 |
81EA4ECE524D5C317761 | 数据 |