Найти тему
Шпаргалки Эникея

Установка Asterisk 16 и FreePBX 15 на Ubuntu/Debian

Всем привет

Если в офисе нет развернутой телефонии, а звонить с городского номера очень хочется, переключать входящие вызовы по коротким номерам, ввести к городскому номеру добавочные короткие номера, но цена за VoiP-шлюз режет глаз, то можно развернуть программную телефонию и пользоваться ей через SIP-телефоны в локальной сети, либо через софтофоны на Android или iPhone, благо их на айфон полным полно, а на андроид - уже есть встроенная функция в гугловскую звонилку.

Итак, начнем

Надеюсь все умеют устанавливать линуксовые дистрибутивы и настраивать на них сеть + обновлять пакеты, этот шаг пропустим, начнем сразу с установки. За основу был взят дистрибутив Ubuntu Server 18.04, на новые версии и иные Debian-дистрибутивы минимальные различия при установке

1. Установка зависимостей Asterisk'а

sudo apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev

2. Качаем исходники Asterisk'а

sudo curl -O http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

3. Распаковываем

sudo tar xvf asterisk-16-current.tar.gz
cd asterisk-16*/

где * - название распакованной папки, если не переходит, вводим ls, видим отображение всего содержимого папки, в которой вы сейчас находитесь, и пишем целиком команду

cd asterisk-16-current/

Запускаем скрипт для загрузки библиотеки mp3-декодера для нашей телефонии

sudo contrib/scripts/get_mp3_source.sh

4. Убедимся, что все зависимости установлены

sudo contrib/scripts/install_prereq install

выдаст

#############################################
# # install completed successfully
#############################################

5. Конфигурация

запускаем скрипт конфигурации

sudo ./configure
sudo make menuselect

выдаст меню с выбором необходимых функций

в Add-ons выбираем

Для музыки на удержании выбираем следующее

-2

Включаем app_macro в Applications

-3

6. Запускаем сборку

sudo make

Сборка программы займет минут 10-15

sudo make install

Опционально можно установить документацию командой

sudo make progdocs

Наконец, устанавливаем конфиги и шаблоны

sudo make samples
sudo make config
sudo ldconfig

7. Создаем пользователя Asterisk'a

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

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
sudo chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk.asterisk /usr/lib/asterisk

Назначаем пользователя Asterisk пользователем по-умолчанию для нашей телефонии

sudo nano /etc/default/asterisk
AST_USER="
asterisk"
AST_GROUP="
asterisk"

sudo nano /etc/asterisk/asterisk.conf
runuser =
asterisk ; The user to run as.
rungroup =
asterisk ; The group to run as.

Перезапускаем службу телефонии и включаем ее

sudo systemctl restart asterisk
sudo systemctl enable asterisk

Пробуем подключиться к CLI Аsterisk'a

sudo asterisk -rvv

Если все прошло удачно, то мы попадем в командную строку Asterisk'a

-4

8. Установка веб-интерфейса FreePBX

Начнем с установки DB-сервера

sudo apt -y install mariadb-server mariadb-client

Далее ставим Node.js для выполнения скриптов веб-интерфейса

Сначала добавляем репозиторий

sudo apt update
sudo apt -y install curl dirmngr apt-transport-https lsb-release ca-certificates
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

Потом, собственно, ставим саму платформу

sudo apt update
sudo apt -y install gcc g++ make
sudo apt -y install nodejs

Устанавливаем Web-сервер Apache

sudo apt -y install apache2

Назначаем пользователя asterisk для веб-сервера, разрешаем переопределение

sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
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 rm -f /var/www/html/index.html

Устанавливаем php и зависимости

sudo apt -y install wget php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-gettext php-bcmath php-zip php-xml php-imap php-json php-snmp php-fpm libapache2-mod-php

Изменяем максимальный размер загрузок для php

sudo sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.2/apache2/php.ini
sudo sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.2/cli/php.ini

Обращаем внимание на установленную версию, она может отличаться

ВАЖНО

Веб-интерфейс FreePBX может не работать с версией PHP 7.4+ из-за magic_quotes, при этом для "работоспособности" возможно отключить bootstrap в файле конфигурации FreePBX, но потом теряется часть мониторинга, обработка ошибок и т.д.

Для Ubuntu Server 20.04 ставим версию php 7.2 принудительно

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt -y install wget php7.2 php-pear php7.2-cgi php7.2-common php7.2-curl php7.2-mbstring php7.2-gd php7.2-mysql php7.2-gettext php7.2-bcmath php7.2-zip php7.2-xml php7.2-imap php7.2-json php7.2-snmp php7.2-fpm libapache2-mod-php7.2
sudo update-alternatives --set php /usr/bin/php7.2
sudo service apache2 restart

Наконец, качаем исходники веб-интерфейса FreePBX

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

Распаковываем

tar xfz freepbx-15.0-latest.tgz

Начинаем установку

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

если вы раньше уже пользовались базой данных, то команда будет такого вида, имя пользователя и пароль изменить на свое

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

После установки включаем модуль Apache и перезапускаем службу

sudo a2enmod rewrite
sudo systemctl restart apache2

Для Ubuntu Server 20.04 в случае появления ошибок дополнительно ставим модули

sudo apt install npm
sudo fwconsole ma downloadinstall pm2
sudo fwconsole ma enable pm2

После этого заходим в веб-браузер на ваш_айпи/admin, создаем пользователя и готовимся к дальнейшей настройке транков, IVR-меню и внутренних номеров

Всем спасибо за внимание

#системное администрирование #Ubuntu server #VOIP #серверное администрирование #asterisk #freepbx