[Android][N/A][SMS]PDU解析——利用AT指令发送CLASS分类短信

来源:互联网 发布:淘宝立即购买灰色 编辑:程序博客网 时间:2024/03/29 17:35



AT+CMGF=0                    AT+CMGS=25                >08 91683110401505F0 11000D91685152909593F60008000A5DE54F5C61095FEBFF01

这是利用AT指令发送短信的格式。短信的种类设置就隐藏在pdu编码中,首先了解PDU。

将上述pdu编码分成数段,

“0891683110401505F0”+“11”+“00”+“0D91685152909593F6”+“00”+“08”+“00”+“0A”+“5DE54F5C61095FEBFF01”

pdu各段含义如下:

元素

名称

长度

描述

SCA

Service Center Address

1-12

短消息服务中心号码

PDU-Type

Protocol Data Unit

1

协议数据单元类型

MR

Message Reference

1

所有成功的短信发送参考数目(0..255)

OA/DA

Originator Address

/Destination Address

2-12

发送方地址(手机号码)

/接收方地址(手机号码)

PID

Protocol Identifer

1

消息中心以何种方式处理消息内容(比如FAX,Voice)

DCS

Data Coding Scheme

1

用户数据编码方案

SCTS/VP

Service Center Time Stamp

/Validity Period

7

消息中心收到消息时的时间戳

/参数显示消息有效期

UDL

User Data Lenghth

1

用户数据长度

UD

User Data

0-140

用户数据

 

1.SCA:短消息服务中心号码-“0891683110401505F0”

 

Length

Type

Address

08

91

683110401505F0

 

Length是Type+Address长度除以2

Type是短信中心号码类型:81指国内的号码 ,91指国际的号码

Address是短信中心号码8613010451500,做了F补位+奇偶位对换

 

 

2.PDU-Type:协议数据单元类型-“11”

 

11h=00010001b

Bit No.

7

6

5

4

3

2

1

0

 

RP

UDHI

SRR

SRI

VPF

RD

MMS

MTI

 

0

0

1

0

0

1

0

0

 

RP:应答路径:0-未设置 ,1-设置

UDHI:用户数据头标识(User Data Header Indicator):0-用户数据(UD)部分不包含头信息 ,1-用户数据(UD)开始部分包含用户头信息

SRR:请求状态报告(Status Report Request):0-不需要报告,1-需要报告

SRI:状态报告指示(Status Report Indication),此值仅被短消息服务中心设置。0-状态报告将不会返回给短消息实体(SME),1-状态报告将返回给短消息实体(SME)

VPF:有效期格式(Validity Period Format):00-VP段没有提供(长度为0),01-保留,10-VP段以整型形式提供(相对的),11-VP段以8位位组的一半形式提供(绝对的)

RD:拒绝复本(Reject Duplicate):0-通知短消息服务中心(SMSC)接受一个消息(SMS-SUBMIT),即该消息是先前已提交过的,并还存在与SMSC中未发送出去。MS重复的条件是:消息参考(MR)、接收方地址(DA)及发送方地址(OA)相同。1-通知SMSC拒绝一个重复的SMS

MMS:有更多的消息需要发送(More Message to Send),此值仅被SMSC设置。0-在SMSC中有更多的信息等待MS,1-在SMSC中没有更多的信息等待MS

MTI:信息类型指示(Message Type Indicator)



3.MR:所有成功的短信发送参考数目-“00”

 

4.DA/OA:接收方与发送方手机号码-“0D91685152909593F6”

同短信中心号码的处理

 

5.PID:协议标识(Protocol Identifier)-“00”

 

6.DCS:数据编码方案(DataCoding Scheme)-“08”

 

Bit No.

7

6

5

4

3

2

1

0

描述

 

0

0

0

0

1

0

0

0

08h USC2(16bit)双字节字符集

 

Bit No.7与Bit No.6:一般设置为00

Bit No.5:0-文本未压缩,1-文本用GSM标准压缩算法压缩

Bit No.4:0-指示Bit No.1 Bit No.0为保留位,不含信息类型信息,1-指示Bit No.1 Bit No.0含信息类型信息

Bit No.3与Bit No.2:00-默认的字符集,每字符占7bit,此时最大可发送160字符,01-8bit,此时最大可发送140字符,10-USC2(16bit),发送双字节字符集,11-预留

Bit N0.1与Bit No.0:

00-Class 0:Immediate Display,短信内容自动显示在屏幕上,看完自动消失

01-Class 1:Mobile Equipment-specific,会存储在设备上的短信

10-Class 2:SIM specific Message,会存储在SIM卡的短信

11-Class 3:Terminate Equipment-specific,直接到终端设备上的短信

 

7.SCTS/VP:服务中心时间戳/信息有效期-“00”

SCTS/VP

相应的时间

00-8F

(SCTS/VP+1)*5分钟 从5分钟间隔到12小时

90-A7

12小时+(SCTS/VP-143)*30分钟

A8-C4

(SCTS/VP-166)*1天

C5-FF

(SCTS/VP-192)*1周

 

8.UDL:用户数据长度-“0A”

    后面用户数据段的长度除以2,保留2位16进制数


9.UD:用户数据

 

 

因此,如果要选择发送短信的类型,需要修改pdu编码中的DCS字段。

 

Bit No.

7

6

5

4

3

2

1

0

描述

 

0

0

0

0

1

0

0

0

08h USC2(16bit)双字节字符集,无短信种类信息

 

0

0

0

1

1

0

0

0

18h USC2(16bit)双字节字符集,短信种类:CLASS0

 

0

0

0

1

1

0

0

1

19h USC2(16bit)双字节字符集,短信种类:CLASS1

 

0

0

0

1

1

0

1

0

1Ah USC2(16bit)双字节字符集,短信种类:CLASS2

 

0

0

0

1

1

0

1

1

1Bh USC2(16bit)双字节字符集,短信种类:CLASS3

 


1 0