Asterisk+FreePBX. Установка. Плюсы и минусы в использовании

Очередной раз задался провокационным вопросом, возможно ли установить Астериск из репозитория и прикрутить к нему GUI. Старые версии FreePBX  меня не устраивали своей неочевидностью и ограниченными возможностями. Готовые сборки конечно хороши, но есть опасность "чёрного ящика".  Asterisk GUI почему то перестала вызывать ощущение развивающегося проекта.   Я решил опробовать вариант, быстро "из коробки" накатить Asterisk 11, и соответственно накатить FreePBX в качестве GUI. 
Сразу о плюсах и минусах:
Замечательная система репозиториев FreePBX позволяющая подбирать нужные модули. 
Большое количество модулей, позволяющих расширять возможности  FreePBX. Возможность список модулей "заточить под себя".
Отлично без гимороя сочетается с астериском в репозитарии убунты. Соответственно вопросы апгрейдов решаются "влет".
Заложены custom конфигурационные файлы. 
Итого - Очень гибко, масштабируемо и ПЛОСКО !!!!

Вот тут с разбегу получаем граблями по морде. Оказывается вот почему авторы расщедрились на кастом-конфиги!
Если тебе надо разбить телефонную сеть на две части, что бы каждая часть звонила через своего провайдера, исходящие маршруты средствами веб-морды не группируются.
В отличии от GUI. Нельзя указать одним  9 -- провайдер1 , другим 9 -- провайдер2. только руками в custom ... типа welcome ...
В ГУИ ты объединяешь правила в группы, в веб-морде, а групп может быть сколько надо. Фактически диалплан с инклудами. А здесь? Вперед ручками! vi ждёт тебя ...
 
На базе статьи , я себе забахал "напоминалку". Если решили пробовать, вот описание-шпаргалка как я делал:
 
Первоначально ставим все что может пригодится:
apt-get install libncurses5-dev openssl libssl-dev zlib1g zlib1g-dev linux-headers-`uname -r` build-essential mysql-server \
libmysqlclient-dev php5 php5-cli php5-mysql php5-gd php-pear apache2 curl bison flex cpp g++ gcc make libauthen-pam-perl \
libio-pty-perl libnet-ssleay-perl libxml2 libxml2-dev libtiff4 libtiff4-dev libaudiofile-dev subversion libsqlite3-dev \
libxml2 libxml2-dev libtiff5 libtiff5-dev lame  mysql-server mysql-client php5  php-db php5-mysql  libssl-dev \
sox libcpan-mini-perl openssl linux-source mpg123

Ставим Asterisk с разными приблудами.  asterisk-config ставить не обязательно. FreePBX свое накатит.
aptitude install  asterisk asterisk-config asterisk-core-sounds-ru asterisk-core-sounds-ru-g722 asterisk-core-sounds-ru-gsm \
asterisk-core-sounds-ru-wav  asterisk-mp3  asterisk-moh-opsound-wav asterisk-moh-opsound-gsm      asterisk-moh-opsound-g722  \
asterisk-modules       asterisk-flite        asterisk-espeak          asterisk-prompt-ru       asterisk-prompt-ru-ru  \
libasterisk-agi-perl       python-asterisk 

Любимый мой phpmyadmin:
apt-get install phpmyadmin

Качаем FreePBX
cd ~
wget http://mirror.freepbx.org/freepbx-2.11.0.40.tgz
tar xf freepbx-2.11.0.40.tgz

Заходим в каталог freepbx. Для начала, необходимо создать и заполнить базы данных для FreePBX.
cd freepbx

mysql -u root -p
mysql> create database asterisk;
mysql> create database asteriskcdrdb;
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'asterpass';
mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'asterpass';
mysql> flush privileges;
mysql> \q

Пароль придумай сам!
Инициируем базы:
mysql -u root -p asterisk < SQL/newinstall.sql
mysql -u root -p asteriskcdrdb < SQL/cdr_mysql_table.sql

Правим переменные APACHE_RUN_USER и APACHE_RUN_GROUP.
sudo nano /etc/apache2/envvars
export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk

sudo service apache2 restart

!!!!После этого, если апач был запущен от родного пользователя www-data, вы можете получить сообщение об ошибке запуска апача.!!!
… waiting /var/lock/apache2 already exists but is not a directory owned by asterisk.

Всего лишь нужно удалить указанный каталог под рутом и запустить апач вновь. Проверяем правильность запуска…
ps aux|grep apache

asterisk 8403 0.0 0.3 37976 4052 ? S 13:12 0:00 /usr/sbin/apache2 -k start

Подправим лимиты в /etc/php5/apache2/php.ini
upload_max_filesize=10M
memory_limit = 512M

Будет правильно подставить свои значения. А если у вас на сервере всего 256М памяти? Ориентировочный лимит на половину системной.
sudo service apache2 restart

Запускаем скрипт установки FreePBX. Помните, что в новых версиях Apache2 корень может быть переделан с  на /var/www/ на /var/www/html
sudo ./install_amp

После получения сообщения об успешной установке FreePBX, уже можно заходить в панель управления Asterisk.
К примеру, если вы установили его в каталог /var/www/html/pbx (<путь к корню>/pbx), то заходим в него по ссылке http://ip_address/pbx/admin/.
Получаем приглашение ввести имя пользователя, пароль и e-mail для админского аккаунта.
После заполнения всех полей, жмем кнопку внизу и попадаем на dashboard нашей АТС.

В догонку добавим няняшку. Мне не понравилось :)
Няняшка :
Скачать последнюю версию FOP2 панели для своей системы всегда можно с официального сайта
http://fop2.com/download.php или купить лицензию (в демо режиме доступно 15 кнопок) http://fop2.com/buy.php

http://download2.fop2.com/fop2-2.28-debian-i386.tgz
tar zxvf fop2-2.28-debian-i386.tgz

cd fop2
make install (если не сработает - просто make)


cd /var/www/html
mv fop2 panel
aptitude install  perl-doc
/usr/local/fop2/generate_override_contexts.pl –write



[fop2_user]
secret = сложный-пароль
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,command,agent,user,originate
write = system,call,command,agent,user,originate
writetimeout = 500


mcedit /usr/local/fop2/fop2.cfg
manager_host=127.0.0.1
раскомментируем строчку web_dir и меняем /var/www/fop2 на /var/www/html/panel
заменяем в строчке manager_secret=на наш пароль AMI который мы узнали в предыдущем пункте
Проделываем :
/usr/local/fop2/fop2_server –test
service fop2 start

далее в браузере http://ip_address/panel. Ничего особенного :)))) Так игрушка ))))