Установка Asterisk в Debian 10

Asterisk – свободный сервер для цифровой телефонии, работающий на базе Linux, FreeBSD, OpenBSD. Использование Asterisk позволяет создать собственную АТС с возможностью гибкой настройки функциональности. Сервер распространяется на условиях двойной лицензии, благодаря которой можно использовать решения как с открытым кодом, так и интегрировать модули с содержанием лицензионного кода.

В этой статье мы рассмотрим как выполняется установка Asterisk Debian 10. В репозиториях Debian как правило, содержится не самая свежая версия Asterisk, так как тысячи людей со всего мира активно развивают проект. Поэтому при установке собственного сервера часто используют компиляцию из исходного кода, что, кроме прочего, позволяет оптимизировать сервер под конкретное окружение Linux или BSD системы, что, в свою очередь, даёт прирост производительности при прочих равных условиях.

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

Шаг 1. Подготовка

Установите необходимые пакеты и выполните обновление ОС Debian 10

sudo apt -y update && sudo apt -y upgrade

sudo apt install -y build-essential linux-headers-`uname -r` openssh-server mariadb-server mariadb-client 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 libsrtp2-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr debhelper cmake libmariadb-dev odbc-mariadb libodb-mysql-dev

 

Шаг 2. Загрузка исходников

Создайте в месте хранения исходных кодов /usr/src директорию asterisk, в которую вы в дальнейшем поместите все исходные файлы и перейдите в неё

sudo mkdir /usr/src/asterisk

Загрузите исходный код Asterisk16 с официального сайта и распакуйте его:

cd /usr/src/asterisk
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
sudo tar xvzf asterisk-16-current.tar.gz
sudo rm asterisk-16-current.tar.gz

Шаг 3. Сборка дополнительных библиотек

Если есть оборудование для прямого подключения к серверу с цифровой АТС платами или каналом Е1, то необходимо установить модуль DAHDI и библиотеку LibPRI. Для установки последовательно введите команды ниже:

cd /usr/src/asterisk

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-current.tar.gz

sudo tar xvzf libpri-current.tar.gz
sudo rm libpri-current.tar.gz
sudo tar xvzf dahdi-linux-complete-current.tar.gz
sudo rm dahdi-linux-complete-current.tar.gz
cd /usr/src/asterisk/dahdi-linux-com*
sudo make
sudo make install
cd /usr/src/asterisk/libpri*
sudo make
sudo make install
sudo ldconfig

Астериск работает с оригинальной полноценной имплементацией протокола SIP, а также может одновременно для разных каналов использовать PJProject – более современную имплементацию протокола SIP. При этом на этапе подготовки к сборке можно указать ключ —with-pjproject-bundled скрипту для сборки проекта, расположенному по адресу /path/asterisk-source-dir/configure

Шаг 4. Установка PJSIP

Перейдите в каталог сборки проекта:

cd /usr/src/asterisk

На момент написания статьи актуальный стабильный релиз PJProject 2.10. Необходимо скачать проект, распаковать и запустить компиляцию из исходного кода. Для этого поочерёдно введите команды:

sudo wget https://github.com/pjsip/pjproject/archive/2.10.tar.gz
sudo tar xvzf 2.10.tar.gz
sudo rm 2.10.tar.gz
cd /usr/src/asterisk/pjproject-*
sudo./configure
sudo make
sudo make dep
sudo make install
sudo ldconfig

Шаг 5. Подготовка к компиляции Asterisk

Добавьте пользователя asterisk в список Linux пользователей:

sudo useradd asterisk

Перейдите в каталог с исходным кодом asterisk

cd /usr/src/asterisk/asterisk*

На момент написания статьи актуальной версией Asterisk 16 является 16.17.9. Сначала необходимо установить оставшиеся зависимости. После выполнения команды:

ls /usr/src/asterisk/asterisk-16.17.0/contrib/scripts

Должен появиться вывод приблизительно такой, как на скриншоте выше. В этой директории содержатся несколько исполняемых файлов asterisk, которые необходимо выполнить

/usr/src/asterisk/asterisk-16.17.0/contrib/scripts/get_libc_source.sh

/usr/src/asterisk/asterisk-16.17.0/contrib/scripts/get_mp3_source.sh

/usr/src/asterisk/asterisk-16.17.0/contrib/scripts/get_swagger_ui.sh

/usr/src/asterisk/asterisk-16.17.0/contrib/scripts/install_prereq install

В процессе установки зависимостей может потребоваться ввести код страны, для которой устанавливается АТС, временную зону сервера Debian 10. Введите цифры кода без знака «+»

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

Шаг 6. Сборка Asterisk из исходного кода

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

/usr/src/asterisk/asterisk-16.17.0/configure --with-pjproject-bundled –with-jansson-bundled

Jansson это ещё один проект, который используется при работе Asterisk. Он позволяет использовать данные JSON, на нем основано много функций гибкого управления АТС и передачи данных во внешние приложения и получения данных из них же.

На следующем этапе создаётся меню, которое позволяет управлять модулями для текущей сборки Asterisk

make menuselect

В этом меню XXX отмечены модули, которые не были найдены в системе.

Некоторые модули отключены по-умолчанию, но в системе установлены. Если их отметить звёздочкой, то модули будут включены в собираемый проект.

Особое внимание уделите кодекам, которые будут собраны при сборке проекта. Лучше выделить все доступные, чтобы в дальнейшем не тратить ресурсы сервера на пересборку проекта. После завершения выбора нажмите Save & Exit и последовательно введите команды сборки:

make

make config

make install

make samples

ldconfig

Если после завершения сборки, в директории /lib/systemd/system не появился файл asterisk.service необходимо его туда скопировать командой

sudo cp /usr/src/asterisk/asterisk-16.17.0/contrib/systemd/asterisk.service /lib/systemd/system

Задайте права на исполняемые файлы и создайте необходимые директории

chown asterisk:asterisk /var/run/asterisk

chown -R asterisk:asterisk /etc/asterisk

chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk

chown -R asterisk:asterisk /usr/lib/asterisk

Шаг 7. Запуск Asterisk

По завершении включаем автозагрузку Asterisk при запуске ОС Debian 10 и перезапускаем службу сервера

systemctl enable asterisk

systemctl restart asterisk

Шаг 8. Настройка Asterisk

Для подключения к консоли сервера телефонии из терминала наберите команду

asterisk -rvvv

Убедиться, что произошло подключение к собранной версии АТС можно с помощью команды консоли Asterisk

core show version

module show

Показывает загруженные при работе модули, ими можно управлять как из конфигурационных файлов, так и из консоли Asterisk. Для выхода из консоли управления сервером введите команду

exit

При вводе команды make samples при сборке Asterisk создаются типовые файлы настроек, которые возможно редактировать из Терминала или с помощью различных административных панелей управления сервером Asterisk, например такой, как FreePBX. Убедитесь, что исходные настройки были созданы командой

ls /etc/asterisk

Выводы

Теперь вы знаете как выполняется установка Asterisk 16 на Debian 10. Сборка Asterisk из исходного кода позволяет оптимизировать под выбранное окружение исполняемые файлы сервера. Этот достаточно простой и проработанный процесс позволяет понять каким образом собираются проекты из исходного кода, какие элементы ОС Debian 10 использует собираемый проект.

В дальнейшем на установленный из исходного кода сервер цифровой телефонии Asterisk можно будет развернуть web-интерфейс для оптимизации управлением сервера и добавлением дополнительных функций.

Источник

Понравилась статья? Поделиться с друзьями: