MikoPBX 2026.2.118
Опубликован 27.05.2026
Выпуск MikoPBX 2026.2.118 включает крупный набор исправлений безопасности, улучшения SIP-регистрации, Fail2Ban и Firewall, обновления работы со звуковыми файлами, S3-хранилищем, CDR, модулями и консольным меню. Также повышена стабильность фоновых процессов, REST API и веб-интерфейса.
Усиление безопасности
Закрыт ряд уязвимостей в PBXCoreREST и веб-интерфейсе: auth bypass, XSS, RCE, path traversal, arbitrary file write и command injection. Усилен Lua WAF: теперь проверяются исходный путь запроса до rewrite, query string, POST body и double-encoded payloads.
Добавлены CSP и X-Frame-Options, убран wildcard CORS, включён HTTP/2. Исправлена защита от Zip Slip при установке модулей. Ограничение HTTP-запросов теперь учитывает выбранный уровень безопасности и не блокирует служебные HEAD-запросы к аудиофайлам.
Исправлена валидация скачивания firmware, усилена защита upload/patch-сценариев и путей к файлам. Для неизвестных API endpoint у авторизованных пользователей теперь возвращается 404, а не 403.
Важные изменения совместимости
Флаги UseWebRTC и UseSipTls удалены из настроек PBX. TLS-транспорт теперь включается автоматически при наличии сертификата. Если внешняя интеграция отправляет эти поля через REST API в PUT-запросах, API вернёт HTTP 422.
Поле whitelist в старой форме настроек Fail2Ban больше не используется для редактирования доверенных адресов. Все доверенные адреса теперь управляются через отдельную вкладку Доверенные адреса.
Ключ языка en_GB больше не поддерживается. При обновлении существующие установки автоматически переключаются на en.
Авторизация и сессии
Исправлены проблемы авторизации, которые могли приводить к циклическому refresh, ошибке 500 при некорректной cookie и неправильной обработке перехода на /session/index.
Опция Remember me теперь корректно сохраняет сессию между перезапусками браузера. Уведомление о входе в систему содержит IP-адрес клиента.
Firewall Bouncer и Fail2Ban
Добавлен Firewall Bouncer API для внешних систем защиты, включая CrowdSec-LAPI endpoint. MikoPBX публикует список заблокированных адресов, а внешний агент может применять эти блокировки на уровне хоста или облачного firewall. Это особенно полезно для Docker-окружений, где встроенный firewall контейнера не всегда может защитить внешний сетевой периметр.
В разделе Fail2Ban появилась вкладка Доверенные адреса с массовой вставкой, живым поиском и автоматическим списком адресов из правил firewall. Whitelist теперь корректно поддерживает CIDR и IPv6, а wildcard-сети 0.0.0.0/0 и ::/0 отклоняются, чтобы случайно не открыть доступ всему интернету.

Список заблокированных адресов теперь сортируется по реальной дате блокировки, а не как текст. Время блокировки и истечения бана отображается в часовом поясе сервера, а в подсказке дополнительно показывается время браузера.
Применение ban/unban стало быстрее: вместо полной перезагрузки PJSIP используется лёгкая перезагрузка ACL-модуля.
Улучшения SIP-провайдеров
Добавлена поддержка SRV-based SIP registration. В интерфейсе корректно отображается статус регистрации через SRV, а порт 0 теперь показывается как пустое поле.
TLS-транспорт для SIP-клиентов теперь работает как отдельный endpoint рядом с UDP/TCP и WebRTC и появляется автоматически при наличии сертификата. Исправлена ситуация, когда TLS-соединения разных SIP-провайдеров могли путаться между собой, если разные hostname резолвились в один IP-адрес.

Hostname resolver для PJSIP identify теперь работает через Redis cache и отдельный worker, поддерживает additionalHosts и более строго проверяет доверенные источники. Hostname-адреса в дополнительных хостах SIP-провайдеров проходят через тот же DNS-кеш, что и основной адрес, поэтому провайдеры со сменными IP не теряют связь после изменения DNS.
Исправлена дедупликация uniqid для провайдеров и peers в pjsip.conf. Валидация SIP login теперь допускает символ *. Добавлена поддержка CIDR в настройках провайдеров и более понятные ошибки валидации host/subnet. Для старых провайдеров добавлена подсказка по LEGACY_CP1251 и загрузка res_legacy_cp1251.so.
Внутренние номера, очереди и маршрутизация
Для каждого сотрудника добавлен отдельный переключатель Call Waiting. Это позволяет включать или отключать ожидание второго вызова индивидуально для внутреннего номера.
Добавлена новая стратегия очередей linear_progressive, при которой сотрудники подключаются к обзвону постепенно.

Исправлены ошибки dialplan: маршруты с пустым providerid больше не ломают генерацию конфигурации, Q_TIMEOUT не вызывает лишние ошибки для неочередных вызовов, а настройка записи разговоров сотрудника корректно применяется к исходящим вызовам и вызовам через очереди.
CDR и записи разговоров
Исправлена работа CDR: добавлено получение записи по id, поддержка linkedid, восстановление при отсутствующих CDR-таблицах, включён WAL и оптимизирована очистка старых записей.
Очистка старых CDR-записей теперь выполняется небольшими порциями с тайм-аутом 5 секунд, а не блокирует систему на больших базах. При первом запуске записи старше 360 дней могут очищаться постепенно. На больших базах процесс может занять несколько минут, при этом новые звонки продолжают записываться.
После неудачного attended transfer теперь корректно возобновляется MixMonitor. Исправлена обработка DID в сгруппированных CDR-записях и защита данных CallerID при отображении в таблицах.
Модули
Добавлен серверный механизм массового обновления модулей. В веб-интерфейсе появился сценарий обновления всех модулей с предварительным просмотром changelog и подтверждением установки. Администратор может выбрать галочками, какие модули обновлять, а какие пропустить.

Установка модулей стала безопаснее: исправлена Zip Slip-уязвимость, улучшена обработка ошибок, добавлена поддержка необязательных полей developer и support_email в module.json.
Звуковые файлы и языковые пакеты
Звуковые файлы Asterisk перенесены в writable storage через symlink, а базовые файлы теперь хранятся отдельно в sounds-base. Это предотвращает проблемы с read-only разделами.
Добавлена поддержка Opus, WebM preview, .wav16 и .wav48. WebM используется как формат предпрослушивания в браузере, при этом сохраняется качество исходной записи. Если конвертация через ffmpeg завершилась ошибкой, загруженный файл больше не удаляется.
Система языковых пакетов стала проще: стандартные Asterisk-коды языков автоматически сопоставляются с web-кодами, а специальные случаи вроде zh-cn → zh_Hans обрабатываются отдельно.
S3 и хранилище
Для S3 добавлены provider presets и explicit path-style flag. В веб-интерфейсе появились подсказки по preset-провайдерам, а тестовая инфраструктура расширена стендами MinIO и Garage.

Добавлен бенчмарк дисковой производительности для проверки чтения и записи прямо на странице хранилища. Результат можно обновить кнопкой без перехода в консоль.

Улучшены проверки свободного места, исправлено определение sys_disk, создание swap и ложное предупреждение о неподключённом диске в Docker. SQLite-бэкап теперь создаётся как binary snapshot, что устраняет риск смешивания данных между таблицами при резервном копировании.
Веб-интерфейс
Обновлены интерактивные подсказки: field-info tooltip теперь строится через TooltipBuilder, корректно отображает апострофы и лучше позиционируется в сложных формах. Подсказки под полями ввода стабильнее работают на всех страницах и не исчезают при наведении.
Исправлены 404/error UX, несколько JS null-dereference crashes, работа Fullscreen API на iPhone WebKit, выбор языка и отображение времени с учётом timezone сервера.
В карточке внутреннего номера появилась подсказка подключения SIP-клиента под полем Secret.
Консольное меню
Консольный мастер настройки сети теперь показывает единый экран сравнения изменений с текущими значениями в базе данных. Администратор видит только реально изменяемые поля и сразу подтверждает применение настроек.
Исправлено поведение, при котором review screen кратко появлялся и исчезал после очистки терминала. Добавлены более удобные DNS prompts и цифровые hotkeys. Мастер настройки сети пропускает запрос DNS-серверов, если сеть работает через DHCP и IPv6 выключен.
При обрыве SSH-сессии консольное меню теперь корректно завершается и больше не зависает с загрузкой CPU до 100%. Welcome banner теперь может показывать внешний host при работе за NAT.
REST API и миграции
Исправлено сохранение очистки networkfilterid при REST UPDATE/PATCH. Переключение фильтра сети на любой адрес для менеджеров AMI, API-ключей и провайдеров теперь действительно очищает привязку к сетевому фильтру.
Настройка ipv6_mode теперь сохраняется корректно, даже если поле не передано в payload. Короткие пароли API-ключей теперь отклоняются с понятным сообщением об ошибке вместо молчаливого игнорирования.
Миграция статических маршрутов теперь понимает net-tools синтаксис gateway <ip> и интерфейс, указанный последним аргументом без dev. Перед миграцией базы очищается Redis metadata cache.
DHCP deconfig больше не очищает пользовательские DNS-настройки, а legacy-команды route заменены на ip route.
Почта и уведомления
Добавлен переключатель MailPlainText для отправки писем в plain text формате. Исправлена синхронизация cache после изменения почтовых настроек.

В уведомлениях о voicemail исправлено вложение записи. При ошибке регистрации лицензии отображается реальная причина вместо общего сообщения об отсутствии соединения.
Стабильность системы
Улучшено управление worker-процессами: добавлена защита от нехватки памяти, размножения pool workers, restart storm при ENOSPC и зависших лишних процессов. При переполнении диска служебные процессы больше не уходят в бесконечный перезапуск.
Три monitor workers объединены в WorkerStatusMonitor. Обновлён Pheanstalk с 4.x до 8.x, исправлены socket-read fatal errors. Redis-подключения стали устойчивее, уменьшено количество reconnect. OPcache отключён для CLI workers, что снижает расход памяти.
REST worker теперь сбрасывает ORM state между задачами. Это повышает стабильность при большом количестве последовательных API-запросов. NATS теперь пишет stderr в лог вместо /dev/null.
Тесты и инфраструктура
Добавлена BrowserStack arch matrix для проверки разных архитектур. Расширены regression tests для REST API, WAF, security, S3, CDR, sound conversion, workers, syslog и сетевых сценариев.
Добавлены тесты для DnsResolver, ForwardedHeaderFilter, bearer token parsing, WAF registry/exemptions, Redis provider, PID-файлов и signal handling.
Известные проблемы
Исправление: пропадает звук на H.323 бридже (ooh323) после обновления
Компонент: chan_ooh323 / H.323 бридж
Симптом: После обновления входящие H.323 звонки через ooh323 теряют звук полностью. Приветствия в очередях и IVR-меню не слышны, хотя диалплан отрабатывает корректно и в консоли файлы как будто воспроизводятся. Отключение файрвола проблему не решает.
Причина: Изменение в обработке DTMF в данном релизе нарушает согласование медиапотока в драйвере канала ooh323.
Обходное решение / Фикс: В файле ooh323.conf установить:
Для пиров одного изменения в сниппете недостаточно — необходимо выгрузить полную конфигурацию пира через веб-интерфейс, изменить метод применения с «добавить в конец» на «полная замена конфига», включив в него исправленное значение dtmfmode.
Last updated
Was this helpful?

