Релиз коммуникационной платформы Asterisk 20

После года разработки состоялся релиз новой стабильной ветки открытой коммуникационной платформы Asterisk 20, используемой для развёртывания программных АТС, систем голосовой связи, VoIP-шлюзов, организации IVR-систем (голосовое меню), голосовой почты, телефонных конференций и call-центров. Исходные тексты проекта доступны под лицензией GPLv2.

Asterisk 20 отнесён к категории выпусков с расширенной поддержкой (LTS), обновления для которого будут выпускаться в течение пяти лет вместо свойственных для обычных выпусков двух лет. Поддержка прошлой LTS-ветки Asterisk 18 продлится до октября 2025 года, а ветки Asterisk 16 до октября 2023 года. При подготовке LTS-выпусков основное внимание уделяется обеспечению стабильности и оптимизации производительности, приоритетом же обычных выпусков является наращивание функциональности.

Ключевые улучшения в Asterisk 20:

  • Добавлен тестовый фреймворк, позволяющий проверять корректность обработки команд внешними процессами.
  • В модуле res_pjsip реализована поддержка перезагрузки ключей и сертификатов TLS.
  • Добавлены дополнительные опции инициирования передачи, например, для воспроизведения собственного приглашения или установки расширений.
  • В AMI (Asterisk Manager Interface) добавлена возможность глобального отключения определённых событий (в секции [general] файла конфигурации появилась директива disabledevents). Реализовано новое событие DeadlockStart, генерируемое при определении взаимной блокировки. Добавлено действие DBPrefixGet для извлечения из БД всех ключей, начинающихся с заданного префикса.
  • В CLI добавлена команда “dialplan eval function” для запуска функций обработки вызовов (dialplan) и команда “module refresh” для перезагрузки модулей.
  • Добавлено приложение pbx helper для упрощения поиска и запуска других приложений по имени.
  • Добавлена функция EXPORT для записи переменных и функций для других каналов. Добавлены новые строковые функции TRIM, LTRIM и RTRIM.
  • В детектор наличия автоответчика (AMD) добавлена возможность воспроизведения в ответ произвольного звукового файла.
  • В приложения Bridge и BridgeWait добавлена возможность не отвечать на канал до объединения каналов мостом.
  • В приложение для голосовой почты (app_voicemail) добавлена опция для защиты сообщений от удаления.
  • Добавлена функция скремблирования звука (для защиты от прослушивания).
  • Расширены средства для определения местоположения (res_geolocation).
  • В приложение app_queue добавлена поддержка воспроизведения музыки при удержании вызова.
  • В модуль res_parking добавлена опция для переопределения в dialplan музыки, воспроизводимой во время удержания вызова.
  • В приложение app_confbridge добавлена опция end_marked_any для отключения пользователей от конференции после выхода любого помеченного пользователя.
  • Добавлена опция hear_own_join_sound для отключения отдельному пользователю звуковой индикации подсоединения к вызову.
  • Предоставлена возможность отключения CDR (Call Detail Record) по умолчанию для новых каналов.
  • Добавлено приложение ReceiveText для приёма текста, выполняющее функцию противоположную приложению SendText.
  • Добавлена функция для разбора JSON.
  • Добавлено приложение SendMF для отправки произвольного многочастотного сигнала (R1 MF, Multi-Frequency) в любой канал.
  • Добавлен модуль ToneScan для определения сигналов (тональный набор, сигнал занято, ответ модема, информационные сигналы (Special Information Tones) и т.п.).
  • Удалены приложения, ранее объявленные устаревшими: muted, conf2ael.
  • Удалены модули, ранее объявленные устаревшими: res_config_sqlite, chan_vpb, chan_misdn, chan_nbs, chan_phone, chan_oss, cdr_syslog, app_dahdiras, app_nbscat, app_image, app_url, app_fax, app_ices, app_mysql, cdr_mysql.
Release. Ссылка here.