您当前的位置是:  首页 > 新闻 > 国内 >
 首页 > 新闻 > 国内 >

Asterisk课堂-拨号规则Goto的其他用法

2017-02-09 13:54:28   作者:james.zhu   来源:Asterisk   评论:0  点击:


  
  在前面的章节中我们介绍过Asterisk拨号规则中的Goto 跳转语法的使用方式。在实际应用环境中,拨号规则的实现可能非常复杂。Goto命令帮助用户实现了基本的调整,但是Goto命令如果实现灵活的跳转的话,需要借助于其他的条件判断。事实上,本身Goto命令也支持了几个Goto的高级使用方式,例如GotoIf,GotoIfTime 这样的方式。
  视频介绍了Goto(),GotoIf()和GotoIfTime() 的使用方法:
  在接下来的内容中,笔者会介绍一下这几个跳转方式的使用方法:
  Goto()。在asterisk拨号规则中,我们经常会看到一些Goto的逻辑跳转,这种使用方式在前面的章节中已经介绍,所以这里不做过多的描述。这里应该注意到是,goto()可以调整到每个优先级,可以跳转到每个extension,或者通过指定context,extension和priority。如果没有特别指定的话,都是在当前extension 或者context之间进行。
\
  GotoIf()是相当于Goto()更加强大的一种使用方式。在Goto()支持了一个条件判断。如果判断结果是true,则执行第一个label, 否则执行第二个label。通常情况下,拨号规则会提示用户输入一个DTMF 值,然后根据DTMF来执行相应的流程。图例中,如果用户输入2,则拨号规则的执行流程跳转到技术支持,否则执行流程会跳转到销售部门。
\
  GotoIfTime()实际上和Goto()或者GotoIf()完全不同的应用方式。它支持的参数是时间,天和月份。通过这个应用模块可以轻松判断一些节假日,公司上下班呼叫处理,或者指定某一天的呼叫处理。图例给出了圣诞节假期呼叫处理,上下班时间呼叫处理的呼叫处理方式。
\
  本章节主要介绍了拨号规则中的几个跳转方式,包括基本的跳转,根据判断条件实现跳转,还有根据时间日期判断实现跳转。这些跳转方式可以支持用户实现比较复杂的业务逻辑,并且使用方式也非常简单。笔者希望用户可以根据自己的拨号规则来做一些测试,以便更加深刻地了解这些应用方式。
  另外,通知大家,这个章节是笔者Asterisk课堂的最后一个章节。在本系列中推出了大概50个章节的内容,它们几乎覆盖了asterisk各个方面的内容,希望对大家有所帮助。笔者的文章中存在一些拼写错误或解释不到位的问题,希望在后续的文章中进一步完善提高。

专题