我有一个工作的Asterisk 13拨号方案,其中一个呼叫进入的extensions.conf再内的extensions.conf成switch语句:继续后拨号方案外卡赛
switch => Realtime
工程。该调用基于数据库表的内容完成。
现在我想要做的是在呼叫进入实时表之前进行一点过滤。事情是这样的:
exten => _X.,1,Set(GROUP()=${ACCOUNTCODE:0:4})
exten => _X.,n,GotoIf($[${GROUP_COUNT(ABCD)} > 2]?tooMany,1)
exten => _X.,n,Log(VERBOSE,Call Continuing. ${ACCOUNTCODE} is not a limited group)
switch => Realtime
exten => tooMany,1,Congestion(4)
exten => tooMany,n,hangup(503)
但是,什么似乎发生的是,一旦扩展匹配(在_X)的处理继续通过比赛,但不会继续和处理“开关=>实时”行(其从不执行拨号方案的数据库组件)
如何在通过过滤器后执行实时拨号方案?
- 其次有些相关的问题
顺便说一句,我可以在全文字的extensions.conf,我想所有的呼叫,必须做的东西对他们有类似的问题,然后做具体事某些电话。例如
exten => _X.,1,<do something>
exten => 1122,1,<do some more stuff to the same call>
这是在文档中处理,1122是更具体的行,将执行一个。但是,对所有呼叫做某事的正确方法是什么,然后做具体的事情?
如果它的工作方式类似于include,那就好了,除非如果EXTEN匹配它永远不会进入交换机/数据库搜索的模式。这是为什么? – SchroedingersCat
,因为它是开关。如果你想在相同的上下文中额外的扩展,你应该包括=> someothecontext,并切换到其他上下文。 – arheops