如何匹配拨号方案中的两个或多个号码?

时间:2014-11-19 19:14:38

标签: pattern-matching asterisk voip

我有两个DID号码我想转发到入站呼叫的同一个IVR:

  • 1234
  • 4321

我该怎么做?我试过了:

exten => ^(1234|4321),1,Answer()

但它不起作用 - 它无法找到扩展并落入陷阱陷阱。 它基本上不匹配,我的拨号计划的这一部分,放在底部,执行:

exten => _X.,1,Answer()
exten => _X.,2,agi(googletts.agi,"No extension found",en)
exten => _X.,3,Hangup()

使用单个数字代替该表达式可以正常工作。任何提示?

由于

1 个答案:

答案 0 :(得分:0)

Asterisk dialplan不完全符合GNU regexp

http://www.voip-info.org/wiki/view/Asterisk+Dialplan+Patterns

星号拨号方案中没有"或"(|)操作。推荐的方式做这样的事情

[incoming]
exten => 1234,1,Goto(special_routine,s,1)
exten => 4321,1,Goto(special_routine,s,1)
include =>other; include other context, have less priority
[special_routine]
exten => s,1,Answer; do something for both numbers
[other];do this if no extension
exten => s,1,Answer()
exten => s,2,agi(googletts.agi,"No extension found",en)
exten => s,3,Hangup()