[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
- [Android][N/A][SMS]PDU解析——利用AT指令发送CLASS分类短信
- [Android][N/A][SMS]PDU解析——利用AT指令发送CLASS分类短信
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解(转)
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU短信详解
- AT指令发送PDU中文短信——使用串口…
- AT指令发送PDU中文短信——使用串口…
- GPRS应用之: AT指令发送PDU短信详解
- gprs模块 at 指令发送短信(txt、pdu)
- gprs模块 at 指令发送短信(txt、pdu)
- 1-7
- plsql_day03
- 【面经】EPIC
- 【Python】Python读取Excel单元格
- library cache pin的简单的场景重现
- [Android][N/A][SMS]PDU解析——利用AT指令发送CLASS分类短信
- 霍夫曼编码压缩
- 蓝桥杯 ALGO-105 黑色星期五(日期)
- WindowsPhone开发如何创建动态启动界面
- 算法——归并排序
- proc_day01
- 算法之美
- iOS系统的一些单例类
- proc_day02