Установка 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.
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
такого исходника нет, но есть:
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1-current.tar.gz
и я получаю ошибку:
root@aster:/opt/freepbx# ./start_asterisk start
STARTING ASTERISK
./start_asterisk: строка 45: /usr/sbin/safe_asterisk: Нет такого файла или каталога
Проверил, да действительно у них с момента написания статьи изменились именования на их репозитории, поправил в статье, указав корректный линк на скачивание пакета.
По поводу ошибки старта asterisk, тут тоже нужно понимать все ли вы делали строго по шагам, выполняя все команды из статьи. asterisk точно установился, попробуйте перейти в каталог с исходником и выполнить повторно:
make && make install && make config
ldconfig && update-rc.d -f asterisk remove
Такое чувство что вы что то упустили идя по шагам в статье.
А вообще нужно актуализировать установку актуальных версий asterisk + freepbx и уже на Debian 11.
Добрый день. Подскажите, пожалуйста, у пользователя asterisk, который создавался, есть пароль или его нужно самому задавать?
Добрый день. Не нужно задавать для него пароль и вообще вам под ним не нужно будет авторизовываться.