Яндекс.Метрика

RealTime в Asterisk: архитектура и конфигурация

RealTime в Asterisk: архитектура и конфигурация с 5 октября по 9 октября

Количество
свободных мест

8 Записаться

Курсы по Mikrotik MTCNA

Курсы по Mikrotik MTCNA с 6 апреля по 10 апреля

Количество
свободных мест

7 Записаться

Курс по Zabbix

Zabbix: мониторинг Asterisk и VoIP с 7 сентября по 11 сентября

Количество
свободных мест

8 Записаться
Как похорошел Asterisk при Трампе
46
Доклад
Игорь Гончаровский
Как похорошел Asterisk при Трампе

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

В целом, развитие системы сейчас идет по итеративному пути. Революций не случилось, но произошла важная эволюция — переход от накопления функций к оптимизации того, что уже есть. Большинство правок, которые появляются в свежих версиях, разработчики стараются переносить и в старые поддерживаемые ветки. Это позволяет сохранять стабильность связи даже на тех системах, которые не обновляются до самых последних релизов сразу после их выхода. При этом фокус внимания сместился с надстроек вроде FreePBX на само ядро АТС, так как именно там сейчас происходят наиболее значимые для профессионального сообщества изменения.

График релизов и большая чистка кода

Если посмотреть на традиционный график жизни версий, то главной новостью становится завершение жизненного цикла Asterisk 18. Буквально через месяц эта ветка полностью прекратит получать поддержку. Весь последний год в нее активно закидывали исправления, в основном связанные с безопасностью, но на этом её путь закончен. Всем, кто до сих пор сидит на 18-й версии, стоит всерьез задуматься о переезде на более актуальные LTS-релизы, такие как 20-я или 22-я. Если ваша система давно не обновлялась, своевременная модернизация АТС поможет избежать проблем с совместимостью и безопасностью в будущем.

Интересная ситуация сложилась с версией 23. Разработчики решили устроить в ней глобальную генеральную уборку. Суть новой стратегии проста: все новые фичи теперь попадают во все активные версии (начиная с 20-й), а 23-я становится площадкой для удаления всего лишнего. Из исходного кода вычистили огромные пласты старья, которое висело мертвым грузом еще с 10-й и 11-й версий. Под нож попали:

  • Приложения DTAG и UsersConf;
  • Старые методы работы с конфигурациями;
  • Модули, которые годами считались «деприкейтед».

Разработчики планируют проводить такую масштабную очистку каждые два года. Это правильный подход: система избавляется от балласта, код становится чище, а вероятность возникновения ошибок в неиспользуемых модулях — меньше. Однако это требует от администраторов внимания — если вы использовали какие-то специфические старые функции, в 23-й версии они могут просто исчезнуть.

Затишье во FreePBX и влияние Sangoma

Что касается FreePBX, то здесь в этом году наблюдается практически полное отсутствие новостей. Проект как будто застыл на 17-й версии. Никаких громких анонсов или функциональных прорывов не случилось. Основная активность Sangoma сейчас сосредоточена на продвижении своих коммерческих продуктов, что вполне логично с точки зрения бизнеса, но не всегда радует сообщество open-source.

В дистрибутивы стали чаще попадать модули, которые интересны скорее самой Sangoma для продвижения своих шлюзов (вроде Vega) или платных сервисов. В России многие из этих вещей практически не используются, а само комьюнити разработчиков FreePBX стало менее открытым. В итоге, если раньше FreePBX была драйвером инноваций для пользовательских интерфейсов, то сейчас это стабильный, но довольно консервативный инструмент, который развивается гораздо медленнее, чем само ядро Asterisk.

Безопасность: год критических исправлений

Тема безопасности в этом году стала едва ли не самой обсуждаемой. Количество найденных и закрытых дыр оказалось непривычно большим. Это не значит, что Asterisk стал хуже, просто исследователи стали копать глубже, а разработчики — быстрее реагировать на угрозы. Было выпущено множество патчей, которые закрывают критические уязвимости, способные привести к полному взлому системы.

Одной из самых опасных находок стала проблема с командой ListCategories. Оказалось, что через определенные манипуляции с путями можно было заставить систему прочитать практически любой файл с диска сервера. Другая «дыра» обнаружилась в CLI-conf — там фактически перестал работать запрет на выполнение системных shell-команд, что открывало прямой путь для злоумышленников. Проведенный вовремя аудит IP-ATC позволяет вовремя заметить такие огрехи в настройке и софте.

Список важных исправлений безопасности за год впечатляет:

  • SafeAsterisk: была найдена возможность подкладывать скрипты в папку Startup.div. Если злоумышленник получал доступ к этой директории, он мог выполнить любой код с правами root при перезагрузке системы.
  • Stir/Shaken: в реализации этого протокола нашли ошибки, которые могли приводить к падению системы (DOS-атаки) или даже к выполнению произвольного кода через переполнение буфера.
  • Проблемы с авторизацией: в версии 22.5.2 была допущена ошибка в обработке поля Realm, из-за которой Asterisk просто падал при определенных запросах.
  • Подмена ID: в модуле работы с сообщениями (Message) устранили возможность подмены имени отправителя, что важно для защиты от фишинга внутри корпоративных сетей.

Учитывая всё это, защита IP-ATC сегодня не может ограничиваться только сложными паролями. Это комплекс мер, который обязательно включает в себя регулярное обновление до последних минорных версий, где все эти «детские болезни» уже вылечены.

Прорыв в ARI и работа с WebSocket

Самые приятные новости пришли из стана ARI (Asterisk REST Interface). Это направление развивается очень бодро, и в этом году разработчики закрыли один из главных запросов сообщества — возможность полноценно работать с REST-интерфейсом через WebSocket. Раньше для управления звонком через ARI приходилось постоянно слать HTTP-запросы, что не всегда удобно и эффективно. Теперь же можно открыть WebSocket-соединение и гонять команды и события в обе стороны через один канал.

Еще одна крутая фича — поддержка исходящих веб-сокетов. До этого Asterisk в связке с ARI работал только «на прием». Если вам нужно было подключить внешний сервис управления, приходилось городить огород с менеджерами соединений. Теперь в файле websocket_client.conf можно прописать адрес внешнего сервера, и Asterisk сам инициирует подключение.

Ключевые возможности обновленного ARI:

  1. Постоянные и динамические соединения: можно держать один коннект для всех событий или открывать новый под каждый конкретный вызов.
  2. Поддержка DNS и Round Robin: система умеет сама резолвить имена и переключаться между серверами, если один из них недоступен.
  3. Идентификация по ID транзакций: теперь легко отследить, какой ответ на какой запрос пришел, что сильно упрощает отладку сложных приложений.
  4. Транспорт для медиа: веб-сокеты теперь можно использовать для передачи аудиоданных (External Media) наравне с RTP.

Это открывает огромные возможности для интеграции Asterisk с современными веб-приложениями и облачными сервисами. Для тех, кто хочет разобраться в этих технологиях на практике, существуют профильные курсы по Asterisk, где подробно разбираются настройки ARI и логика работы с внешними интерфейсами.

Оптимизация ядра: от 15 лет ожидания к C++

Пожалуй, самое фундаментальное техническое изменение коснулось того, как Asterisk хранит данные о каналах. На протяжении последних 15-17 лет в ядре использовалась структура AstObs2. Она работала, но имела огромный минус: при поиске канала по имени системе приходилось каждый раз перебирать весь список каналов с самого начала. Если у вас 10 активных звонков — это незаметно. Если 500 или 1000 — нагрузка на процессор растет по экспоненте, начинаются тормоза и блокировки.

В этом году разработчики наконец-то переписали этот механизм. Они внедрили хранилище на базе стандартных контейнеров C++ (std::map). Это дало просто фантастические результаты:

  • Скорость поиска выросла в 30 раз.
  • Количество операций, которые процессору нужно совершить для нахождения канала, уменьшилось в 300 раз.
  • Риск возникновения «дедлоков» (взаимных блокировок потоков) сведен к минимуму.

Правда, пока эта фича считается экспериментальной. Чтобы ее включить, нужно собирать Asterisk из исходников с поддержкой C++ и выбирать соответствующий пункт в menuselect. Это важный шаг в сторону осовременивания кода. Использование стандартных библиотек вместо самописных конструкций 20-летней давности делает систему быстрее и стабильнее. Когда выполняется проектирование и настройка сети для крупного контакт-центра, такие оптимизации в ядре АТС позволяют существенно сэкономить на серверном оборудовании.

Мелкие, но важные улучшения

Помимо глобальных вещей, в Asterisk за год появилось много полезных мелочей в протоколах и логировании:

  1. Улучшения в CEL (Channel Event Logging): теперь система фиксирует начало и конец проигрывания любого медиафайла. Раньше было сложно понять, дослушал ли человек IVR или музыку в очереди до конца. Также добавили детальное логирование DTMF — теперь видно не только какую кнопку нажали, но и как долго ее удерживали.
  2. Обновления в CDR: появилась возможность разделять статусы вызова CANCEL и NO ANSWER. Для точной статистики и аналитики работы операторов это критически важно.
  3. Безопасность в PJSIP: добавлена поддержка алгоритмов хеширования SHA-256 и SHA-512 для авторизации. Старый MD5 уже не считается надежным, и теперь Asterisk готов к работе в сетях с повышенными требованиями к безопасности.
  4. Контроль доступности: введена функция Qualify 2xx only. Теперь можно настроить систему так, чтобы она считала транк «живым» только если он отвечает кодом 200 OK. Если приходят другие коды (например, переадресация 302), такой узел можно автоматически помечать как недоступный.

Все эти изменения делают Asterisk более зрелым и предсказуемым инструментом. Несмотря на то, что «хайп» вокруг IP-телефонии немного утих, платформа продолжает оставаться лидером за счет своей гибкости и огромного запаса прочности. Качественная установка Asterisk сегодня — это уже не просто запуск демона на сервере, а тонкая настройка всех этих новых механизмов под конкретные задачи бизнеса.

 

Заключение

Год прошел под знаком «работы над ошибками» и технического долга. Разработчики вычистили старый код, защитили систему от опасных уязвимостей и заложили фундамент для работы на сверхвысоких нагрузках. Экосистема Asterisk жива, она меняется и становится всё более профессиональным инструментом для тех, кто понимает ценность качественной и защищенной связи.

Ежегодная конференция по Asterisk 2026!

Билеты уже в продаже!

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

Наши
клиенты

Посмотреть все