Установка и настройка Freepbx на Сentos 7
Скачиваем последнюю версию Freepbx с сайта разработчика.
# cd ~ && wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz
Распаковываем исходники.
# tar xvfz freepbx-*.tgz
Переходим в каталог freepbx и запускаем скрипт проверки запуска asterisk.
# cd freepbx && ./start_asterisk start
Если не получили ошибок, то запускаем установку непосредственно FreePBX.
# ./install -n
Если получили ошибку php:
PHP Fatal error: Uncaught Error: Call to a member function connected() on null in /root/freepbx/amp_conf/htdocs/admin/libraries/BMO/Framework.class.php:180
Запустите установку еще раз
# ./install -n
Она должна пройти без ошибок, но freepbx не будет работать корректно, так как не сможет подключиться к asterisk. После повторной установки надо открыть конфиг /etc/asterisk/manager.conf и в конце строки
#include manager_additional.conf #include manager_custom.conf
заменить на
;include manager_additional.conf ;include manager_custom.conf
И убедиться, что указан параметр secret с паролем amp111. Если это не так, отредактируйте строку.
secret = amp111
Если этого параметра вообще нет, то добавить в секцию [admin]. После этого надо еще раз запустить установку freepbx, в третий раз. После этого ошибок быть не должно и freepbx будет корректно работать.
Если все прошло без ошибок, то можно проверять работу Freepbx. Но перед этим отключим Firewall, если он у вас работает.
# systemctl stop firewalld && systemctl disable firewalld
Я не хочу в этой статье касаться его настройки. Здесь же я прото скажу, что для начала нам нужно открыть 80-й порт, чтобы мы смогли работать с веб интерфейсом:
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Для полноценной работы астериск, нужно открыть следующие порты:
iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 5061 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 5038 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
Теперь можно запустить httpd.
# systemctl start httpd
Добавляем его в автозагрузку(Не добавил !!!! Так как порты закрыты! ):
# systemctl enable httpd
На этом установка закончена Freepbx. Можно зайти браузером на страницу с ip адресом сервера. У меня это http://79.174.70.100/ Открывается начальная страница freepbx, где нам предлагается создать нового пользователя:
Создаем пользователя и заходим в web интерфейс управления астериском:
Вот и все, дальше можно заниматься настройкой. Раньше следующим разделом шла информация по автозагрузке freepbx, но в данный момент эта информация неактуально. Отдельно автоазгрузку для freepbx настраивать не надо. Она по дефолту автоматически запускается при старте системы.
Заключение
В данной инструкции мы аккуратно собрали все необходимые компоненты для настройки связки asterisk+freepbx на сервере CentOS 7. Скачали последние версии софта, собрали его из исходников и установили. Таким образом мы полностью подготовили сервер к конфигурированию телефонии. Если сервер будет смотреть в интернет, нужно обязательно не забыть аккуратно настроить firewall и хотя бы fail2ban для обеспечения минимальной, хотя в большинстве случаев и вполне достаточной, защиты.
Примером может служить указанная статья. Ее можно взять за основу для целостного понимания базового функционала, который можно реализовать с помощью астериск.