<P>看来接触过这方面的人不多,我来简单谈一下吧,自己写的,有些地方可能不是很严谨。</P>
<P>对于用户输入的号码,可以用分为三类:</P>
<P>1。普通拨号,包括语音拨号及数据拨号,拨号用的AT命令是ATD,这种命令返回的是拨号的状态:是否拨通等等。</P>
<P>2。SS(Supplementary Service),具体请参看gsm 02.04.这部分是用于手机的一些网络设置的,也包括*#06#查看IMEI号和其他的如修改PIN码等命令。拨号同样也用的是ATD,但返回的结果会各不相同,如ATD*#06#,返回的是IMEI号;ATD*#43#返回的是Call Waiting状态等等。 我的理解是,早期的gsm手机并没有现在这么强的MMI,根本没有专门的界面去做一些网络设置,只有通过这种拨号的方式去完成,现在的手机为了保持兼容,仍然保留了这种方式。 现在的有些module已经不支持这种方式了,MMI这个时候就要把号码解析,转成相对应的命令去完成。</P>
<P>3。USSD(Unstructured SS Data),具体参照GSM 02.90。使用的AT命令是AT+CUSD。这部分可能很多人都不知道,因为国内好像基本上没有开通这个服务,台湾有这个服务,但服务做得很简单(2000年前后的情况),当年为这个功能我们是专门跑到香港调试的。我想大家首先想知道的应该是USSD能做什么?STK应该都知道,简单一些说的话,USSD功能与STK功能类似,只是一个是存在SIM卡中,一个是放在电信的服务器上。首先把用户输入的一个相当于接入号的号码送出,服务器端会返回一个类似于STK功能的菜单,按照菜单的提示用户可以继续输入其选项,再次发送,服务器端会根据用户的反馈,返回过来下一个菜单。基本上对用户的使用来说,USSD同STK没有太大的差别。有条件的可以用香港的网络试用一下就清楚是怎么回事了,接入的号码我已经忘了毕竟这么多年过去了。</P>
<P>总结:对于用户输入的号码,MMI需要对其进行分析判断,确认号码所属的类型:是普通拨号 SS 还是USSD,然后再调用相关的函数或是AT命令进行操作。对于如何判断,请参照上面列出的两个文档,<B>认真</B>研读。</P>
[此贴子已经被作者于2006-5-11 12:29:34编辑过] |