После года разработки состоялся релиз новой стабильной ветки открытой коммуникационной платформы 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.