Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

Хотите развернуть собственную профессиональную телефонию с полным контролем над функционалом? Забудьте о дорогих проприетарных АТС! Asterisk — это мощный open-source сервер, который превратит ваш Debian 10 в полноценный коммутатор.

Мы не будем использовать устаревшие пакеты из репозиториев. Вместо этого вы соберете Asterisk 16 из исходного кода. Такой подход даст вам последние функции и оптимизацию под ваше железо.

Вы пройдете весь путь от подготовки системы до первого запуска. Установите все зависимости, скомпилируете нужные библиотеки вроде DAHDI, LibPRI и современного PJSIP.

Научитесь работать с меню сборки `menuselect`, чтобы включить только необходимые модули и кодеки. Мы покажем, как правильно настроить права и запустить Asterisk как службу.

После прохождения гайда у вас будет работающий сервер, готовый к тонкой настройке под ваши задачи. Вы получите не просто АТС, а гибкий инструмент для построения коммуникаций.

Готовы создать свою телефонию? Начинаем!


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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

 

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

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

sudo mkdir /usr/src/asterisk

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

Загрузите исходный код 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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

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

sudo useradd asterisk

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

cd /usr/src/asterisk/asterisk*

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

Собираем Asterisk 16 на 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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

Особое внимание уделите кодекам, которые будут собраны при сборке проекта. Лучше выделить все доступные, чтобы в дальнейшем не тратить ресурсы сервера на пересборку проекта. После завершения выбора нажмите 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 16 на Debian 10: Полный гайд по установке с нуля

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

core show version

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

module show

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

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

exit

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

ls /etc/asterisk

Собираем Asterisk 16 на Debian 10: Полный гайд по установке с нуля

Выводы

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

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

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив