Установка Asterisk из исходного кода

В этой статье я приведу пример установки Asterisk из исходного кода, например мне это понадобилось чтобы установить новую версию Asterisk в Ubuntu Server 22.04, так как из репозитория по умолчанию устанавливалась версия Asterisk 18, а также по умолчанию не было нужных мне модулей, например Voicemail.

Переключимся на root пользователя:

sudo -i

Установим необходимые компоненты для установки Asterisk:

apt update
apt install wget build-essential git autoconf subversion pkg-config libtool libedit-dev

Скачаем архив с необходимой версией Asterisk и распакуем его:

cd /usr/src/
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar -zxvf asterisk-20-current.tar.gz
ls
cd asterisk-20.1.0

Также можно скачать отсюда:

git clone -b 20 https://gerrit.asterisk.org/asterisk asterisk-20
cd asterisk-20/

Установим необходимые компоненты для Asterisk (возможно придется запустить несколько раз):

contrib/scripts/install_prereq install
contrib/scripts/get_mp3_source.sh

Подготовим код Asterisk до компиляции:

./configure

Если вдруг понадобится повторно запустить configure, то очистим старый кэш:

make distclean
./configure

Запустим menuselect чтобы выбрать какие модули и компоненты необходимо установить вместе с Asterisk:

make menuselect

Можно установить примеры конфигураций:

make samples
make basic-pbx

Установим скрипт автозапуска Asterisk и скрипт ротации логов:

make config
make install-logrotate

Соберем и установим Asterisk:

make
make install

Создадим пользователя и группу asterisk, а также укажем их в конфигурации:

groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
usermod -aG audio,dialout asterisk
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib/asterisk

nano /etc/default/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"

nano /etc/asterisk/asterisk.conf
runuser = asterisk
rungroup = asterisk

nano /etc/logrotate.d/asterisk
create 640 asterisk asterisk

Активируем автозапуск Asterisk при запуске операционной системы и запустим Asterisk:

systemctl enable asterisk
systemctl start asterisk
systemctl status asterisk.service

Пример подключения к консоли Asterisk в режиме отладки (чем больше букв v — тем больше отладочных данных будет отображаться):

asterisk -rvv

Файлы модулей находятся в директории /usr/lib/asterisk/modules, звуковые файлы обычно находятся в директории /var/lib/asterisk/sounds, Asterisk воспроизводит файлы того формата которые легче всего обработать CPU, пример можно посмотреть в таблице выполнив команды:

core show translation
core show translation recalc 60

Если вместо модуля SIP вы установили PJSIP, то например вместо команды «sip show peers» нужно будет выполнять:

pjsip show endpoints

Список доступных команд можно посмотреть так:

core show help

Смотрите также мои статьи:
IPTables правила для Asterisk
Установка Asterisk в Ubuntu Server
Другие мои статьи про Asterisk

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

Добавить комментарий