Установка Asterisk на Ubuntu 20.04/22.04 - Пошаговая инструкция | AdminWiki

Установка Asterisk на Ubuntu: Полное руководство для DevOps

18 декабря 2025 7 мин. чтения #asterisk #devops #pbx #sip #ubuntu #voip #настройка #установка
Содержание статьи

Что такое Asterisk и зачем он нужен

Представь, что тебе нужно развернуть собственную телефонную станцию для бизнеса или домашней лаборатории. Asterisk — это open-source платформа для создания VoIP-решений, которая превращает обычный сервер на Ubuntu в полноценную АТС. Давай разберем, как правильно выполнить установку Asterisk на Ubuntu шаг за шагом.

Важно: Это руководство подходит для Ubuntu 20.04 LTS и 22.04 LTS. Для других версий могут потребоваться корректировки.

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

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

Обновление пакетов и установка зависимостей

bash
# Обновляем список пакетов
sudo apt update
sudo apt upgrade -y

# Устанавливаем основные зависимости
sudo apt install -y build-essential wget libssl-dev libncurses5-dev \
  libnewt-dev libxml2-dev libsqlite3-dev libjansson-dev \
  uuid-dev libcurl4-openssl-dev git

# Устанавливаем дополнительные библиотеки
sudo apt install -y subversion libedit-dev libsrtp2-dev \
  libpq-dev libspeexdsp-dev libgsm1-dev libopus-dev \
  libvpx-dev libogg-dev

Сборка и установка Asterisk из исходников

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

Загрузка и распаковка исходного кода

bash
# Создаем рабочую директорию
mkdir ~/asterisk_build
cd ~/asterisk_build

# Скачиваем последнюю стабильную версию Asterisk
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz

# Распаковываем архив
tar -xzvf asterisk-20-current.tar.gz
cd asterisk-20.*

# Запускаем скрипт подготовки
./contrib/scripts/install_prereq install

Конфигурация и компиляция

bash
# Запускаем скрипт конфигурации
./configure

# Если configure завершился успешно, компилируем
make menuselect

Внимание: В меню выбора модулей (menuselect) можно отключить ненужные компоненты. Для начала оставьте настройки по умолчанию.
# Компилируем Asterisk make -j$(nproc) # Устанавливаем скомпилированные файлы sudo make install # Устанавливаем конфигурационные файлы по умолчанию sudo make config # Устанавливаем init скрипт для systemd sudo make install-logrotate

Базовая настройка Asterisk

После установки необходимо настроить основные конфигурационные файлы.

Настройка SIP-соединений

Создаем или редактируем файл sip.conf для настройки SIP-клиентов:

config
sudo nano /etc/asterisk/sip.conf

# Добавляем следующую конфигурацию:
[general]
context=public
transport=udp
bindaddr=0.0.0.0
srvlookup=yes

; Определяем SIP-клиента (телефон)
[1001]
type=friend
secret=mysecretpassword
host=dynamic
context=internal
dtmfmode=rfc2833
qualify=yes

[1002]
type=friend
secret=anotherpassword
host=dynamic
context=internal
dtmfmode=rfc2833
qualify=yes

Настройка диаплана (extensions.conf)

config
sudo nano /etc/asterisk/extensions.conf

[general]
static=yes
writeprotect=no

[internal]
exten => 1001,1,Dial(SIP/1001,20)
exten => 1002,1,Dial(SIP/1002,20)

; Пример голосового меню (IVR)
exten => 0,1,Answer()
same => n,Playback(hello)
same => n,Hangup()

Запуск и управление службой Asterisk

Создание systemd сервиса

bash
# Создаем файл сервиса systemd
sudo nano /etc/systemd/system/asterisk.service

# Добавляем следующее содержимое:
[Unit]
Description=Asterisk PBX
After=network.target

[Service]
Type=simple
User=asterisk
Group=asterisk
ExecStart=/usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf
ExecStop=/usr/sbin/asterisk -rx "core stop now"
Restart=always

[Install]
WantedBy=multi-user.target

Создание пользователя asterisk и запуск сервиса

bash
# Создаем пользователя и группу asterisk
sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk

# Назначаем права на каталоги
sudo chown -R asterisk:asterisk /etc/asterisk
sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk:asterisk /usr/lib/asterisk

# Перезагружаем systemd и запускаем Asterisk
sudo systemctl daemon-reload
sudo systemctl enable asterisk
sudo systemctl start asterisk

# Проверяем статус
sudo systemctl status asterisk

Работа с CLI Asterisk

bash
# Подключение к консоли Asterisk
sudo asterisk -rvvv

# Полезные команды внутри CLI:
sip show peers      # Показать SIP-клиенты
core show channels  # Показать активные каналы
module show         # Показать загруженные модули
sip reload          # Перезагрузить SIP конфигурацию
core restart now    # Перезапустить Asterisk

Настройка безопасности и брандмауэра

Важно: Без настройки брандмауэра ваш Asterisk сервер будет уязвим для атак!
bash
# Устанавливаем ufw (если не установлен)
sudo apt install ufw -y

# Настраиваем базовые правила
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Разрешаем SSH (измените порт если используете нестандартный)
sudo ufw allow 22/tcp

# Разрешаем SIP порты
sudo ufw allow 5060/udp    # SIP
sudo ufw allow 5061/tcp    # SIP over TLS
sudo ufw allow 10000:20000/udp  # RTP порты

# Включаем брандмауэр
sudo ufw enable

# Проверяем статус
sudo ufw status verbose

Сравнение методов установки Asterisk

Метод Преимущества Недостатки Рекомендация
Из исходников Полный контроль, последняя версия, оптимизация Сложнее, требует компиляции Для production и разработки
APT пакеты Простота, автоматические обновления Устаревшие версии, меньше контроля Для быстрого тестирования
Docker контейнер Изоляция, простота развертывания Ограниченная кастомизация Для микросервисной архитектуры

Частые проблемы и их решение

1. Ошибки при компиляции

Если возникают ошибки зависимостей:

bash
# Очищаем предыдущую сборку
make distclean

# Устанавливаем недостающие зависимости
sudo apt install -f

# Повторяем процесс с начала

2. SIP клиенты не регистрируются

Проверьте следующие моменты:

  • Правильность настроек в sip.conf
  • Открыты ли порты в брандмауэре
  • Состояние сервиса Asterisk
  • Логи Asterisk: sudo asterisk -rvvv

Полезные команды для мониторинга

bash
# Просмотр логов в реальном времени
sudo journalctl -u asterisk -f

# Проверка использования портов
sudo netstat -tulpn | grep asterisk

# Проверка нагрузки на сервер
top -u asterisk

# Тестирование SIP регистрации
sudo asterisk -rx "sip show registry"

Дальнейшие шаги после установки

После успешной установки Asterisk на Ubuntu рекомендуется:

  • Настроить резервное копирование конфигураций
  • Реализовать мониторинг через Zabbix или Prometheus
  • Настроить TLS шифрование для SIP
  • Интегрировать с базой данных для хранения CDR
  • Реализовать автоматическое обновление через cron
Совет: Для production окружения рассмотрите использование конфигурационного менеджера (Ansible, Puppet) для автоматизации развертывания и управления Asterisk.

Часто задаваемые вопросы (FAQ)

Можно ли установить Asterisk через apt вместо компиляции?

Да, можно использовать sudo apt install asterisk, но версия в репозиториях часто устаревшая. Компиляция из исходников дает больше контроля и последние функции.

Какие порты нужно открыть для работы Asterisk?

Основные порты: 5060/udp (SIP), 5061/tcp (SIP TLS), 10000-20000/udp (RTP медиа). Для удаленного управления также может понадобиться порт 5038 (AMI).

Как обновить Asterisk до новой версии?

Сделайте бэкап конфигов, остановите сервис, скачайте новую версию, скомпилируйте и установите поверх старой. Всегда тестируйте обновления в staging среде.

Поддерживает ли Asterisk видеозвонки?

Да, Asterisk поддерживает видеокодеки через модули. Необходимо установить дополнительные библиотеки (libvpx, libx264) и настроить соответствующие модули.

Как настроить запись разговоров?

Используйте приложение MixMonitor в диаплане. Пример: exten => _X.,1,MixMonitor(${UNIQUEID}.wav). Также можно настроить интеграцию с внешним хранилищем.

Заключение

Установка Asterisk на Ubuntu — процесс, требующий внимания к деталям, но вполне выполнимый даже для начинающих администраторов. Ключевые моменты: правильная подготовка зависимостей, аккуратная компиляция из исходников и грамотная настройка безопасности. Следуя этому руководству, вы получите стабильно работающую VoIP-платформу, готовую к дальнейшей кастомизации под ваши задачи.

Помните: Asterisk — мощный инструмент с огромными возможностями. Начинайте с простых конфигураций и постепенно усложняйте систему по мере изучения документации и накопления опыта.
Поделиться:
Сохранить гайд? В закладки браузера