金笛工业手机论坛  

返回   金笛工业手机论坛 > 开发者乐园 > 短信开发资料

短信开发资料 短信开发技巧,代码分析

回复
 
LinkBack 主题工具 显示模式
旧 2009-10-15   #1 (permalink)
高级会员
 
注册日期: 2009-07-09
住址: 北京海淀
帖子: 192
lihb 正向着好的方向发展
默认 SMS程式开发

九十年代初,AT命令仅被用于modem操作。由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS Block Mode的协议,通过终端设备(TE)或电脑来完全控制SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研制了一整套AT命令,其中包含对SMS的控制。AT命令在此基础上演化并被加入GSM 07.05标准,以及之后的GSM 07.07标准。

对SMS的控制共有三种实现途径:

· 最初的Block Mode;

· 基于AT命令的Text Mode;

· 基于AT命令的PDU Mode;

到现在,PDU已取代Block Mode,后者逐渐淡出。

什么是PDU Mode?

它是发送或接收手机SMS消息的一种方法。消息正文经过十六进制编码后进行传送。

PDU命令有哪些?

基本的PDU命令是AT+CMGR,AT+CMGL,AT+CMGS。例如读取电话上全部未读过的SMS消息,最简单的办法是用AT+CMGL=0;而用AT+CMGL=4则可读取全部SMS消息,无论已读过与否。

实例:

15:38:58 TX:AT
15:39:05 TX:AT+CPMS="ME"
15:39:05 RX:AT+CPMS="ME"
15:39:05 RX:
+CPMS: 15,15,4,10,15,15

15:39:05 RX:
OK

15:39:07 TX:AT+CMGL=0
15:39:07 RX:AT+CMGL=0
15:39:07 RX:
+CMGL: 5,0,,52

15:39:07
RX:07914408020033F40407D0B1582C0600000030525183920028D43708
2E7FD3CB633A888E2E83EE6F399B0C32CBDF6D10B96C0FCFE9617AFAED76B95C
15:39:07 RX:
OK

使用工具对上述收到的SMS进行解码后,可得到如下的解释:

IEI: 00
LENGTH: 00
MESSAGE REF: 00
STATUS: 00
SC Address length: 07
SC Address type: 91
Type of number: International
Numbering plan identifier: E.164
SC Address: 44802000334
Message Type Indicator: 04
Message Type: SMS-DELIVER / SMS-DELIVER REPORT
More Messages To Send: No
Status Report Indication: No
Reply Path: No
Originating Address Length: 07
Originating Address type: D0
Type of number: Alphanumeric
Numbering plan identifier: Unknown
Originating Address: 1B85C260
Decoded: 1111
Protocol Identifier: Default
Data Coding Scheme: GSM Default Alphabet
SC Timestamp: 00305251839200
decoded: 00/03/25 15:38:29
Time Zone: GMT+0.00H
User Data Length: 28
decimal: 40
Message: To protect the world from devastation

于是我们知道这条SMS消息的第一部分是:

07914408020033F4

07是跟在服务中心地址内的字节数;
91是TON/NPI。TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还可有其他数值,但91最常用到。
44080200033F4是所使用的服务中心地址,由于位置上略有处理,实际号码应为:
44802000334F(字母F意指长度减1),这就是服务中心的准确地址(号码)。

下一单元是:

04

这是文件头字节(header byte, 是一种bitmask)。将每个字节设为1时,有如下含义:

10000000
回复路径(Reply Path):移动电话可循发送SMS消息的短消息中心进行回复(但并非所有SMSC都会这样设置)。

01000000
TP-UDH - 带有用户数据文件头

00100000
TP-Status-Report-Indication - 发送状态报告给发信人,表示消息收到

00010000
00001000
此两类在正常的移动终接短消息(MT,Mobile Terminated SMS)中不会使用。

00000100
TP-More Messages to Send - SMSC内再无新消息发送给该移动电话。

00000010
00000001
最后两个位数表示消息种类 - 10指是移动终接短消息(MT),01指移动起始短消息(MO,Mobile Originated SMS)。

所以"04"指此条消息是正常的移动终接短消息,SMSC内再无新消息发送给该手机。
lihb 当前离线   回复时引用此帖
回复

书签


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 15:38


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.