Назад | Перейти на главную страницу

Перенести файлы конфигурации asterisk в конфигурацию базы данных

Есть ли у кого-нибудь документация или инструменты, которые помогут перейти с развертывания звездочки на основе файла конфигурации на развертывание базы данных?

У меня нет сценария автоматической миграции, но суть в том, что вы создаете файл extconfig.conf, который сопоставляет традиционное имя файла конфигурации с именем таблицы (и набором учетных данных MySQL или ODBC / DB), а затем набором таблиц со слегка нормализованными (но почти построчными) эквивалентами того, что было бы в локальном файле конфигурации. http://www.voip-info.org/wiki/view/Asterisk+RealTime имеет больше.

Другой способ выполнять маршрутизацию вызовов с поддержкой базы данных в реальном времени - использовать AGI или Fast AGI. Мы рекомендуем AGI нашим клиентам, предоставляющим услуги хостинга Asterisk, потому что он отделяет логику маршрутизации вызовов от функциональности телефона / АТС, что совсем не соответствует диалплану Asterisk (Asterisk RealTime или нет). Затем ваш диалплан использует команду AGI (с URL-адресом agi: //) вместо вызова встроенных команд диалплана.

Это также позволяет вам писать логику / маршрутизацию вызовов на любом языке программирования, который лучше всего работает, что редко бывает AEL. На help.cloudvox.com есть еще куча документов по AGI.

Трой

Я искал то же самое и закончил тем, что написал свой собственный быстрый и грязный скрипт с использованием модулей Asterisk :: config из CPAN, надеюсь, что это спасет когда-нибудь кого-то еще:

#!/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";