MikoPBX 2023.2

Оптимизация под управление с небольших дисплеев

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

Если экран небольшой, то меню прячется, также скрываются необязательные поля в таблицах.

Управление доступом пользователей

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

Подробнее про модуль управления доступом можно почитать в его документации.

Синхронизация с LDAP/AD

Новый модуль синхронизации с доменом позволяет выполнить двухсторонний обмен данными о сотрудниках и их мобильных и внутренних номерах с MikoPBX. Модуль в автоматическом режиме выполняет синхронизацию данных, позволяя поддерживать информацию в домене в актуальном состоянии, а при приеме на работу нового сотрудника, он автоматически загружается в телефонную систему с присвоением свободного номера.

Подробнее про модуль синхронизации с доменом можно почитать в его документации.

Включение дополнительных полей и вкладок из модулей

В новой версии MikoPBX расширено API для управления интерфейсом, реализована возможность при установке дополнительных модулей менять веб интерфейс существующих форм, добавлять вкладки, кнопки и поля ввода.

Например, для модуля группы пользователей реализована возможность управлять группой прямо из формы сотрудника.

Или управлять правами доступа и данными авторизации сотрудника прямо из его карточки.

Рефакторинг комментариев в коде

В исходном коде MikoPBX много изменений и улучшений. Привели описания классов, методов и функций к лучшим практикам разработки на JS и PHP. Навели порядок, сложные классы разбиты от более простые, некоторые алгоритмы переписаны для асинхронной работы в фоне.

Повышение безопасности

В систему добавлены фоновые задания, которые регулярно проверяют сложность паролей SIP, AMI и пароли доступа в систему.

Доработана форма общих настроек для ввода SSH и пароля системного администратора, для предотвращения возможности "подсмотреть" установленный ранее пароль.

Период хранения записей разговоров

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

Оптимизация работы в Docker контейнере

Установка MikoPBX внутри Docker контейнера - это один из популярных способов установки. В новом релизе проведена оптимизация веб интерфейса и консольного меню, скрыты пункты меню, которые не используются при установке в контейнер. Оптимизирована работа настроек сети.

Теперь можно указать внешний адрес системы, если используется сложная топология сети с пробросом портов в публичные адреса на систему развернутую внутри периметра и установленную внутри Docker контейнера. Ранее эта настройка не работала, при установке в контенер.

Кастомизация системных файлов скриптом

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

Реализован новый подход к кастомизации. Можно описать bash скрипт, который будет выполняться каждый раз после того, как система сформирует конфигурационный файл. В итоге интегратор сможет делать очень тонкие изменения конфигурационных файлов без разработки дополнительных модулей.

Например, мы хотим поменять занчение max_contacts у всех сотрудников, кроме одного.

Или мы хотим сделать включение внутрь диалплана в файле extensions.conf и добавить дополнительные строчки кода.

Этот инструмент добавляет гибкости в возможности кастомизации системы, но может привести к полной неработоспособности станции. Поэтому строго рекомендуем тестировать скрипты кастомизации на копии рабочей станции.

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

Оповещения о проблемах в системе на email

Механизм советов объединен с механизмом оповещений. При смене пароля SSH или при проблемах с дисками, администратор получит письмо на почту с указанием параметров MikoPBX, в которой произошел инцидент. Если ранее об ошибке можно было узнать только после логина в систему, то теперь оповещение отправляется автоматически.

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

Рефакторинг магазина приложений

Переписали код маркетплейса, объединили вкладки, часть модулей перенесена на backend.

Как вы уже знаете, MikoPBX — это бесплатная система без каких-либо ограничений. Мы не планируем менять эту политику, однако разработка требует ресурсов. В связи с этим, мы планируем монетизировать MikoPBX путем разработки и продажи собственных и партнерских расширений в нашем магазине приложений.

В последнем обновлении мы внесли некоторые изменения в интерфейс раздела, объединив управление модулями и регистрацию системы в виде отдельных вкладок в одном разделе. Платные и бесплатные модули теперь отмечены различными иконками в списке. Мы также оптимизировали код установки модулей и исправили все выявленные ошибки.

Под капотом MikoPBX скрывается множество изменений и улучшений, которые позволяют разрабатывать функциональные расширения. Если вы владеете языками программирования PHP и JS знаете как работает Asterisk, и у вас есть идеи по разработке новых модулей или вы уже активно разрабатываете такие модули, мы приглашаем вас присоединиться к каналу разработчиков в Telegram. Давайте развивать MikoPBX вместе!

Новые языки интерфейса: Румынский и Нидерландский

Мы постепенно расширяем набор базовых переводов для веб интерфейса. В новом релизе добавили 2 новых языка и улучшаем остальные.

Большое спасибо нашим переводчикам за помощь:

  • Jochem Pluim

  • Secrieru Ion

  • Mikayil Isayev

  • Voutsas Theocharis

  • Everton Massen Goncalves

Если хотите помочь с переводом интерфейса MikoPBX и модулей, переходите по ссылке.

Кнопка очистить текущий лог

При настройке звонков, разработке новых приложений, анализе проблем иногда приходится анализировать системные логи, которые доступны в Web интферейсе MikoPBX, мы добавили кнопку очистки файла лога, которая позволяет быстро начать анализ с чистого листа.

API для программного создания сотрудников

В текущем релизе реализовано API для быстрого создания большого количества сотрудников, в процессе тестирования мы описали алгоритм генерации нового сотрудников в ChatGPT и провели нагрузочное тестирование по созданию 700 произвольных учетных записей на разных языках. На загрузку ушло около 1 минуты, тест прошел успешно.

Более подробно про этот кейс можно почитать по следующей ссылке.

Last updated