Установка Asterisk 19 с FreePBX 16 на Debian 10 Buster

# Устанавливаем необходимые пакеты зависимостей. Все действия ниже будут выполняться от root.

apt-get install build-essential linux-headers-`uname -r` apt-transport-https gnupg2 sudo apache2 mariadb-server mariadb-client default-libmysqlclient-dev bison flex 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 libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr -y
ВНИМАНИЕ. Желательно перезагрузить систему и после этого продолжить установку.

 

# Устанавливаем PHP версии 7.4 (для корректной работы FreePBX fwconsole):

wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
apt-get update && apt-get install php7.4 php7.4-curl php7.4-cli php7.4-common php7.4-mysql php7.4-gd php7.4-mbstring php7.4-intl php7.4-xml php-pear -y

# Устанавливаем NodeJS :

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt-get install nodejs -y

# Устанавливаем поддержку MariaDB ODBC

wget https://downloads.mariadb.com/Connectors/odbc/latest/mariadb-connector-odbc-3.1.9-debian-buster-amd64.tar.gz
tar -zxvf mariadb*
cp -v mariadb-connector-odbc-3.1.9-debian-buster-amd64/lib/mariadb/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
ВНИМАНИЕ. На момент написание статьи версия MariaDB ODBC — 3.1.9, поэтому обращаем внимание на случай ошибок и при необходимости корректируйте версионность. Последние версии можно посмотреть на оф. сайте — https://downloads.mariadb.com/Connectors/odbc/latest/.

 

Устанавливаем DAHDI, LibPRI

# Скачиваем все необходимые исходники (dahdi, libpri, asterisk, freepbx) и распаковываем их:

cd /opt/
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-19-current.tar.gz
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz
tar -zxvf dahdi-linux-complete-current.tar.gz
tar -zxvf libpri-current.tar.gz
tar -zxvf asterisk-19-current.tar.gz
tar -zxvf freepbx-16.0-latest.tgz

# Собираем по очереди (dahdi, libpri) из исходников и устанавливаем:

cd dahdi-linux-complete-3.*
make all
make install
make config
cd ..
cd libpri-1.*
make
make install
cd ..

 

Установка Asterisk

# Выполняем скрипт, который проверит какие еще необходимо установить зависимости, для работы Asterisk:

cd asterisk-19.*
contrib/scripts/install_prereq install
contrib/scripts/get_mp3_source.sh

#  Выполняем конфигурацию с поддержкой pjproject, jansson, mysqlclient, добавляем поддержку mp3 и запускаем меню выбора устанавливаемых компонентов:

./configure --with-pjproject-bundled --with-jansson-bundled --with-mysqlclient
make menuselect.makeopts
menuselect/menuselect --enable app_macro --enable format_mp3 --enable CORE-SOUNDS-EN-ULAW --enable  CORE-SOUNDS-EN-ALAW --enable  CORE-SOUNDS-EN-GSM --enable  CORE-SOUNDS-EN-G729 --enable  CORE-SOUNDS-RU-ULAW --enable  CORE-SOUNDS-RU-ALAW --enable  CORE-SOUNDS-RU-GSM --enable CORE-SOUNDS-RU-G729 menuselect.makeopts

#  Выполняем компиляцию исходников asterisk, затем выполняем установку astersik и завершаем установку asterisk:

make
make install
make config
ldconfig
update-rc.d -f asterisk remove
cd ..

#  Добавляем asterisk в автозагрузку:

systemctl enable asterisk

#  Создаем пользователя от которого будет работать asterisk. Назначаем права на каталоги asterisk и удаляем каталог сайта (apache2) по-умолчанию:

useradd -m asterisk
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk

rm -rf /var/www/html
touch /etc/asterisk/{modules,cdr}.conf

 

Установка FreePBX

#  Вносим необходимые правки в файлы конфигураций php, apache и применяем сделанные изменения в них:

sed -i 's/\(^upload_max_filesize = \).*/\1 256M/' /etc/php/7.4/apache2/php.ini
sed -i 's/\(^memory_limit = \).*/\1 256M/' /etc/php/7.4/apache2/php.ini
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
a2enmod rewrite
service apache2 restart

#  Создаем файл конфигурации /etc/odbcinst.ini:

cat <<EOF > /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage = 1
EOF

#  Создаем файл конфигурации /etc/odbc.ini

cat <<EOF > /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description = MySQL connection to 'asteriskcdrdb' database
Driver = MySQL
Server = localhost
Database = asteriskcdrdb
Port = 3306
Charset = utf8
Socket = /var/run/mysqld/mysqld.sock
Option = 3
EOF

#  Создадим базу данных для работы FreePBX:

mariadb

CREATE DATABASE asterisk default charset utf8;
CREATE DATABASE asteriskcdrdb default charset utf8;
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'asterpass';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* to asteriskuser@localhost IDENTIFIED BY 'asterpass';
FLUSH PRIVILEGES;
EXIT

 

#  Переходим в каталог с дистрибутивом FreePBX, запускаем Asterisk и выполняем установку:

cd freepbx/
./start_asterisk start
./install -n --dbuser=asteriskuser --dbpass=asterpass

 

# Добавляем в конфигурационный файл параметры от какого пользователя запускать службу Asterisk:

echo "runuser = asterisk" >> /etc/asterisk/asterisk.conf
echo "rungroup = asterisk" >> /etc/asterisk/asterisk.conf

 

Установка завершена, через Web браузер заходим в консоль FreePBX.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

2 комментария к “Установка Asterisk 19 с FreePBX 16 на Debian 10 Buster”

  1. Добрый день. Подскажите, пожалуйста, у пользователя asterisk, который создавался, есть пароль или его нужно самому задавать?

    Ответить
    • Добрый день. Не нужно задавать для него пароль и вообще вам под ним не нужно будет авторизовываться.

      Ответить

Оставьте комментарий

4 × 4 =