Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1089476
  • 博文数量: 169
  • 博客积分: 12306
  • 博客等级: 上将
  • 技术积分: 1299
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-29 14:55
文章分类

全部博文(169)

文章存档

2012年(18)

2011年(78)

2010年(15)

2009年(1)

2008年(11)

2007年(39)

2006年(7)

我的朋友

分类: 系统运维

2011-04-02 17:24:41

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
60254F1A4E8654754F604
E5F4E0D898157284E006
B21751F76EE8FDB665A
70B954275417662F4E00
4E2A4E1C5F20897F6211
4E0D662F62117231597D
4E86541754758BBE7F6E
597D597D554A51765B83
662F554A5475547554754
F607684547562A4

数据内容

第二条

0891683108100005F0

SMSC 地址

44

有协议头标志

0D91683118216553F6

回复地址

0008

TP-PID TP-DCS

60403011145423

时间戳 (TP-SCTS)

26

用户信息长度 (TP-UDL)

05

协议头的长度

00

标志这是个分拆短信

03

分拆数据元素的长度

39

唯一标志(用于把两条短信合并)

02

一共两条

02

这是第二条

81EA4ECE524D5C317761
7740542754755475007A0
07A006C0076006C006F0
07A

数据

 

阅读(3304) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~