短信PDU编码分析

2018-01-01 21:01卫二兵韦福安
科学与财富 2017年30期
关键词:短信

卫二兵+韦福安

摘要:本文介绍了常用短信的格式,并对7位编码、UCS2编码的短信发送、接收的报文进行了分析。

关键词:短信;GSM;PDU

短信是日常通讯的主要手段,在GSM 03.38、GSM 03.40中定义了其技术实现。短信的收发共有三钟方式,BLOCK方式,TEXT方式和PDU方式。PDU方式被所有的手机和短信通讯设备所支持。本文以具体的短信PDU编码,介绍短信收发的实现。

短信PDU编码,表面上是一串ASCII码,由“0”-“9”、“A”-“F”这些数据和字母组成。它们其实是表示的是16进制数。PDU由短信中心地址(SMSC)和传输协议数据单元(Transfer Protocol Data Unit)组成。PDU可采用三种编码:7位编码、8位编码、UCS2(16位)编码。

在以PDU模式发送短信之前,需要设置短信发送模式为PDU方式:发送AT+CMGF=0(注:表示回车)。

1.短信格式

短信中心号码长度:为S2-S7的字节数。

短信中心号码类型:常用值91,表示采用国际格式电话编码。TON:占3位。001表示国际格式;010表示国内格式。NPI:占4位。0001表示电话编码。

短信中心号码:若为奇数,在最后面补个F。

短信格式。常用设置:发送单条短信時,设置为11;发送长短信时,设置为51。

TP-RP:应答路径。0表示不设置;1表示设置。

TP-UDHL:短信数据头标识。0表示没有信息头;1表示包含信息头。

TP-SRR:状态报告要求。0表示不需要报告,1表示需要报告。

TP-VPF:短信有效期格式。00表示不提供有效期参数;10表示采用相对格式;01表示采用增强格式;11表示采用绝对格式。

TP-RD:设置短信中心可以处理相同短信标识的短信。0表示允许;1表示拒绝。

TP-MTI:短信类型标识。00表示读取短信;01表示发送短信;10表示短信状态报告。

短信标识(TP-MR),常用设置00。

接收方的号码长度,是电话号码的数字长度,不是转换后的字节数。

接收方电话编码类型,与短信中心号码类型相同。

接收方号码,若为奇数,在最后面补个F。

短信类型(TP-PID),常用设置为00,点对点短信。类型定义-Bit7 Bit6:等于00时,表示参照bit0-bit5的参数定义。传输类型-Bit5:等于0时,表示点对点传输;等于1时表示网络传输。信息类型-Bit4-Bit0:等于00000时,表示短信;等于00001时,表示电报……。

数据编码方式(TP-DCS),常用设置00(7位编码)、04(8位编码)、08(UCS2编码)。文本压缩-Bit5:等于0时,禁用文本压缩;等于1时,启用文本压缩。包含信息类别-Bit4:等于0时,表示不启用 Bit1-Bit0设置的信息类别;等于1时为启用。编码类型-Bit3 Bit2:等于00时表示7位编码;等于01时表示8位编码;等于10时表示UCS2编码。信息类别-Bit1 Bit0:00表示短信直接发送;01表示短信先存储到SIM卡或模块,再发送;10先判断模块和SIM卡有没有空闲空间,如果有空闲空间,先保存,再发送;11表示将短信存储到另一个存储设备上。

短信有效期(TP-VP),常用设置为00。 根据【字节编码T1】中TP-VPF参数设置。TP-VPF:00表示采用不提供有效期参数,需要省略此字节;10表示采用相对时间格式,共1个字节,字节范围00-FF,00表示5分钟; 01表示采用增强格式,共7个字节;11表示采用绝对格式,共7个字节。

短信内容长度(TP-UDL)。当编码格式为7位编码时,此值为编码前对应的字节数。当编码格式为8位或UCS2时,此值为D2-DN的字节数。

2.短信发送流程

1)首先发送AT+CMGS=XXX。XXX为传输协议数据单元T1 – DN的字节数。

2)收到“>”符号后,发送PDU串,最后再发送16进制数<1A>。

3)等待接收到返回信息+CMGS:OK,表示短信发送成功。

3.短信PDU编码分析

3.1.发送短信(7位编码)

发送内容:8个 “1”。

PDU串:0891683108504705F011000B913177277712F500000008B1582C168BC562

编码分析:

08短信中心号码长度:8字节

91国际格式电话编码

683108504705F0短信中心号码:8613800574500

11发送短信

00短信标识

0B短信接收方电话号码长度:11个数字,不包括电话编码格式

91国际格式电话编码

3177277712F5接收方手机号:13777277215

00点对点短信

007位编码

00短信有效期,5分钟

08短信内容长度,编码前为8个字节

B1582C168BC562 7位编码的短信内容:11111111

7位编码原理:

3.2.接收短信(7位编码)

接收内容:8个 “1”。

PDU串:0891683108504705F0040D91683177277712F500007190822290432308B1582C168BC562

编码分析:

08短信中心号码长度:8字节

91国际格式电话编码

683108504705F0短信中心号码:8613800574500

04接收短信

0D短信接收方电话号码长度:13个数字,不包括电话编码格式

91国际格式电话编码

683177277712F5接收方手机号:8613777277215

00点对点短信

007位编码

71908222904323短信时间戳:17年09月28日22时09分34秒

08短信内容长度,编码前为8个字节

B1582C168BC562 7位编码的短信内容:11111111

总结:

本文分析了普通短信的7位编码PDU数据包,8位编码和UCS2编码的PDU数据包类似。开发人员可以使用此内容实现短信模块发送、接收短信。

参考文献:

[1]GSM 03.38 Version 5.3.0[S] , ETSI TC-SMG

[2]GSM 03.40 V7.3.0[S], ETSI TC-SMG

猜你喜欢
短信
道歉短信
代发短信
短信笑坛
“八一”节日短信之一
短信档