MS: Mobile Station
SC: Service Centre (used for SMS)
SR:Status Report Message storage
1) SMS-DELIVER
2) SMS-DELIVER-REPORT
3) SMS-SUBMIT
4) SMS-SUBMIT-REPORT,
5) SMS-STATUS-REPORT
6) SMS-COMMAND
1) AT+CNMI=2,1,0,1,1
2) AT+CMGF=0
3) AT+CSCS=”UCS2”
八位元
|
描述
|
00
|
SMSC
长度,此处为零,表示不含短消息中心号码
|
06
|
First octet
字节,即000001
10B
,表示这是一个status report
|
08
|
引用消息号码,就是使用
AT+CMGS
发送短信成功时返回的那个
+CMGS
值,可以一一对应检索状态
|
0D91683158136777F7
|
对应短信接受方手机号码
13853167777
|
60207041653000
|
SMSC
接收到所发送短信的时间
|
60207041653000
|
SMSC
处理并给出状态的时间
|
00
|
对应发送短信的状态,
00
表示成功
|
1) AT+CNMI=2,1,0,2,1
2) AT+CPMS=”SR”,”SM”
3) … …
switch(getMaskByte(pDst->TP_FIRSTOCT, FOD_TP_MTI))
case SMS_STATUS_REPORT:
gsmString2Bytes(pCloneSrc, &tmp, 2); //TP-Message-Reference
pDst->TP_MR = tmp;
pCloneSrc += 2; // 指针后移
gsmString2Bytes(pCloneSrc, &tmp, 2); // 取长度
if(tmp & 1) tmp += 1; // 调整奇偶性
pCloneSrc += 4; // 指针后移,忽略了回复地址(TP-RA)格式
gsmSerializeNumbers(pCloneSrc, pDst->TPA, tmp); // 取TP-RA号码
pCloneSrc += tmp; // 指针后移
gsmSerializeNumbers(pCloneSrc, pDst->TP_SCTS, 14); // 服务时间戳字符串(TP_SCTS)
pCloneSrc += 14; // 指针后移
gsmSerializeNumbers(pCloneSrc, pDst->TP_DT, 14); // 处理时间戳字符串(TP_DT)
pCloneSrc += 14; // 指针后移
gsmString2Bytes(pCloneSrc, &tmp, 2); // TP-Status
pDst->TP_ST = tmp;
break;
case SMS_DELIVER:
default:
… …