Asterisk на Ubuntu 24.04: ставить из пакета или собирать?
АйТи Фреш
Серверы и инфраструктура

Установка Asterisk на Ubuntu: где заканчивается удобство apt

Автор: , директор ООО «АйТи-Фреш» · · ~11 мин чтения
Две схемы установки Asterisk ведут к проверяемой телефонии
Выбор способа установки Asterisk

Asterisk на Ubuntu 24.04 можно установить из пакета или собрать из исходников. Для теста пакет apt проще; для управляемой рабочей АТС важнее заранее выбрать поддерживаемый релиз, нужные модули и способ обновления. Сам пакет не доказывает ни надежность, ни неисправность системы.

Пакет apt — способ установки, а не диагноз

Команда sudo apt install asterisk удобна: пакетный менеджер получает сборку из настроенных репозиториев Ubuntu, учитывает зависимости и ведет пакет через стандартный механизм обновлений. Это разумный старт для лаборатории, стенда или небольшой проверки. Но сам факт установки командой apt ничего не говорит о том, выдержит ли конкретная АТС вашу нагрузку: на это влияют конфигурация, кодеки, транки, число одновременных разговоров, дисковая подсистема и качество сети. Объявлять пакет «путем к аварии» без измерений — редакционная бравада, а не технический вывод. *Пакет не виноват в том, что его выбрали без плана.*

У Ubuntu есть пакет Asterisk в репозитории Noble (24.04 LTS). Его версия и состав видны в метаданных пакетов и на установленной системе; не надо угадывать возраст сборки по тому, что она пришла из репозитория. Ubuntu обновляет собственные пакеты по своим правилам, а upstream Asterisk отдельно публикует поддерживаемые ветки. Поэтому сравнивайте не абстрактные «новые» и «старые» версии, а установленную версию, доступные обновления Ubuntu, статус ветки у проекта и ваши требования к функциям. Если функция отсутствует, сначала проверьте состав пакетов и модулей, а не приписывайте это всем сборкам дистрибутива.

Для первичной проверки запишите точную версию установленного пакета через apt-cache policy asterisk, а после запуска запросите версию самой программы командой asterisk -V. Если сервис управляется systemd, его состояние проверяют через systemctl status asterisk, а подробности конкретного запуска — через journalctl -u asterisk. Названия службы и место журналирования могут зависеть от способа установки и локальной настройки, поэтому сначала смотрите фактическую конфигурацию. Эти команды дают наблюдаемые данные; фраза «у меня Ubuntu, значит там древний Asterisk» данных не дает.

apt упрощает установку и обновление. Он не заменяет проверку версии и конфигурации.
Сравнение пакетной установки и сборки Asterisk
Пакет apt

Выбирайте по сроку поддержки и нужным модулям

У Asterisk есть ветки с разными сроками сопровождения. По документации проекта, LTS-ветка получает четыре года полной поддержки и еще год исправлений безопасности; стандартная ветка поддерживается меньше. Это делает выбор ветки предметным: для системы, которую планируют обслуживать годами, обычно рассматривают поддерживаемую LTS-версию. Но обозначение LTS само по себе не гарантирует совместимость с вашим оборудованием, транками и прикладными модулями. Перед миграцией проверьте матрицу совместимости и испытайте конфигурацию на отдельном стенде. *Аббревиатура не заменяет приемочные испытания.*

PJSIP — штатный SIP-драйвер Asterisk, и официальная документация рекомендует его для новых установок. В старом тексте я зря утверждал, что пакет Ubuntu лишен PJSIP: это надо проверять по конкретному пакету, версии и загруженным модулям. chan_sip — другая история: в Asterisk он признан устаревшим начиная с 17-й ветки и удален в 21-й. Значит, инструкция «обязательно включите PJSIP и chan_sip» неверна для современных веток. Для новой конфигурации ориентируйтесь на chan_pjsip; при переносе старых настроек отдельно планируйте миграцию и проверяйте диалплан, регистрацию устройств и поведение транков.

Сборка из исходников нужна, когда требуется выбрать конкретную версию, контролировать набор модулей, применять патчи или встроить Asterisk в собственный процесс выпуска. Это дает контроль, но добавляет обязанности: хранить параметры сборки, воспроизводить среду, отслеживать бюллетени безопасности и самому планировать установку обновлений. Исходник не превращается в актуальную версию только оттого, что его скачали вручную. Берите поддерживаемый выпуск из официального каталога, фиксируйте его номер и контрольную сумму, а затем обновляйте по расписанию. Пакетный путь, напротив, может быть проще для сопровождения, если версия и функции дистрибутива подходят задаче.

Нужна проверка существующей АТС или план обновления? Мы разберем версии, конфигурацию и журналы, затем предложим порядок работ без обещаний «стабильности с первого дня». Обсудить задачу

Пример с «Бриз-Трейд»: сначала факты, потом причина

Представим условную сеть «Бриз-Трейд» с несколькими магазинами и общей телефонией. Это учебный сценарий, а не история реального клиента и не отчет о расследовании. Если в час пик вызовы обрываются, нельзя честно объявить причиной Asterisk из репозитория. Сначала фиксируем время сбоя, число одновременных вызовов, состояние каналов, сообщения журналов и загрузку ресурсов. Потом проверяем SIP-ответы, потери пакетов, доступность транка, кодеки и недавние изменения конфигурации. Без этих данных рассказ об «утечке памяти в старой версии» просто выдумывает диагноз.

Я бы начал с воспроизведения проблемы на согласованной нагрузке и временном окне, которое не мешает работе. Сравнил бы успешные и неуспешные вызовы, проверил журналы Asterisk и системные события, затем отдельно посмотрел бы состояние сети и провайдера телефонии. Если видна ошибка конкретного модуля, сверил бы её с известными исправлениями для установленной ветки. Если нагрузка упирается в CPU или сеть, переустановка программы не добавит серверу ресурсов. И наоборот: если обнаружен подтвержденный дефект старого выпуска, обновление может быть обоснованным решением. Причина должна следовать из наблюдений, а не из удобного сюжета.

Такой разбор оставляет полезный результат даже тогда, когда виноват не Asterisk: временную шкалу, проверенные гипотезы и план устранения. В рабочей АТС я также фиксирую время восстановления, порядок отката и ответственного за проверку после изменения. Обновление наугад под нагрузкой — плохой эксперимент. Сначала тестируем на копии конфигурации и в согласованном окне, затем переносим изменение и проверяем входящие и исходящие вызовы, регистрацию телефонов, очереди, запись разговоров, если она используется. *«Перезапустили — заработало» описывает симптом, а не объясняет его.*

Условный пример. Не выдавайте его за клиентский инцидент.

Как собрать Asterisk из исходников без гадания

Если решили собирать вручную, начните с требований, а не с копирования старой команды из блога. Выберите поддерживаемую ветку, проверьте актуальную инструкцию проекта по зависимостям для своей версии Ubuntu и подготовьте отдельную среду. Пакеты разработки меняются между выпусками, а зависимости зависят от модулей, которые нужны именно вам. Поэтому перечислять один вечный набор -dev пакетиков было бы нечестно. Зафиксируйте перечень установленного, исходный архив и параметры конфигурации; держите тестовый стенд отдельно от действующего сервера. До сборки сохраните конфиги и подготовьте способ возврата к рабочему состоянию.

Типовой порядок у upstream такой: распаковать исходники, запустить ./configure, открыть make menuselect, собрать и установить выбранные компоненты. Конкретные опции и команды сверяйте с руководством для выбранной ветки. В menuselect проверьте, что доступны и включены требуемые модули, в том числе компоненты PJSIP, если они нужны. Если нужного пункта нет, изучите вывод конфигурации и отсутствующие зависимости; не компенсируйте проблему случайной установкой сторонних библиотек. Документация отдельно предупреждает про совместимость pjproject; в подходящих выпусках проект поставляет встроенную версию. Не следует без причины собирать вторую библиотеку отдельно и потом гадать, почему модуль не обнаружен.

После успешной компиляции проверьте установленную версию, список загруженных модулей, права доступа и запуск службы. Отдельно решите, кто будет управлять systemd unit, каталогами конфигурации и обновлениями: ручная установка может отличаться от пакетной раскладкой. Не копируйте конфиги вслепую поверх рабочей системы. Сравните шаблоны для выбранного выпуска, перенесите только нужные настройки и пройдите проверку вызова от начала до конца. Не обещаю, что make install даст «последнюю стабильную версию»: это зависит от выбранного вами исходника. Именно поэтому версия, контрольная сумма и процедура обновления должны быть записаны заранее.

Этапы подготовки и проверки сборки Asterisk
Выбрать релиз

Защитите интерфейсы и проверьте восстановление

После установки проверьте, какие интерфейсы реально доступны из сети и какие конфигурационные файлы включены. Asterisk AMI настраивается в manager.conf; это управляющий интерфейс, которому не место в открытом доступе без необходимости. Ограничьте доступ сетевыми правилами и ACL самого Asterisk, заведите отдельные учетные записи с минимальными правами и не оставляйте демонстрационные пароли. Проверяйте именно ту конфигурацию, которая загружена процессом: правка файла без проверки применения изменений ничего не защищает. Не публикуйте наружу порты только потому, что так удобнее проверить первый звонок.

Для SIP документация Asterisk описывает TLS для сигнализации и SRTP для медиапотока. Это разные части звонка: включенный TLS не означает, что аудио тоже шифруется. Настройте транспорт и сертификаты для используемой конфигурации, проверьте совместимость телефонов и шлюзов, а также обновление сертификатов. Прежде чем менять рабочие параметры, проверьте соединение между тестовым телефоном и АТС, включая входящий и исходящий вызов. Защита должна соответствовать схеме телефонии: если аппарат или транк не поддерживает нужный режим, это надо решить на уровне совместимости, а не скрывать обещанием «все зашифровано».

Безопасность не заканчивается на SIP. Проверьте, кто может изменять конфигурацию и читать записи вызовов, если они ведутся; определите срок хранения и место резервной копии. Резервируйте конфиги, сценарии и данные, которые нужны для восстановления, на отдельное хранилище. Затем периодически выполняйте пробное восстановление на изолированной системе: наличие файла архива еще не подтверждает, что АТС из него поднимется. После обновления сверяйте журналы, регистрацию конечных устройств, очереди и тестовые вызовы. Так обнаруживается реальная проблема после изменения, а не просто красивое уведомление о том, что пакет «установлен».

Мониторинг должен отвечать на конкретный вопрос

Мониторинг полезен, когда показывает причину, которую можно проверить. Для АТС отслеживайте доступность процесса, CPU и память, число активных каналов, ошибки регистрации, состояние транка и заполнение диска. Выберите один инструмент, уже принятый в вашей инфраструктуре, и настройте уведомления с понятным порогом и ответственным. Zabbix или Prometheus сами по себе не предотвращают сбой; они помогают заметить отклонение, если метрики и оповещения настроены под вашу систему. Для аудио важно отдельно смотреть качество сети и статистику вызовов: средняя загрузка сервера не объяснит односторонний звук.

Перед вводом в эксплуатацию запишите базовый уровень в обычное время и при ожидаемом пике. Сопоставляйте его с числом одновременных звонков и фактической пропускной способностью транков. Не называйте произвольный предел «нормой» для всех установок: потолок зависит от кодеков, операций записи, конференций, оборудования и сетевой схемы. Если показатель ухудшился, сверяйте его с журналами и изменениями конфигурации. Так можно отличить рост нагрузки от сетевой ошибки и от дефекта приложения. А еще не надо покупать новый сервер, пока не выяснили, какой ресурс закончился.

У ручной сборки и пакетной установки одинаковое эксплуатационное требование: заранее определить окно обновления, тесты после изменения и план отката. Раз в установленный у вас срок проверяйте статус ветки Asterisk, обновления Ubuntu либо новые исходники, резервные копии и срок действия сертификатов. После обновления прогоняйте короткий сценарий: зарегистрировать тестовый телефон, совершить вызов в обе стороны, проверить звук, очередь и интеграции. Записывайте результат и номер сборки. Если никто не отвечает за этот календарь, выбор между apt и исходниками не спасет. *Автоматическая установка не означает автоматическое обслуживание.*

Проверки Asterisk после обновления
Тестовый звонок

Частые вопросы

Можно ли использовать Asterisk из репозитория Ubuntu 24.04?

Да, если версия, набор функций и политика обновлений подходят вашей задаче. Сверьте пакет, активные модули и статус ветки; сам способ установки не доказывает наличие или отсутствие проблем.

Обязательно ли собирать Asterisk из исходников?

Нет. Исходники полезны, когда нужны конкретная версия, набор модулей или свой процесс сборки. Пакет apt проще сопровождать, если его версия и функции подходят.

Нужно ли включать chan_sip?

Для новых установок используйте PJSIP. chan_sip устарел в Asterisk 17 и удален начиная с Asterisk 21, поэтому в современных ветках его уже нет.

Как выбрать версию Asterisk?

Выбирайте поддерживаемую ветку с учетом срока эксплуатации и совместимости. Для длительной поддержки обычно рассматривают LTS; перед обновлением испытайте конфигурацию и оборудование.

Что проверить после установки или обновления?

Версию и загруженные модули, регистрацию устройств, входящие и исходящие вызовы, звук, очереди и интеграции. Сверьте журналы и проверьте план отката и резервное восстановление.

Столкнулись с похожей задачей? Обращайтесь — решим

Если у вас происходит что-то из описанного в этой статье — или любая другая проблема с ИТ-инфраструктурой, — обращайтесь в любое время. Мои специалисты и я лично разберём ситуацию, найдём настоящую причину и доведём до решения.

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

Источники

© ООО «АйТи-Фреш» · Москва · Все статьи