IT-блог Жаконды
Поиск
Поддержи автора блога и полезный материал будет появляться чаще
Вы здесь :
IT-блог Жаконды
Asterisk
Установка FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch
09.12.2019
Автор:
Жаконда
769 Просмотров
20 комментариев
Содержание статьи:
Подготовка системы
Устанавливаем DAHDI, LibPRI
Установка Asterisk
Установка FreePBX
Рассмотрим как установить FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch.
Подготовка системы
Перед началом установки обновляем систему до актуального состояния:
apt-get update && apt-get upgrade -y
Устанавливаем необходимые зависимости:
apt-get install build-essential linux-image-amd64 linux-headers-* apt-transport-https 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 libsrtp0-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr sudo apache2 mariadb-server mariadb-client default-libmysqlclient-dev -y
Перезагружаем систему и продолжаем установку.
Устанавливаем PHP версии 5.6 (для корректной работы FreePBX fwconsole):
curl https://packages.sury.org/php/apt.gpg | apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/deb.sury.org.list
apt-get update && apt-get install php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-mbstring php5.6-gd php5.6-xml php-pear -y
Устанавливаем NodeJS :
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
apt-get install nodejs -y
pear install Console_Getopt
Устанавливаем поддержку MariaDB ODBC
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.19-linux-debian9-x86-64bit.tar.gz
tar -zxvf mysql-connector-odbc-8.0.19-linux-debian9-x86-64bit.tar.gz
cp -v mysql-connector-odbc-8.0.19-linux-debian9-x86-64bit/lib/libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/
Так как была установлена MariaDB, то рекомендуется выполнить дополнительный скрипт, для настройки безопасности:
mysql_secure_installation
В ходе выполнения команды, будет заданы вопросы (смены пароля root, удаления анонимных учетных записей, отключения удаленного доступа для root, удаления тестовой базы данных, сброса привилегий).
Устанавливаем DAHDI, LibPRI
Для удобства дальнейшей инсталляции скачиваем все необходимые исходники (dahdi, libpri, asterisk, freepbx) и распаковываем их:
10
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-16-current.tar.gz
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
tar -zxvf dahdi-linux-complete-current.tar.gz
tar -zxvf libpri-current.tar.gz
tar -zxvf asterisk-16-current.tar.gz
tar -zxvf freepbx-14.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-16.*
contrib/scripts/install_prereq install
contrib/scripts/get_mp3_source.sh
В процессе установки, необходимо будет задать телефонный код, оставляем по-умолчанию 7 (Россия).
Выполняем конфигурацию с поддержкой pjproject, jansson, mysqlclient, добавляем поддержку mp3 и запускаем меню выбора устанавливаемых компонентов:
./configure --with-pjproject-bundled --with-jansson-bundled --with-mysqlclient
make menuselect
Выбираем:
Add-ons
— поддержка format_mp3, res_config_mysql, app_mysql, cdr_mysq.
Applications
— поддержка app_macro (необходимый модуль для работы FreePBX)
Core Sound Packeges
— CORE-SOUNDS-EN-ULAW, CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-EN-G729, CORE-SOUNDS-RU-ULAW, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, CORE-SOUNDS-RU-G729
Остальное я оставляю по-умолчанию.
Выполняем компиляцию исходников asterisk, затем выполняем установку astersik и завершаем установку asterisk:
make
make install
make config
ldconfig
update-rc.d -f asterisk remove
cd ..
Добавляем asterisk в автозагрузку:
systemctl enable asterisk
Создаем пользователя (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 128M/' /etc/php/5.6/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/libmyodbc8w.so
FileUsage = 1
EOF
Создаем файл конфигурации /etc/odbc.ini
10
11
cat <<EOF > /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description = MySQL connection to 'asteriskcdrdb' database
Driver = MySQL
Server = localhost
Database = asteriskcdrdb
Port = 3306
Материал сокращён при переносе в новую базу знаний. Полная версия сохранена в архиве старого сайта.