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

Asterisk课堂-拨号规则中的优先级

2017-01-11 16:35:35   作者:james.zhu   来源:asterisk   评论:0  点击:


\    
  Asterisk本身的拨号规则是按照执行顺序来一步步执行的,在拨号规则的语法中也特别注明了优先级的标志。但是为了简化或实现灵活流程跳转,Asterisk拨号规则中特别使用了一些其他的辅助方式来帮助用户解决这些问题。
  视频中介绍了优先级的用法和应该注意到问题:
  现在我们简单介绍几个拨号规则中优先级的使用方式和需要注意到地方:
  拨号规则的优先级的语法,在拨号规则中,priority 是拨号规则的一个执行顺序的标志,帮助用户了解拨号流程的每个步骤。每个流程分类几个不同的步骤来执行。
\
  特别的优先级字符n用来简化拨号规则的流程,方便重新编辑流程。按照默认的拨号规则的流程,用户需要编写的流程从1开始,2,3等依次类推。但是如果用户修改了拨号规则中的其中一个流程,或者关闭一个流程,则需要修改整个拨号规则的流程,这样就会给维护人员带来不便。如果拨号规则中使用了n以后,则不会影响其他后续流程的执行,这样也方便用户维护。
\
  拨号规则中的优先级使用label 来标志一个流程的跳转。如果我们需要一个特别的跳转标志,可以在呼叫流程中添加一个跳转的标志符,拨号规则可以识别这个标志符来实现正确的跳转。
\
  缺省号码的使用方式,很多拨号规则,如果extension 是同一个号码,在后续的流程中,需要重复这些号码,所以导致拨号规则编写比较麻烦。但是,使用缺省编写的格式,笔者认为不具有可读性,破坏了编程习惯用法。在asterisk-1.6 以上的版本支持了same=> prefix 的缺省用法。具体实例如下:
  exten => 6123,1,NoOp()  // 起始exten是6123.
  same => n(repeat),Verbose("Do something!")  // 缺省了6123
  same => n,Verbose("Do something different!") // 缺省了6123
  本章节介绍了拨号规则中优先级的使用方法,特殊字符n和label 的用法。通过本章节的介绍,管理员在编写拨号规则时可以使用一定的格式来编写拨号规则,同时避免重复号码的重复。
  关注微信公众号:asterisk-cn 或者扫描二维码,了解开源通信技术。

专题