Есть ли у кого-нибудь документация или инструменты, которые помогут перейти с развертывания звездочки на основе файла конфигурации на развертывание базы данных?
У меня нет сценария автоматической миграции, но суть в том, что вы создаете файл 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";