论坛风格切换切换到宽版
  • 9083阅读
  • 26回复

[分享]Dialplan中 Goto()和GotoIf() 函数的应用说明 [复制链接]

上一主题 下一主题
离线voiphaozi
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-05-15
一:Goto()  我理解的意思是跳动某个组,看例子:自个操作一遍应该能明白 (+T|B E3*#  
本部分内容设定了隐藏,需要回复后才能看到
二:GotoIf()    有条件的跳转. u6|7P<HUfb  
     语法: GOtoIf(条件或真或假?真时转到的流程:假时转到的流程)   (\SxG\`  
     说明:“条件或真或假”一般通过表达式来运算 , 真一般为1,假为0 *UEo&B2+  
                 执行后一般为 GotoIf(1:1:2)  这里为真,将转入1的流程,  或:GotoIf(0:1:2)  这里为假,将转入2的流程   -vhgBru  
     看代码:
本部分内容设定了隐藏,需要回复后才能看到
b/2t@VlL  
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线gnm1c
只看该作者 沙发  发表于: 2011-06-15
我用数据库动态配置拨号方案,写了3个Gotoif用来判断是否按1、2、3,但是每次按3都不能执行,按1、2都可以,从控制台显示的信息是:执行按3后的跳转,但是一直卡在那里不动了,然后就是超时,请教
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线voiphaozi

只看该作者 板凳  发表于: 2011-06-15
回 1楼(gnm1c) 的帖子
贴出你的 拨号方案。。
离线gnm1c
只看该作者 地板  发表于: 2011-06-15
    demo0    8888    2    Read    digito,demo-instruct,1,,3,3 FRX'"gIR0  
        demo0    8888    3    noOp    ${digito} P(qUx9  
    demo0    8888    4    Gotoif    $["${digito}"="1"]?7:5 q=g;TAXZl  
    demo0    8888    5    Gotoif    $["${digito}"="2"]?9:6 E+F!u5u  
    demo0    8888    6    Gotoif    $["${digito}"="3"]?11:2 Q+Jzab  
    demo0    8888    7    Playback    /var/lib/asterisk/sounds/en/digits/1 Z*x Q"+\  
    demo0    8888    8    Goto    2 $Jx] FZDQ  
    demo0    8888    9    Playback    /var/lib/asterisk/sounds/en/digits/2 BW z*!(   
    demo0    8888    10    Goto    2 B-'Xk{  
    demo0    8888    11    Read    digito,dir-welcome,1,,3,3 g$ 9Yfu  
    demo0    8888    12    Gotoif    $["${digito}"="1"]?14:13 So,EPB+  
    demo0    8888    13    Gotoif    $["${digito}"="2"]?16:11 M>8#is(pV  
    demo0    8888    14    Playback    /var/lib/asterisk/sounds/en/digits/11 ocGqX Dg3  
    demo0    8888    15    Goto    10 rS8/_'  
    demo0    8888    16    Read    digito,demo-thanks,1,,3,3 -hyY5!rD  
    demo0    8888    17    Gotoif    $["${digito}"="1"]?19:18 Lk=f^qJ ]  
    demo0    8888    18    Gotoif    $["${digito}"="2"]?21:16 (4x`/  
    demo0    8888    19    Playback    /var/lib/asterisk/sounds/en/digits/20 kf.w:X"i  
    demo0    8888    20    Goto    15 B]0`b1t  
    demo0    8888    21    Read    digito,demo-moreinfo,1,,3,3 U $e-e/  
    demo0    8888    22    Gotoif    $["${digito}"="1"]?24:23 d5UdRX]*  
    demo0    8888    23    Gotoif    $["${digito}"="2"]?26:21 Z[Uz~W6M]  
    demo0    8888    24    Playback    /var/lib/asterisk/sounds/en/digits/30 !fZ{ =  
    demo0    8888    25    Goto    20 qAHQZKk  
    demo0    8888    26    Playback    /var/lib/asterisk/sounds/en/digits/40 {3@/@jO?  
    demo0    8888    27    Hangup     ]Dd=q6  
Wyw/imr  
这是我的拨号方案哇  下午测试没有上面我说的情况了 我只加了     demo0    8888    3    noOp    ${digito}这句 d1vC-n N  
    
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线jms.ela

只看该作者 4楼 发表于: 2011-06-15
回 3楼(gnm1c) 的帖子
demo0   这是神马程序弄滴。 <`+U B<K  
x9p,j  
另外 每一个新的接收按键的时候,别用 一个一个变量去接受。你看你老是digito
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线gnm1c
只看该作者 5楼 发表于: 2011-06-15
回 4楼(jms.ela) 的帖子
这是我测试随便写的 就想测试下多级跳转  不用变量 用什么? 请教 我刚开始接触asterisk
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线jms.ela

只看该作者 6楼 发表于: 2011-06-15
回 5楼(gnm1c) 的帖子
你的程序中 都是通一个变量去接受用户的按键的。${digito}  个人认为不要这样写,会冲突的。也是不好的一个习惯。比较乱
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线gnm1c
只看该作者 7楼 发表于: 2011-06-15
回 6楼(jms.ela) 的帖子
哦 你的意思是每级跳转用不同的变量去接受按键是吧  多谢提醒
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线单行

只看该作者 8楼 发表于: 2012-08-14
kankan DyhW_PH2J  
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线hsqs8821

只看该作者 9楼 发表于: 2012-08-22
谢谢楼主
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
快速回复
限100 字节
>> 支持Asterisk-help社区, 谢绝无意义字符回复
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个