SCROLL
Среднее время на прочтение: 4 мин.

Установка 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

[stextbox id=’warning’]ВНИМАНИЕ. Желательно перезагрузить систему и после этого продолжить установку.[/stextbox]

 

# Устанавливаем 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/

[stextbox id=’alert’]ВНИМАНИЕ. На момент написание статьи версия MariaDB ODBC — 3.1.9, поэтому обращаем внимание на случай ошибок и при необходимости корректируйте версионность. Последние версии можно посмотреть на оф. сайте — https://downloads.mariadb.com/Connectors/odbc/latest/.[/stextbox]

 

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

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

cd /opt/
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.1.tar.gz
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-19-current.tar.gz
wget https://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

 

# Я так же предпочитаю сразу устанавливать необходимый набор FreePBX модулей для построение полноценной АТС:

fwconsole ma downloadinstall asteriskinfo
fwconsole ma downloadinstall calendar
fwconsole ma downloadinstall callforward
fwconsole ma downloadinstall cel
fwconsole ma downloadinstall donotdisturb
fwconsole ma downloadinstall findmefollow
fwconsole ma downloadinstall ivr
fwconsole ma downloadinstall printextensions
fwconsole ma downloadinstall queues
fwconsole ma downloadinstall ringgroups
fwconsole ma downloadinstall timeconditions

 

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

Обсуждение

4 комментариев
    • Это ответ на комментарий Владимир

      Проверил, да действительно у них с момента написания статьи изменились именования на их репозитории, поправил в статье, указав корректный линк на скачивание пакета.

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

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

      Такое чувство что вы что то упустили идя по шагам в статье.

      А вообще нужно актуализировать установку актуальных версий asterisk + freepbx и уже на Debian 11.

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

    • Это ответ на комментарий Андрей

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