代码:--------------------------------------------------------------------------------
目前手机短信息的应用越来越广泛,互联网上提供短信息发送的站点也越来越多,但一些站点的服务并不尽如人意,往往发出去的短信息石沉大海。最可靠的发送方法当然是用手中的手机了,如果设置了状态报告,更能确切知道对方是否收到了此条信息。手机发送尽管比较可靠, 但也存在输入麻烦、效率低的问题。本文介绍一种方法,只要手机能够与电脑相连(通过红外端口或用手机数据线连接串行口,同时手机支持gsm at指令集),就可以通过自行编制的短信息发送软件,实现短信息的发送。
现在市场上的大多数手机均支持类似于modem控制的gsm at指令集,该指令集是由诺基亚、爱立信、摩托罗拉和hp等厂家共同为gsm系统研制的,其中包含了对sms(short message service)的控制。
gsm at相关指令的介绍
与sms有关的gsm at指令如表1所示:
表1 相关的gsm at指令
对sms的控制共有三种实现途径:
block mode;
基于at命令的text mode;
基于at命令的pdu mode。
text mode比较简单,多款诺基亚手机均支持该模式。西门子的手机大多只支持pdu模式,pdu模式是发送或接收手机sms信息的一种方法,短信息正文经过十六进制编码后被传送。目前,pdu已取代block mode,因此本文主要探讨pdu模式的发送。
计算机和手机的通信
本文以西门子 s3568i为例,介绍如何实现短信息的发送。
数据线连接
首先,通过s35/25数据线将手机与电脑串行口相连。然后,打开超级终端,选择直接串行口连接,端口参数设为19200速率、无校验、数据位8、停止位1。
红外线连接
如果使用带红外端口的计算机,可以设置与手机的无线连接。首先确认计算机红外端口已打开,并将手机的红外线和收传真/数据功能打开,对接红外端口,计算机系统托盘上应当出现一个红外设备西门子s35(如果没有安装红外监视器,则不显示)。然后,打开超级终端,选择irda上的串行口。
连接测试
点击超级终端工具条上的呼叫按钮,输入at并回车,屏幕上如果出现ok则表明计算机与手机的连接成功,这时就可以输入各类gsm at指令了。
如:查询手机厂家,输入at+cgmi=<cr>,屏幕显示siemens。
通常情况下,执行测试命令at+cmgs=?<cr>,如果返回ok,表明手机支持此指令。该指令的完整语法格式如下:
if pdu mode (+cmgf=0)+cmgs=<length><cr>pdu is given <ctrl-z/esc>
如果短信息格式指令at+cmgf返回的是0,则sms格式为pdu模式,再执行at+cmgs=<数据长度>命令后,手机返回“>”符号并等待输入,输入pdu数据并以^z或esc键结束。
如果信息发送成功,则返回ok,并显示信息号:
+cmgs: <mr>
如果发送失败,则返回如下信息:
+cms error: <err>
pdu数据格式的分析
下面通过对存储在手机中的待发信息的分析,来介绍sms pdu的数据格式。首先,用手机写一条短信息,发送手机号码为13605696031,信息内容为“hello w
| 对此文章发表了评论 |
