使用AT指令给飞信号发短信=失败=[已经成功]
使用AT指令给飞信号发短信失败
目标:
8612 5201 5923 1840 63
6821 2510 9532 8104 36
682125109532810436
信息内容
土豆小姐
\u571f\u8c46\u5c0f\u59d0
571F 8C46 5C0F 59D0
571F8C465C0F59D0
16/2=8=>08
08571F8C465C0F59D0
0891683108200305F01000D9168212510953281043600080008571F8C465C0F59D0
1000D9168212510953281043600080008571F8C465C0F59D0
addr=0891683108200305F0
phone=682125109532810436
msg=08571F8C465C0F59D0
phone=11000D91+phone
phone=11000D91682125109532810436
phone=phone+000800+msg
phone=11000D9168212510953281043600080008571F8C465C0F59D0
11000D9168212510953281043600080008571F8C465C0F59D0
50/2=25
addr+phone=
0891683108200305F011000D9168212510953281043600080008571F8C465C0F59D0
2013年04月06日01时37分55秒
AT+CMGF=0
OK
AT+CMGS=25
> 0891683108200305F01000D9168212510953281043600080008571F8C465C0F59D0
ERROR
AT+CMGF=0
OK
AT+CMGS=25AT+CMGS=25
ERROR
AT+CMGS=25
> 0891683108200305F011000D9168212510953281043600080008571F8C465C0F59D0
ERROR
与发送成功的对比:
at+cmgs=25
> 0891683108200305F011000D91685112059236F90008000A5DE54F5C61095FEBFF01
+CMGS: 159
0891 丨683108200305F0丨11000D91丨685112059236F9丨000800丨0A丨5DE54F5C61095FEBFF01
0891丨 683108200305F0丨11000D91丨682125109532810436丨000800丨08丨571F8C465C0F59D0
那么,如果短信号码不加86呢?
0891丨 683108200305F0丨11000D91丨682125109532810436丨000800丨08丨571F8C465C0F59D0
变成
0891丨 683108200305F0丨11000D91丨2125109532810436丨000800丨08丨571F8C465C0F59D0
也就是
0891683108200305F011000D91212510953281043600080008571F8C465C0F59D0
相应指令改为
AT+CMGF=0
AT+CMGS=24
解雇也是错误,这是为什么?怎么解决?
AT+CMGF=0
OK
AT+CMGS=24
> 0891683108200305F011000D91212510953281043600080008571F8C465C0F59D0
ERROR
=====
2013年4月6日 16:25:13
at+cmgf=0
OK
at+cmgs=26
> 0891683108200315F0110010A121251095328104360008000A5DE54F5C61095FEBFF01
+CMGS: 168OK
通过EM310_AT收到的短信分析 这篇文章的分析,可以知道飞信号码的部分参数和我们的不同.
1.目标号码不需要加86
2.号码长度也不再是0D了,而是10(16)=16位.1252015923184063=>5+11=16位.
3.号码类型不再是91,而是A1.
号码类型为A1=1010 0001,不再是91=1001 0001,
//从 001—国际 变化 为 010—国内
示例:
0891683108200315F0110010A121251095328104360008000A5DE54F5C61095FEBFF01
拆分成几个部分:
0891683108200315F0|1100|10A12125109532810436|000800|0A5DE54F5C61095FEBFF01
第一部分|1100|第二部分|000800|第三部分
短信中心|1100|目标号码|000800|数据部分
1.短信中心:0891683108200305F0
- 长度指示(包括了号码类型的长度)91683108200305F0共有16/2=8=>0x08
- 号码类型 91
91 //主叫短信中心号码类型’91是TON/NPI遵守International/E.164标准,指在号码前需加‘+’号
91—10010001 //每一位数字转换为4位二进制数,各位分别表示:
1 固定值
001 //数值类型(Type of Number):000—未知,001—国际,010—国内,111—留作扩展;
0001//号码鉴别(Numbering plan identification):0000—未知,0001—ISDN/电话号码(E.164/E.163),1111—留作扩展;
- 短信中心号码 683108200305F0
固定1100
2.目标号码:10A12125109532810436
- 长度指示(不包括号码类型的长度)10
- 号码类型A1
- 号码(无86)12125109532810436
固定0008000
3数据部分:0A5DE54F5C61095FEBFF01
- 长度指示0A
- 原始数据(Unicode表示)5DE54F5C61095FEBFF01
at+cmgs=26 这里的26是怎么来的呢?
是110010A121251095328104360008000A5DE54F5C61095FEBFF01,也就是第一部分(短信中心)后面的长度/2
52/2=26.
最后发送的内容是:
0891683108200315F0110010A121251095328104360008000A5DE54F5C61095FEBFF01