База знаний

www. IT-Mehanika .ru --  журнал доброго админа

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. Ничего особенного :)))) Так игрушка ))))

Комментарии   

0 #9 mrbublik 02.04.2015 14:59
Мне кажется проще в пхп вписать нужные столбцы, если оно надо. база астериска наполнена всеми данными о звонке. Ну добавьте еще суммирование. проще дать на пиво фрилансеру, что бы он дописал нужное в этот анализатор.
Я не знал php, когда брался за анализатор. Спасибо коллегам и интернету, за основы.
Вписывайте SQL запросы и отражайте на странице.
0 #8 Stoner 02.04.2015 09:29
Цитирую mrbublik:
Гуя затормозилась. Но пока особенно не каcалось. единственное у себя исправил meetme на ConfBridge. Ну и друг не поленился - перевел. Преимущество комбинации Диалплан+Правило, покрывает все недостатки :)
Любой Гуй светить опасно. Так же как и оставлять 5060 без защиты ( см. статьи на сайте).
Если тебе журнал с "понтами" - не знаю. Если тебе нужна простая система с удобным фильтром. Возьми из другой статейки :)
вот здесь - it-mehanika.ru/.../..., в конце статейки ссылка на анализер. качай ставь пользуй.

Нужна статистика звонков для небольшого колл центра. Кто звонил, куда, когда и т.д. Ничего сверхъестествен ного) Спасибо, я покопаюсь в статьях. Хороший сайт)
0 #7 mrbublik 02.04.2015 01:30
Гуя затормозилась. Но пока особенно не каcалось. единственное у себя исправил meetme на ConfBridge. Ну и друг не поленился - перевел. Преимущество комбинации Диалплан+Правил о, покрывает все недостатки :)
Любой Гуй светить опасно. Так же как и оставлять 5060 без защиты ( см. статьи на сайте).
Если тебе журнал с "понтами" - не знаю. Если тебе нужна простая система с удобным фильтром. Возьми из другой статейки :)
вот здесь - it-mehanika.ru/.../..., в конце статейки ссылка на анализер. качай ставь пользуй.
0 #6 Stoner 01.04.2015 11:45
Вроде как удобней FreePBX, да. А разве гуй не спекся? Мне казалось, он больше не развивается. И потом, мой астериск должен телепаться на виртуалке при белом адресе. Гуями светить всё-таки опасно, хоть и на другом порту. VPN решает проблему, но частенько бывает, что нужно внести изменения, а своего ноутбука или другого пк с впн клиентом нет. Хочу наконец-то попробовать голый астериск, с накрученной поверх красивой статистикой звонков. Доступ к ней уже можно и в vpn запаковать. Не подскажешь какое бесплатное решение?
0 #5 mrbublik 17.03.2015 23:09
Собствено сделал скрины. В отличии от freepbx, в asteriskgui можно создать в вебморде несколько правил с одним шаблоном и раздать по диалпланам. А у каждого номера при создании указывается диалплан. Соответственно у бухгалтерии мы сделаем план1 и все номера с 110-130 будут работать под ним. А в борделе план2. Номера боделя 150-170 будут работать под ним.
в план1 мы влючаем правило где по 8Х. выход идет через МТТ, а в план2 включаем правило где 8Х. отправляет все на сипнет.
вот общий вид :

Большая картинка - it-mehanika.ru/.../...

зайдя в исходящую маршрутизацию добавим два правила на 8ки

Большая картинка - it-mehanika.ru/.../...

ну и потом соберем в нужные планы

Большая картинка - it-mehanika.ru/.../...

в екстеншенах мы вы выбираем диалпланы из списка

Большая картинка - it-mehanika.ru/.../...
0 #4 mrbublik 17.03.2015 22:32
Цитирую Stoner:
А вообще, хорошо выделить группы абонентов. К примеру, группа №1 - 200-299, группа №2 - 300-399. А потом в поле CallerID указать маску 2XX и 3XX. Сам только учусь этому всему.

Это все уже есть в Asterisk Gui. Будет желание - Глянь it-mehanika.ru/.../...
скрины приложу позже
0 #3 Stoner 17.03.2015 12:54
А вообще, хорошо выделить группы абонентов. К примеру, группа №1 - 200-299, группа №2 - 300-399. А потом в поле CallerID указать маску 2XX и 3XX. Сам только учусь этому всему.
0 #2 mrbublik 17.03.2015 11:49
Вы правы. Если уж делать гуевину, предпологается что ручками констрапупить не надо. Если приходится самому дописывать "кастомные" диалпланы - уже плохо, а если по ходу дела менять ? это же с дуба рухнешь.
0 #1 Stoner 16.03.2015 14:56
По поводу разных направлений через гуй - можно дать выход на маршруты по CallerID абонента. Правда, выйдет громоздко и после этого отказывается работать передача вызова на внешние транки)

You have no rights to post comments