Перейти к основному содержимому

Сборка Asterisk из исходных файлов

Предварительная подготовка

Обновление пакетов

Предварительно необходимо подготовить систему к установке Asterisk. Сначала обновим индексы пакетов.

Для Ubuntu/Debian:

apt update

Для RHEL/CentOS/Fedora:

yum update

Загрузка Asterisk

Далее создадим директорию, в которой будем работать с исходными файлами Asterisk

mkdir -p /usr/src/asterisk
cd /usr/src/asterisk

После создания директории необходимо скачать Asterisk.

Заходим на официальный сайт и переходим в раздел "Downloads"

1.png

Нажимаем правой кнопкой мыши по кнопке "Download" и копируем её.

к сведению

Рекомендуем устанавливать актуальные LTS версии Asterisk

2.png

к сведению

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 успешно установлен.