视频介绍了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各个方面的内容,希望对大家有所帮助。笔者的文章中存在一些拼写错误或解释不到位的问题,希望在后续的文章中进一步完善提高。