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.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали




















Я извиняюсь, делал всё в точности, но так не работает - сперва непонятно зачем понатыканное везде sudo.
Его в пустом Deb10 нету
"sudo curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -"
=>## Defer setup until we have the complete script setup
Фиг с ним:
curl -sL https://deb.nodesource.com/setup_11.x -o nodesource_setup.sh
bash nodesource_setup.sh
apt-get update && sudo apt-get install yarn
apt-get upgrade
node -v
#v11.15.0
Дальнейшая установка всего и сразу выдала:
Package 'libsrtp0-dev' has no installation candidate
Фиг с ним, какой то "кусок циски" ... пробуем без него
The following packages have unmet dependencies:
asterisk-voicemail : Conflicts: asterisk-voicemail-storage
asterisk-voicemail-odbcstorage : Conflicts: asterisk-voicemail-storage
E: Unable to correct problems, you have held broken packages.
Либо Ваш дистрибутив имел какие то отличия от чистого, либо это просто непроверенная "локализация" ВИКИ freePBX"
К предыдущему комменту - да, это невычитанный и неопробованный вариант с WIKI
Ставим сами curl и sudo (или работаем под рутом)
Если ставите на Проксмоксе - не устанавливаем linux-headers-`uname -r`
Пакет libsrtp0-dev меняем на libsrtp2-dev
asterisk-voicemail : Conflicts: asterisk-voicemail-storage
asterisk-voicemail-odbcstorage : Conflicts: asterisk-voicemail-storage
#сам встал на этом месте. может, кто подскажет, что делать?