我有一个旧版本的 freePBX(超过 5000 个分机,数百个 IVR),我必须记录它以便迁移到新版本。我必须映射哪些 IVR 使用哪些中继。为此,我必须将调用的号码与出站路由的拨号模式相匹配。
带有我必须匹配的模式的表的“扩展”列看起来像
19328555
_13XXXX
_1933370[0-2]
_2805XX
_28[3-7]XXX
_331XXX
_848XXX
_85XXXXX
_879XXX
例如,我必须找到与号码 8481234 匹配的“分机”模式,然后我才能从另一列中获取主干。
我知道一定有一个嵌入到 Asterisk 中的函数可以像这样工作
$number='8481234';
$pattern='_879XXX';
if (asterisk_pattern_match($number,$pattern)) {
#get trunk column from that row
}
它可以是 SQL、Perl 或 PHP。我可以写它,但我确定我会重新发明轮子。有没有人有或知道这样的功能在哪里 或许?我搜索了所有我能想到的方法,但所有结果都是关于在 Asterisk 拨号计划中使用 MySQL,这对我没有值(value)。
谢谢!
最佳答案
谢谢大家。我找到了我正在寻找的确切程序
https://gist.github.com/lgaetz/8695182
它被称为 match_pattern.php,由 Lorne Gaetz 修改并发布在 git 上。
描述:两个 PHP 函数 match_pattern 和 match_pattern_all 将数字字符串与 Asterisk 拨号模式(或模式数组)进行比较并返回修改后的数字字符串。
关于php - mysql 或 perl 函数匹配 Asterisk 拨号方案模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862530/