Asterisk 中 拨号规则 之 Read()和SayDigits()命令详解(转)
1:Read() ??读取用户输入的一个或多个以 #-结尾的数字字符串到指定的变量。
?
???Read(variable[,filename][,maxdigits][,option][,attempts][,timeout])
?
?
variable: variable是存储用户按键的地方.??filename: 读取按键之前要播放的文件.??maxdigits: 接收按键的最大个数. 当收到maxdigits个按键后就停止读取按键 (不需要用户按键 '#' ). 默认是 0 - 无限制 - 等待用户 ? 按 '#' 键. 任何低于0的值表示0,最大值是255.option:??'skip'表示如果线路没摘机就立即返回, 'noanswer' 表示线路没起来也读按键。??attempts: 如果大于1, 在没有用户按键的情况下会多次重复执行。??timeout: 超时时长(秒). 如果大于 0, 这个值就会覆盖默认的超时时长.示例:
[c-sharp]?view plaincopy- exten?=>?0000,1,Answer()??
- exten?=>?0000,n,Read(digito,goodbye,2,,3,5)??
- exten?=>?0000,n,Hangup()??
- //?说明一下:??
- //Read?中,我设置了?digito?变量接收用户输入的按键,??
- //?goodbye?:在用户按键前播放的语音文件??
- //?2:?代表用户最多可输入2个数,如按1和2,按一个数字必须要以#号结束。??
- //??:这里默认不填,我还没搞懂啥意思??
- //?3:用户若没有按键,重复3次播放3次语音??
- //?5:超时秒数,在没任何动作的情况下??
?
?
2:SayDigits() ? ?读出数字
?
?
[php]?view plaincopy- exten?=>?0000,1,Answer()??
- exten?=>?0000,n,SayDigits(123)??
- //?系统将会读出1,2,3??
?
?
?
?
read 和?SayDigits 的综合
?
例子:
?
?
[c-sharp]?view plaincopy- exten?=>?0000,1,Answer()??
- exten?=>?0000,n,Read(digiot,goodbye,2,,3,5)??
- exten?=>?0000,n,SayDigits(${digiot})??
- exten?=>?0000,n,Hangup()??
- //SayDigits将读出用户输入的按键在digito变量中??
?