Установка FreePBX на Centos 7

by Anton Chernousov aka GITA-DEV


Опубликовано: 03 Июл 2018 (последние правки 1 месяц, 2 недели)


Установка FreePBX на Centos 7

Перевод официальной документации по установке FreePBX в Centos 7. Я прошелся по всем этапам установки и удостоверился, что все работает. Казалось бы, чего там может быть непонятно, просто бери и вводи команды последовательно из официальной документации, но как оказалось переведенная инструкция достаточно актуальная штука.

Отключаем selinux:

# sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
# sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config

Потребуется перезагрузка.

Обновляем систему и ставим набор необходимых пакетов:

# yum -y update
# yum -y groupinstall core base "Development Tools"
# yum -y install lynx tftp-server unixODBC mysql-connector-odbc mariadb-server mariadb \
httpd ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel \
audiofile-devel gtk2-devel subversion kernel-devel git crontabs cronie zip unzip\
cronie-anacron wget vim uuid-devel sqlite-devel net-tools gnutls-devel python-devel texinfo \
libuuid-devel
# pear install Console_Getopt

Создаем пользователя от имени которого будем запускать приложения:

# adduser asterisk -m -c "Asterisk User"

Настраиваем Firewall

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --reload

Устанавливаем PHP версии 5.6:

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum remove php*
# yum install php56w php56w-pdo php56w-mysql php56w-mbstring php56w-pear php56w-process php56w-xml php56w-opcache php56w-ldap php56w-intl php56w-soap

Установим NodeJS:

# curl -sL https://rpm.nodesource.com/setup_8.x | bash -
# yum install -y nodejs

Активируем автозапуск и запускаем MariaDB:

# systemctl enable mariadb.service
# systemctl start mariadb

Применяем настройки безопасности для установленного Mysql сервера:

# mysql_secure_installation

Главное на этом этапе не задавайте пароль пользователя root, а вопросами безопасности займемся чуть позже.

Активируем и запускаем Apache:

# systemctl enable httpd.service
# systemctl start httpd.service

Устанавливаем зависимости для Google Voice:

# cd /usr/src
# wget https://github.com/meduketto/iksemel/archive/master.zip -O iksemel-master.zip
# unzip iksemel-master.zip
# rm -f iksemel-master.zip
# cd iksemel-master
# ./autogen.sh
# ./configure
# make && make install

Загружаем исходные коды Asterisk:

# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
# wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.10.tar.gz

Собираем DAHDI:

# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# tar xvfz libpri-current.tar.gz
# rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz
# cd dahdi-linux-complete-*
# make all
# make install
# make config
# cd /usr/src/libpri-*
# make
# make install

Если при сборке вы получили ошибку вида:

You do not appear to have the sources for the 3.10.0-693.21.1.el7.x86_64 kernel installed.

Проверьте, что вы установили необходимые исходные коды ядра.

Собираем и устанавливаем Jansson:

# cd /usr/src
# tar vxfz jansson.tar.gz
# rm -f jansson.tar.gz
# cd jansson-*
# autoreconf -i
# ./configure --libdir=/usr/lib64
# make
# make install

Проводим сборку и установку самого Asterisk.

# cd /usr/src
# tar xvfz asterisk-14-current.tar.gz
# rm -f asterisk-14-current.tar.gz
# cd asterisk-*
# contrib/scripts/install_prereq install
# ./configure --libdir=/usr/lib64 --with-pjproject-bundled
# contrib/scripts/get_mp3_source.sh
# make menuselect

На этом этапе будет запущен графический конфигуратор где можно добавить или удалить компонеты Asterisk. После настройки, можно продолжать сборку.

# make
# make install
# make config
# ldconfig
# chkconfig asterisk on

Назначаем права доступа к каталогам:

# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib64/asterisk
# chown -R asterisk. /var/www/

Несколько модификаций типового конфига Apache:

# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
# sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
# systemctl restart httpd.service

Загружаем и устанавливаем сам FreePBX:

# cd /usr/src
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
# tar xfz freepbx-14.0-latest.tgz
# rm -f freepbx-14.0-latest.tgz
# cd freepbx
# ./start_asterisk start
# ./install -n

Установка FreePBX завершена и мы можем подключаться к web-интерфейсу.

Обратите внимание, что если при нажатии на кнопку "Apply config" настройки не применяются, то возможно у вас проблема с доступом к файлу /var/run/asterisk/asterisk.ctl и для установки активной группы владельца на Asterisk (как в примере ниже):

# ls -lua /var/run/asterisk/   
итого 4
drwxr-xr-x  2 root root       80 июл 15 02:37 .
drwxr-xr-x 34 root root     1020 июл 15 02:32 ..
srwxrwxr-x  1 root asterisk    0 июл 15 02:36 asterisk.ctl
-rw-r--r--  1 root root        5 июл 15 02:33 asterisk.pid

Вам необходимо внести изменения в файл /etc/asterisk/asterisk.conf:

[files]
astctlpermissions => 775
astctlgroup => asterisk

Обратите внимание на статьи:


Скрипт сборки VOIP клиента Linphone из исходных кодов (для Ubuntu Linux)

Скрипт сборки VOIP клиента Linphone из исходных кодов (для Ubuntu Linux)

Flexisip, Linphone и еще несколько технологий представляют собой OpenSource часть VOIP-инфраструктуры разрабатываемой Belledonne Communications и на данный момент это единственное решение IP-телефонии в Linux где помимо голосовых звонков, дополнительно представлен полноценный групповой чат и видео-звонки. Одним из главных минусов этой технологии является ее слабая распространенность и как следствие она недостаточно документирована, но как показывает практика официальной документации вполне хватает, а в случае чего можно и в исходные коды залезть.


Сборка и установка дополнительных кодеков для Asterisk (Codec Translators)

Сборка и установка дополнительных кодеков для Asterisk (Codec Translators)

Небольшая шпаргалка как в FreePBX-core добавить проприетарные кодеки. Часть кодеков вы можете использовать бесплатно, а например для кодека g729a вам придется приобрести лицензию. Лицензии покупаются на количество конкурентных подключений и для кодека g729a лицензия стоит 8 долларов, что не так уж и дорого если у вас не колл-центр.


Настройка Fail2ban для Asterisk (FreePBX)

Настройка Fail2ban для Asterisk (FreePBX)

Небольшое описание того, как я возился с настройкой Fail2ban в Centos 7. Что интересно, штатные правила конфигурации для FirewallD с виду работают, добавляют заблокированные адреса в соответствующие цепочки, но подключения клиентов все равно не блокируются. Для Asterisk который является просто лакомым кусочком для разного рода жуликов работать без Fail2Ban крайне опасно.


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Блог это некоммерческий проект! Если вам понравился мой блог и то что я пишу помогло вам на практике, то можете сказать спасибо материально.