将星号配置文件迁移到数据库配置

将星号配置文件迁移到数据库配置

是否有人有文档或工具来帮助从基于配置文件的星号部署迁移到数据库部署?

答案1

我没有自动迁移脚本,但要点是您使用 extconfig.conf 文件将传统配置文件名映射到表名(和一组 MySQL 或 ODBC/DB 凭据),然后映射一组稍微规范化(但几乎逐行)的表,相当于本地配置文件中的内容。 http://www.voip-info.org/wiki/view/Asterisk+RealTime有更多。

进行实时数据库支持的呼叫路由的另一种方法是使用 AGI 或 Fast AGI。我们向 Asterisk 托管客户推荐 AGI,因为它将呼叫路由逻辑与电话/PBX 功能分离开来,而 Asterisk 拨号方案(无论是否为 Asterisk RealTime)根本不是这样。然后,您的拨号方案将使用 AGI 命令(带有 agi:// URL),而不是调用嵌入式拨号方案命令。

这也允许您使用最适合完成工作的编程语言编写呼叫逻辑/路由,而 AEL 很少见。help.cloudvox.com 有更多 AGI 文档。

特洛伊

答案2

我一直在寻找同样的东西,最后使用 CPAN 中的 Asterisk::config 模块编写了我自己的快速而肮脏的脚本,希望它能节省别人的时间:

#!/usr/bin/perl
use Asterisk::config;

my $rc = new Asterisk::config(file=>$ARGV[0]);
my $cols="";
my $vals="";


$parsed = $rc->fetch_sections_hashref();

foreach my $sec (sort keys %{$parsed})
{
    $cols="name";
    $vals="'$sec'";
    while ( my ($c, $v) = each(%{$parsed->{$sec}}) )
    {
        $cols.= ",$c";
        $vals.= ",'".join(',',@{$v})."'";
    }
    print "insert into mytable($cols) values($vals);\n";
}
print "\n\n";

相关内容