В этой статье я приведу пример установки 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