Установка Asterisk 16 и FreePBX 15 на Centos 8

Желательно что бы установка OS была произведена с полного образа, вместо netinstall

Проверьте правильность установленной тайм-зоны и при необходимости измените ее.

Переведите SELinux в «разрешающий» (Permissive) режим следующими командами:

sudo setenforce 0
sudo sed -i 's/\(^SELINUX=\).*/\SELINUX=permissive/' /etc/selinux/config

Либо полностью отключите его:

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

Перезапустите сервер и проверьте статус:

sestatus

Убедитесь, что репозиторий EPEL добавлен в вашу систему:

dnf repolist epel

Если он не обнаружен добавьте его:

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

sudo dnf config-manager --set-enabled PowerTools

Установите:

dnf update
dnf install openssl openssl-devel
dnf install libedit-devel
dnf install libuuid-devel

Установите Development tools:

sudo dnf group -y install "Development Tools"

dnf install git wget vim  net-tools sqlite-devel psmisc ncurses-devel libtermcap-devel newt-devel libxml2-devel libtiff-devel gtk2-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) crontabs cronie-anacron

Загрузите и установите Jansson:

cd /usr/src/
git clone https://github.com/akheron/jansson.git
cd jansson
autoreconf -i
./configure --prefix=/usr/
make && make install

Загрузите и установите PJSIP:

cd /usr/src/
git clone https://github.com/pjsip/pjproject.git
cd pjproject
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
make dep
make
make install
ldconfig

Загрузите Asterisk:

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar xvfz asterisk-16-current.tar.gz
rm -f asterisk-16-current.tar.gz
cd asterisk-16*/

Конфигурация:

./configure --libdir=/usr/lib64

При успешной конфигурации Вы должны получить следующий вывод:

При успешной конфигурации Вы должны получить следующий вывод:

configure: Menuselect build configuration successfully completed

               .$$$$$$$$$$$$$$$=..
            .$7$7..          .7$$7:.
          .$$:.                 ,$7.7
        .$7.     7$$$$           .$$77
     ..$$.       $$$$$            .$$$7
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7
$$$       .7$$$$$$$$$$$$$$$$      :$$$.
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.
$$$        $$$   7$$$7  .$$$    .$$$.
$$$$             $$$$7         .$$$.
7$$$7            7$$$$        7$$$
 $$$$$                        $$$
  $$$$7.                       $$  (TM)
   $$$$$$$.           .7$$$$$$  $$
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$
       $$$$$$$$$$$$$$$$.

configure: Package configured for:
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

Если каких-то зависимостей нехватает то можно запустить скрипт install_prereq для их установки:

contrib/scripts/install_prereq

Запустите меню настройки:

make menuselect

В разделе «Add-ons» выберите «chan_ooh323» и «format_mp3»

В разделе «Core Sound Packages» выберите необходимые аудиопакеты (опционально)

В разделе «Music On Hold» выберите нужные форматы музыки на удержании (опционально)

В разделе «Extra Sound Packages» выберите дополнительные аудиопакеты (опционально)

В разделе «Applications» выберите «app_macro» (в — Deprecated —)

Затем нажмите save and exit

Сборка и установка:

Загрузите библиотеку mp3-декодера:

sudo contrib/scripts/get_mp3_source.sh

Соберите и установите Asterisk:

make
make install
make samples
make config
make install-logrotate ;Если требуется установка logrotate для ротации лог-файлов
ldconfig

Настройка и запуск

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

sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk
sudo usermod -aG audio,dialout asterisk
sudo chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk

Настройте запуск asterisk из под соответствующего пользователя:

Откройте файл /etc/sysconfig/asterisk и раскоментируйте следующие строки:

AST_USER="asterisk"
AST_GROUP="asterisk"

Откройте файл /etc/asterisk/asterisk.conf и раскоментируйте следующие строки:

runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

Перезапустите службу asterisk:

sudo systemctl restart asterisk

Включите asterisk в автозапуск при загрузке системы:

sudo systemctl enable asterisk

Проверьте статус asterisk:

systemctl status asterisk

Проверьте соединение с astierisk:

asterisk -vvvr

На этом установка asterisk закончена.

Установка FreePBX 15

Обновите систему:

sudo dnf -y update

Установите зависимости:

sudo dnf -y groupinstall  "Development Tools"

sudo dnf install -y @php tftp-server ncurses-devel sendmail sendmail-cf newt-devel libxml2-devel libtiff-devel gtk2-devel subversion kernel-devel git crontabs cronie cronie-anacron wget vim php-xml sqlite-devel net-tools gnutls-devel unixODBC

Установка и настройка сервера базы данных MariaDB

Установите MariaDB:

sudo dnf module install mariadb

Проверьте версию MariaDB:

rpm -qi mariadb-server

Включите MariaDB в автозапуск при загрузке системы:

sudo systemctl enable --now mariadb

Настройте параметры безопасности командой:

mysql_secure_installation

Убедитесь, что вы:

  • Установили пароль пользователя базы данных root
  • Удалили анонимных пользователей
  • Запретили удаленный доступ пользователю root
  • Удалили тестовую базу данных и доступ к ней

Затем проверьте доступ для пользователя root:

mysql -u root -p

Установка Node.js 10 LTS

Проверьте доступные версии Node.js:

sudo dnf module list | grep nodejs

Установите версию по умолчанию (если необходимо можно вручную указать другую версию):

sudo dnf module install nodejs:10

Проверьте установленную версию:

node --version

Установка и настройка Apache Web Server

Установите httpd:

sudo dnf -y install @httpd

Удалите страницу по умолчанию index.html:

sudo rm -f /var/www/html/index.html

Включите httpd в автозапуск при загрузке системы:

sudo systemctl enable --now httpd

Если у вас есть активная служба межсетевого экрана firewalld, откройте порты http и https:

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Установка и настройка PHP

Установите PHP и необходимые расширения:

sudo dnf -y install wget @php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysqlnd php-gettext php-bcmath php-zip php-xml  php-json php-process php-snmp

Скорректируйте настройки httpd

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

В /etc/php-fpm.d/www.conf пропишите:

listen.acl_users = asterisk

Запустите php-fpm и httpd:

sudo systemctl enable --now php-fpm httpd
sudo systemctl restart php-fpm httpd

Проверьте статус обоих служб:

sudo systemctl status php-fpm httpd

Загрузите последнюю версию FreePBX 15:

cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz

Распакуйте скачанный файл:

tar xfz freepbx-15.0-latest.tgz

Установите FreePBX:

cd freepbx
sudo ./start_asterisk start
sudo ./install -n

Если у вас есть root пароль для сервера базы данных, запустите:

sudo ./install -n --dbuser root --dbpass password

Перезапустите httpd:

sudo systemctl restart httpd

Откройте веб-браузер и подключитесь к IP-адресу или имени хоста вашего нового сервера FreePBX. Когда вы укажите данные администратора, нажмите «Создать учетную запись». На следующей странице откроется окно входа. После логина Вы попадете на панель управления FreePBX, где сможете управлять своей АТС Asterisk.

Установка FreePBX завершена.

  • asterisk_install/asterisk_16_freepbx_15_centos_8.txt
  • Последние изменения: 2020/06/12