Сборка Asterisk из исходных файлов
Предварительная подготовка
Обновление пакетов
Предварительно необходимо подготовить систему к установке Asterisk. Сначала обновим индексы пакетов.
Для Ubuntu/Debian:
apt update
Для RHEL/CentOS/Fedora:
yum update
Загрузка Asterisk
Далее создадим директорию, в которой будем работать с исходными файлами Asterisk
mkdir -p /usr/src/asterisk
cd /usr/src/asterisk
После создания директории необходимо скачать Asterisk.
Заходим на официальный сайт и переходим в раздел "Downloads"

Нажимаем правой кнопкой мыши по кнопке "Download" и копируем её.
Рекомендуем устанавливать актуальные LTS версии Asterisk

https://downloads.asterisk.org/pub/telephony/asterisk/
Это адрес официального репозитория, где можно найти актуальные и архивные версии Asterisk.
Теперь загружаем архив через терминал командой wget.
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
Распаковываем архив, удаляем его и переходим в папку с распакованными файлами
tar xvf asterisk-22-current.tar.gz && rm asterisk-22-current.tar.gz
cd asterisk-22.6.0
В исходниках Asterisk есть готовый скрипт для установки всех зависимостей, который находится по пути [src_path]/contrib/scripts/install_prereq. Его можно запусти ть с двумя флагами:
-
test- показывает все зависимости. -
install- устанавливает все зависимости.
Устанавливаем все необходимые зависимости:
contrib/scripts/install_prereq install
Запускаем скрипт конфигурации для сборки Asterisk, который определяет совместимость с ОС и наличие требуемых зависимостей для корректной сборки.
./configure --with-jansson-bundle --with-pjproject-bundled --libdir=/usr/lib64
-
--with-jansson-bundle- компилирует и использует собственную копию Jansson (JSON) вместо системной -
--with-pjproject-bundled- компилирует встроенную версию PJProject вместо системной установки -
--libdir=/usr/lib64- устанавливает скомпилированные библиотеки в /usr/lib64. Рекомендуется использовать для RHEL/CentOS/Fedora, поскольку Debian/Ubuntu используют мультиархитектурную систему
Вызываем интерактивное меню выбора модулей Asterisk и выбираем необходимые параметры.
По умолчанию необходимые модули, требующиеся для решения большей части задач уже включены. Поэтому этот шаг опционален.
make menuselect
Далее компилируем программу, устанавливаем её в систему и создаём службу.
Шаблоны конфигурационных файлов, создаваемые командой make samples, всегда можно найти в исходных файлах Asterisk по пути [src_path]/configs/samples
make
make install
make config
make samples #опционально. Создаёт шаблоны конфигурационных файлов в **_/etc/asterisk_**
В случае, если была неудачная попытка компиляции, необходимо использовать команду make clean
Создаём пустой конфигурационный файл для модулей. Без него Asterisk НЕ запустится.
touch /etc/asterisk/modules.conf
Добавляем Asterisk в автозагрузку, запускаем и проверяем статус.
systemctl enable asterisk -now
systemctl status asterisk
Asterisk успешно установлен.