- AT+CMGF=0
- AT+CMGS=25
- >08 91683110401505F0 11000D91685152909593F60008000A5DE54F5C61095FEBFF01
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 |