SmartDial拔号代码语法详解
如果现在你还不清楚SmartDial是干什么的请移驾Http://MoodSun.Cn/SmartDial/,这上面有SmartDial的介绍。
拔号代码是SmartDial的核心功能,通过拔号代码你可以在打(接)电话时模拟按键、输入卡号、接听或挂断电话等一系列操作。
拔号代码是由一系列的方法调用组合而成一个字符串,从左到右依次执行,如果某个方法执行失败,则整句拔号代码就执行失败,后面的方法就都不执行了。
相信大家使用SmartDial最多的用途就是自动IP拔号了吧,IP拔号其实很简单就是在要拔打的电话号码前面加上一个IP号。
下面以移动IP拔号为例来讲解第一个拔号代码。
移动17951 IP拔号可以这样写拔号代码:
17951N>
下面来解释一下这段代码:
17951N>这句为接入代码,接入代码是指你的电话要连接到的目的号码,比如你想拔打179511381234567那么179511381234567就是接入号码,179511381234567加“>”就是接入代码。
接入代码必须为拔号代码的第一句代码,并且在整个拔号代码中只能包含一个,“>”为接入代码的关键字,17951N为接入代码的参数,接入代码的参数可以是任意数字或N的组合,长度不限。N代表选择的电话,例如:当你启用了“拦截到系统拔号”,拔打1381234567就会被SmartDial拦截到,此时N就代表1381234567了,执行上面的拔号代码就会变成拔打179511381234567。
上面的拔号代码很简单吧只是简单的一句就可实现自动IP拔号,下面来个稍复杂点的。
现在以北京移动(10086)查询余额为例,流程是这样的:首先拔打10086,待接通以后对方首先是一段语音提示,如:欢迎使用北京移动客户服务热线……(如遇节日可能是其它语音提示)注:这段语音提示随便按一个键就可以跳过它,接着提示:话费余额套餐余量及M值查询请按1,必选可选计划及促销请按2……,按1进入查询余额,提示:查询余额请按1,套餐剩余流量请按2……,按1进入查询余额,提示:正在查询请稍后,之后会报出你的余额,大概需要15秒会报完余额,最后挂断电话。
用拔号代码可以这样实现:
10086>C(5)1T(3)1T(2)1T(15)E
下面来解释一下这段代码:
10086>这句为接入代码,上面介绍过这里就不多说了,执行接入代码后电话已经拔出去了,但是否接通了就不知道了。
C(5)这句为等待电话接通的方法,此方法原型为:C(Timeout),Timeout表示超时值(此值可省略),单位为秒,如果Timeout时间过去了电话还未接通则方法执行失败(方法执行失败则整句拔号代码执行失败),也可以这样使用:“C”(无引号),这里省略了参数Timeout表示使用系统默认的超时值,综合上述C(5)的意思为等待电话接通,最多等待5秒。如果电话在2秒钟后就接通了那么就不用等5秒钟了,马上就可以执行完C方法。
1这句为常数代表其本原本含义,常数共有12个,分别是:0-9、*、#,常数的作用是将其原义发送到电话另一端,比如这里的1只是在你的电话上模拟一次按键1的动作。也可以是连续的,比如:13800138000将依次模拟每一个数字的按键动作。这里模拟按下1是为了跳过开头的语音提示。
T(3)这句为无条件等待固定时间的方法,此方法原型为:T(Timeout) ,Timeout表示超时值(此值可省略),单位为秒,直到Timeout的时间过去了此方法才会执行完,注:此方法不会执行失败。也可以这样使用:“T”(无引号),这里省略了参数Timeout表示使用系统默认的超时值,综合上述T(3)的意思为无条件的等待3秒后再向后执行。之所以要等待3秒是因为跳过语音提示后直到下次语音提示选择的时候大概要3秒的时间。
1这句为常数上面提过,模拟按1键进入“查询余额”子项,T(2)等待2秒让它提示下一次的操作步骤,1模拟按1键进入“查询余额”T(15)等待15秒让它报出余额,E挂断电话。
怎么样?是不是很有意思,可以实现自动按键了,下面再来个稍复杂点的,可以自动接电话的。
现在以操作“铁通e秘书回拨卡”为例来讲解,这种回拔卡我没有使用过具体流程我不知道,我编造一个吧。首先拔打15811343255这是接入号码,待听到响铃后挂断电话,呆会对方会打过来(当然这需要提前和你电话绑定),然后接听,接通后输入被叫号码以#号结束,然后就可以通话了。
用拔号代码可以这样实现:
15811343255>T(3)EI(,10)T(3)SC(5)0101234567#
下面来解释一下这段代码:
15811343255>为接入代码,T(3)为等待3秒,之所以等待3秒是因为目前没有办法判断电话是否响铃了,所以只能自己大概估计一个时间,以此来判断对方响铃了,E挂断电话。
I(,10)这是一个新方法,这句为等待电话拔入的方法。此方法原型为:I(WaitNumber,Timeout),WaitNumber为要等待的电话,此参数可忽略,如果指定了号码则只有指定的号码拔入才会成功返回,否则将一直阻塞或超时值时间到,如果忽略此参数则任何号码拔入都会使方法成功返回,Timeout表示超时值(此值可省略),单位为秒。注:此方法只是等待有电话拔入就返回,并不会真正接听电话。
故此方法有三种调用方式:
I 使用默认超时值等待任意号码的拔入
I(,100) 等待任意号码的拔入最多等待100秒
I(0101234567) 使用默认超时值等待0101234567的拔入
T(3)等待3秒然后执行接听电话的方法,为什么要等待3秒呢,是因为SmartDial收到电话拔入的消息比系统的拔号程序要早,如果此时立即调用S接听电话那么会无效,因为此时系统还没有初始化好,所以要等待,具体等待时间因系统而定,如果你的机器较快可以等1秒,如果较慢可以等3秒。S 这句为接听电话的方法,无参数不多说啦。C(5)等待电话接通,最多等待5秒,接通后依次模拟按键0101234567#
至此就全部讲完了,有任何问题可以加入QQ群56029394讨论