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

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

上一主题 下一主题
离线voiphaozi
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-05-15
一:Goto()  我理解的意思是跳动某个组,看例子:自个操作一遍应该能明白 pA8bFtt  
本部分内容设定了隐藏,需要回复后才能看到
二:GotoIf()    有条件的跳转. {V7mpVTX.  
     语法: GOtoIf(条件或真或假?真时转到的流程:假时转到的流程)   xP\s^]e  
     说明:“条件或真或假”一般通过表达式来运算 , 真一般为1,假为0 "](Q2  
                 执行后一般为 GotoIf(1:1:2)  这里为真,将转入1的流程,  或:GotoIf(0:1:2)  这里为假,将转入2的流程   :Wbp|:N0  
     看代码:
本部分内容设定了隐藏,需要回复后才能看到
z</C)ObL  
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线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 }Bv1fbD4U  
        demo0    8888    3    noOp    ${digito} aNry> 2:  
    demo0    8888    4    Gotoif    $["${digito}"="1"]?7:5 Mq~E'g4#  
    demo0    8888    5    Gotoif    $["${digito}"="2"]?9:6 qt.4dTd:_  
    demo0    8888    6    Gotoif    $["${digito}"="3"]?11:2 y9mV6.r  
    demo0    8888    7    Playback    /var/lib/asterisk/sounds/en/digits/1 0`zdj  
    demo0    8888    8    Goto    2 ([<{RjPb  
    demo0    8888    9    Playback    /var/lib/asterisk/sounds/en/digits/2 4U\>TFO  
    demo0    8888    10    Goto    2 2MB>NM<xO  
    demo0    8888    11    Read    digito,dir-welcome,1,,3,3 hqeknTGsIn  
    demo0    8888    12    Gotoif    $["${digito}"="1"]?14:13 i;pg9Vw  
    demo0    8888    13    Gotoif    $["${digito}"="2"]?16:11  }c||$  
    demo0    8888    14    Playback    /var/lib/asterisk/sounds/en/digits/11 64b AWHv  
    demo0    8888    15    Goto    10 t>quY$}4  
    demo0    8888    16    Read    digito,demo-thanks,1,,3,3 W/A@qo"  
    demo0    8888    17    Gotoif    $["${digito}"="1"]?19:18 YKUAI+ks  
    demo0    8888    18    Gotoif    $["${digito}"="2"]?21:16 mvH}G8  
    demo0    8888    19    Playback    /var/lib/asterisk/sounds/en/digits/20 B Hp>(7,  
    demo0    8888    20    Goto    15 j)G%I y[`  
    demo0    8888    21    Read    digito,demo-moreinfo,1,,3,3 T$mT;k  
    demo0    8888    22    Gotoif    $["${digito}"="1"]?24:23 @[joM*U  
    demo0    8888    23    Gotoif    $["${digito}"="2"]?26:21 FS8l}t  
    demo0    8888    24    Playback    /var/lib/asterisk/sounds/en/digits/30 )0I -N)  
    demo0    8888    25    Goto    20 o_\vudXK  
    demo0    8888    26    Playback    /var/lib/asterisk/sounds/en/digits/40 R6X2d\l#  
    demo0    8888    27    Hangup     8Y%  
S7J.(; 82  
这是我的拨号方案哇  下午测试没有上面我说的情况了 我只加了     demo0    8888    3    noOp    ${digito}这句 /Q W^v;^  
    
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线jms.ela

只看该作者 4楼 发表于: 2011-06-15
回 3楼(gnm1c) 的帖子
demo0   这是神马程序弄滴。 .z$UNB(!M  
)( YJ6l  
另外 每一个新的接收按键的时候,别用 一个一个变量去接受。你看你老是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 DDT]A<WUV  
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
离线hsqs8821

只看该作者 9楼 发表于: 2012-08-22
谢谢楼主
欢迎来到“Asterisk资源分享-互助学习社区”——-Asterisk工程师的家园
请记住我们的网址 www.Asterisk-help.com [这是默认签名,更换签名点这里<<]
快速回复
限100 字节
>> 支持Asterisk-help社区, 谢绝无意义字符回复
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个