FreePBX – это графический интерфейс и система управления с открытым исходным кодом для цифровой АТС Asterisk. Цифровая АТС Asterisk — свободное решение компьютерной телефонии (в том числе, VoIP) с открытым исходным кодом от компании Digium, первоначально разработанное Марком Спенсером. Имя проекта произошло от названия символа «*» (англ. asterisk — «звёздочка»).
В этой статье мы рассмотрим выполняется установка Asterisk на Debian 10. Связка Asterisk + FreePBX позволяет использовать практически все протоколы голосовой связи и видео связи (SIP и H.323) и гибко настраивать голосовую почту, конференцсвязь, IVR (интерактивное голосовое меню), осуществлять запись и хранение диалогов, управлять очередями звонков, распределять звонки по внешним и внутренним абонентам.
Установка Asterisk на Debian 10
Для целей демонстрации установки FreePBX давайте установим Asterisk из пакетов Debian 10.
Шаг 1. Подготовка системы
Добавьте в систему репозитории backports для Debian для установки связи odbc для mariadb:
sudo echo deb http://ftp.us.debian.org/debian/ buster-backports main >>/etc/apt/sources.list.d/backports.list
sudo echo deb-src http://ftp.us.debian.org/debian/ buster-backports main >> /etc/apt/sources.list.d/backports.list
Репозитории для установки различных версий PHP:
sudo apt -y install lsb-release apt-transport-https ca-certificates
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
Установите репозиторий Node.js:
sudo curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
И запустите обновление системы:
sudo apt -y update && sudo apt -y upgrade
Шаг 2. Установка необходимых пакетов
После обновления установите необходимые пакеты, Asterisk и релиз PHP7.3, на базе которого гарантированно стабильно будет работать FreePBX:
sudo apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mariadb-client bison flex php7.3 php7.3-curl php7.3-cli php7.3-common php7.3-mysql php-pear php7.3-gd php7.3-mbstring php7.3-intl php7.3-ldap php7.3-bcmath php7.3-xml curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev sudo subversion libtool-bin python-dev unixodbc dirmngr asterisk asterisk-config asterisk-core-sounds-ru asterisk-core-sounds-ru-g722 asterisk-core-sounds-ru-gsm asterisk-core-sounds-ru-wav asterisk-modules asterisk-mp3 asterisk-mysql asterisk-ooh323 asterisk-opus asterisk-voicemail asterisk-voicemail-odbcstorage nodejs
Запустите asterisk, а автоматический запуск при загрузке системы отключите, так как FreePBX задачи управления Asterisk берет на себя:
sudo systemctl restart asterisk
sudo systemctl disable asterisk
Чтобы подключиться из терминала к консоли Asterisk наберите:
sudo asterisk -rvvv
Эта команда показывает версию установленного Asterisk:
core show version
А эта выводит список модулей Asterisk:
module show
Для выхода выполните:
Шаг 3. Установка зависимостей FreePBX
Загрузите FFMPEG-static и установите его для управления звуками:
cd /usr/src
sudo wget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz"
sudo tar xf ffmpeg-release-amd64-static.tar.xz
cd ffmpeg-4*
sudo mv ffmpeg /usr/local/bin
Установите PEAR модуль, необходимый для функционирования FreePBX:
sudo pear install Console_Getopt
Шаг 4. Настройка Asterisk
Настройте права и создайте необходимые директории для работы Asterisk + FreePBX:
sudo chown asterisk. /var/run/asterisk
sudo chown -R asterisk. /etc/asterisk
sudo chown -R asterisk. /var/{lib,log,spool}/asterisk
sudo chown -R asterisk. /usr/lib/asterisk
Остановите Asterisk и измените содержимое директории с его конфигурационными файлами /etc/asterisk/
sudo systemctl stop asterisk
cd /etc/asterisk
ls /etc/asterisk/
Введите последовательно команды по настройке конфигурации Asterisk:
sudo mkdir DIST
sudo mv * DIST
sudo cp DIST/asterisk.conf .
sudo sed -i 's/(!)//' asterisk.conf
sudo touch modules.conf
sudo touch cdr.conf
sudo touch /etc/asterisk/{modules,ari,statsd}.conf
sudo chown asterisk:asterisk /var/run/asterisk/*
sudo chmod 0777 /var/run/asterisk/*
Шаг 5. Настройка WEB-сервера apache2
Выберите версию PHP 7.3 для веб-сервера:
sudo a2enmod php7.3
Для работы FreePBX необходимо внести изменения в конфигурационные файлы php и веб-сервера:
sudo sed -i 's/(^upload_max_filesize = ).*/120M/' /etc/php/7.3/apache2/php.ini
sudo sed -i 's/(^memory_limit = ).*/1256M/' /etc/php/7.3/apache2/php.ini
sudo sed -i 's/^(User|Group).*/1 asterisk/' /etc/apache2/apache2.conf
sudo sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
sudo a2enmod rewrite
sudo systemctl enable apache2
sudo rm /var/www/html/index.html
sudo systemctl restart apache2
Шаг 6. Настройка ODBC
Внесите изменения в файлы /etc/odbc.ini и /etc/odbcinst.ini для подключения Asterisk и FreePBX к MariaDB через коннектор ODBC так, как приведено ниже:
sudo vi /etc/odbc.ini
sudo vi /etc/odbc.ini
Шаг 6. Настройки MariaDB
Запустите утилиту первоначальной настройки MariaDB:
sudo mysql_secure_installation
Для единственного сервера цифровой телефонии, хранящего исключительно базы данных Asterisk и FreePBX можно не устанавливать пароль суперпользователя. Однако на рабочей машине, подключенной к Интернет настоятельно рекомендую установить все пароли. Вывод команды и ответы на вопросы, касающиеся обеспечения безопасности установки MariaDB приведу ниже:
На этом все необходимые настройки в конфигурацию Debian 10 внесены.
Шаг 7. Установка FreePBX
Теперь осталась установка freepbx. Перейдите в каталог, в котором хранятся исходные файлы системы:
cd /usr/src
Закачайте архив с пактом FreePBX версии 14:
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
Распакуйте архив и удалите скачанный файл:
tar vxfz freepbx-14.0-latest.tgz
rm -f freepbx-14.0-latest.tgz
Перезагрузите машину, чтобы продолжить установку FreePBX. Если перезагрузки не произойдёт, вы не сможете управлять Asterisk из дистрибутива FreePBX:
reboot
После перезагрузки откройте терминал и продолжайте настройку FreePBX:
cd /usr/scr/freepbx*
sudo ./start_asterisk start
Проверьте, удалось ли запустить Asterisk из дистрибутива FreePBX:
ps ax | grep asterisk
Создайте директорию для установки веб-интерфейса FreePBX, задайте ее права:
sudo mkdir /var/www/freepbx
sudo chown asterisk:asterisk /var/www/freepbx
Если планируется использовать WEB-сервер apache для работы только FreePBX, то установите директорию /var/www/freepbx основной для сервера apache
sed -i 's//var/www/html//var/www/freepbx/g' /etc/apache2/sites-available/000-default.conf
sed -i 's//var/www/html//var/www/freepbx/g' /etc/apache2/sites-available/default-ssl.conf
Находясь в директории /usr/src/freepbx запустите утилиту инсталляции веб-интерфейса FreePBX в созданное расположение /var/www/freepbx. Ключ -n говорит о том, что все остальные параметры установки по-умолчанию, в том числе пароль суперпользователя root MariaDB пустой:
./install --webroot=/var/www/freepbx -n
В процессе установки FreePBX подгружает необходимые модули:
Шаг 8. Подключение к веб-интерфейсу FreePBX
В результате FreePBX будет установлен, к нему можно будет подключиться, введя с машины адрес http://127.0.0.1/ или с любого другого устройства с доступом по сети. Для этого определим «внешний» IP-адрес устройства:
sudo ip a
В моем случае это адрес 192.168.31.57, поэтому после ввода в браузере http://192.168.31.57/ откроется окно настройки FreePBX.
В финале рекомендую установить все необходимые расширения FreePBX из терминала с помощью команды fwconsole
fwconsole ma installall
По завершении установки перезагрузите FreePBX:
fwconsole reload
На этом установка FreePBX завершена.
Выводы
Теперь вы знаете как выполняется установка freepbx на Debian 10.В результате установки FreePBX вы смогли получить полностью готовую к работе Цифровую АТС с установленной системой управления звонками, голосовыми функциями, функциями фиксации переговоров и возможностью обработки и управления звонками с помощью функциональности AGI Asterisk и функций FreePBX.