php - mysql 或 perl 函数匹配 Asterisk 拨号方案模式

标签 php mysql perl asterisk

我有一个旧版本的 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/

相关文章:

php - 随机改变背景

php - 如果单击 PHP 的链接,则设置变量

perl - 在 WWW::Mechanize 中直接使用 `get` 访问 URL 时如何保持身份验证?

regex - 通过正则表达式不区分大小写的有序词搜索

perl - 如何在 vscode 的 PerlDebug 中查看 hashmap 变量?

php - MySQL LIKE 语句返回奇数结果

php - Laravel 无法添加新包

javascript - 如何从表中获取数据并在javascript表中打印(php脚本)

mysql - 在 SQL 中排名时, "+"符号是什么意思?

mysql - SQL、组织节点、层次结构