# Устанавливаем необходимые пакеты зависимостей. Все действия ниже будут выполняться от 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
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
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
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
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
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt-get install nodejs -y
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
cp -v mariadb-connector-odbc-3.1.9-debian-buster-amd64/lib/mariadb/libmaodbc.so /usr/lib/x86_64-linux-gnu/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/
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) и распаковываем их:
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
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
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.*
cd dahdi-linux-complete-3.*
make all
make install
make config
cd ..
cd dahdi-linux-complete-3.*
make all
make install
make config
cd ..
cd libpri-1.*
make
make install
cd ..
cd libpri-1.*
make
make install
cd ..
Установка Asterisk
# Выполняем скрипт, который проверит какие еще необходимо установить зависимости, для работы Asterisk:
contrib/scripts/install_prereq install
contrib/scripts/get_mp3_source.sh
cd asterisk-19.*
contrib/scripts/install_prereq install
contrib/scripts/get_mp3_source.sh
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
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
./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
./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:
update-rc.d -f asterisk remove
make
make install
make config
ldconfig
update-rc.d -f asterisk remove
cd ..
make
make install
make config
ldconfig
update-rc.d -f asterisk remove
cd ..
# Добавляем asterisk в автозагрузку:
systemctl enable asterisk
systemctl enable asterisk
systemctl enable asterisk
# Создаем пользователя от которого будет работать asterisk. Назначаем права на каталоги asterisk и удаляем каталог сайта (apache2) по-умолчанию:
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
touch /etc/asterisk/{modules,cdr}.conf
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
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
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
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
Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
cat <<EOF > /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage = 1
EOF
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
Description = MySQL connection to 'asteriskcdrdb' database
Socket = /var/run/mysqld/mysqld.sock
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
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:
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';
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
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 и выполняем установку:
./install -n --dbuser=asteriskuser --dbpass=asterpass
cd freepbx/
./start_asterisk start
./install -n --dbuser=asteriskuser --dbpass=asterpass
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
echo "runuser = asterisk" >> /etc/asterisk/asterisk.conf
echo "rungroup = asterisk" >> /etc/asterisk/asterisk.conf
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
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
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, который создавался, есть пароль или его нужно самому задавать?
Добрый день. Не нужно задавать для него пароль и вообще вам под ним не нужно будет авторизовываться.