天天看点

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

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
RP UDHI SRR SRI VPF RD MMS MTI
1 1

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 描述
1 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 描述
1 08h USC2(16bit)双字节字符集,无短信种类信息
1 1 18h USC2(16bit)双字节字符集,短信种类:CLASS0
1 1 1 19h USC2(16bit)双字节字符集,短信种类:CLASS1
1 1 1 1Ah USC2(16bit)双字节字符集,短信种类:CLASS2
1 1 1 1 1Bh USC2(16bit)双字节字符集,短信种类:CLASS3