繁体   English   中英

星号应用程序拨号计划中的模式匹配

[英]pattern matching in asterisk apps dialplan

我需要以这种方式为星号sip调用创建模式。

  1. 模式仅包含“ *”,“#”和0-9位数字
  2. 模式的第一个参数对于“ +”符号是可选的。

喜欢它匹配

*1203#023212232
+*1203#122
12345555

但拒绝这些情况

3434+23443
*2334%2323

我这样准备图案

exten => _[*|#|+|0-9].,1,Answer()

但这也是我不想匹配的以下模式。

*2334%2323

怎么样:

\+?[0-9#*]+

您可能要锚定它:

^\+?[0-9#*]+$ 

我不认为Asterisk在正则表达式表达中支持这么多的灵活性。

实现此目的的最佳方法是将此扩展变量传递给AGI并在那里进行正则表达式匹配。

     exten => _.,1,AGI(Your AGI SCRIPT,${EXTEN})  // Pass the extension number to your Agi script.If that match your requirement set an agi variable **match** to 1 

     exten => s,n,GotoIf($["${match}" = "1"]?proceed:endcall) //Check the match variable status and proceed based on that 

     exten => s,n(proceed),Answer()
     exten => s,n(endcall),Hangup()

这只是满足您的要求的一种选择

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM