Skip to content

Переработка UI#5

Merged
boffart merged 23 commits intomasterfrom
develop
Feb 2, 2026
Merged

Переработка UI#5
boffart merged 23 commits intomasterfrom
develop

Conversation

@boffart
Copy link
Collaborator

@boffart boffart commented Feb 2, 2026

Changelog - ModuleMonitorActiveCalls

Изменения начиная с коммита e2518f2

1. 83c9521 — Доработал сохранение кэш статуса сотрудников

  • Добавлено сохранение статуса сотрудников в кэш

2. 8f33433 — Реализовал фильтр вызовов с минимальной длительностью ожидания

  • Добавлена настройка minWaitVisible для фильтрации вызовов в ожидании
  • UI-элемент выбора минимального времени ожидания (0-60 сек)
  • Сохранение настройки в UsersSettings

3. 9517cec — Исправил фильтр вызовов с минимальной длительностью ожидания

  • Исправлена логика сравнения времени ожидания в шаблоне

4. 16192f9 — Добавил дополнительную проверку существования активной линии

  • Защита от ошибок при отсутствии активных каналов

5. a018300 — Реализовал взаимодействие с модулем ModuleSoftphoneBackend

  • Интеграция для получения имён клиентов из базы "Панель телефонии 4.0"
  • Публикация состояний пользователей через BackendApiController::publishUserStates()

6. 337fce7 — Поправил вызов и проверку существования ModuleSoftphoneBackend

  • Рефакторинг проверки наличия модуля

7. 738dd99 — Доработал подключение по AMI

  • Создан отдельный пользователь monitor-active-calls в manager.conf
  • Ограниченные права: read: system,agent,call,cdr,user; write: system,agent,call,originate

8. e924cd1 — Оптимизация, исправление форкеров, логирование

  • Исправлены ошибки работы форкеров
  • Добавлены CSS-стили для карточек агентов
  • Дополнено логирование

9. 9a768ab — Отображение агентов очереди в виде "плитки"

  • Новый UI: агенты отображаются карточками вместо списка
  • Сортировка: offline агенты в конце
  • Цветовая индикация статусов (green/blue/pink/grey)

10. 7d34af7 — Правка комментариев

  • Косметические изменения в комментариях

11. f4a903a — Интеграция с ModuleSoftphoneBackend для имён клиентов

  • Отображение имени клиента вместо номера телефона
  • WebSocket подключение к ModuleSoftphoneBackend
  • Методы getClientHeader(), hasClientByPhone()

12. 53a013a — Получение активных вызовов через WSS

  • WebSocket канал для real-time обновлений вызовов
  • Подписка на active-calls канал ModuleSoftphoneBackend

13. 70477b1 — Поправил отображение вызовов в ожидании

  • Исправлено отображение очереди ожидающих вызовов

14. 1fae40c — Исправил проблемы работы через WSS сервисы

  • Исправлена синхронизация данных через WebSocket

15. 5bb245d — Исправил таймеры длительности разговора

  • Корректное обновление таймеров при работе через WSS

16. b9caa1a — Поправил обновление информации о контакте

  • Исправлено обновление данных контакта в UI

17. 721d4a3 — Поправил определение собеседника для агентов очереди

  • Корректное отображение номера собеседника для внутренних номеров

18. e2f9256 — Рефакторинг WorkerActiveCalls

  • Убрано дублирование ExtensionStatus в CALL_EVENTS
  • Исправлена опечатка STATE_UNAVAILIBLESTATE_UNAVAILABLE
  • Добавлен try-catch в главный цикл start()
  • Добавлена очистка массивов activeBridges, spyerChannels, queueEntryes
  • Проверка ключей в event handlers
  • Типизация queueEntryes
  • Константы: CACHE_TTL, CONTROL_INTERVAL, MAX_BRIDGE_ITERATIONS, AMI_REQUEST_TIMEOUT
  • Оптимизация: индекс agent→queues для O(1) поиска
  • Информация о соединениях в publishUserStates
  • Совместимость с PHP 7.4 (str_starts_withstrpos)

19. d942e34 — Исправил обработку псевдо-каналов

  • Проверка на наличие слеша перед getEndpointName() для каналов типа OutgoingSpoolFailed

20. 9026dfb — Добавил ConnectedLineNum в структуру каналов

  • Номер собеседника передаётся в states->channels->number даже до соединения

21. 8a88919 — Добавил обработку NewConnectedLine

  • Событие NewConnectedLine для обновления номера собеседника
  • Фильтрация значений <unknown>

22. 3143a12 — Улучшения UI и исправления отображения

  • Исправлено скрытие текста "Выберите очередь"
  • Исправлена ошибка TypeError: undefined is not iterable
  • Защита от сброса выбранных очередей при refresh
  • Fallback queueEnterTime для queueData
  • Исправлено отображение номера для входящих (убран need-update)
  • Адаптивная ширина карточек агентов (min 240px)
  • Поиск по наименованию в dropdown очередей

Итого

22 коммита, охватывающие:

  • Интеграция с ModuleSoftphoneBackend — WSS real-time обновления, отображение имён клиентов
  • Новый UI агентов — карточки/плитки с цветовой индикацией статусов
  • Фильтр минимального времени ожидания — настраиваемый порог 0-60 сек
  • Рефакторинг WorkerActiveCalls — оптимизация, типизация, константы, обработка ошибок
  • AMI безопасность — отдельный пользователь с ограниченными правами
  • Множество исправлений — UI, стабильность, совместимость с PHP 7.4

boffart and others added 23 commits November 18, 2025 10:53
…очивание, теперь офлайн агенты отображаются в конце.
…ие информации по наименованию клиента. Модуль ModuleSoftphoneBackend наполняет базу данных клиентов на основе "Панель телефонии 4.0".
- Убрано дублирование ExtensionStatus в CALL_EVENTS
- Исправлена опечатка STATE_UNAVAILIBLE -> STATE_UNAVAILABLE
- Добавлен try-catch в главный цикл start()
- Добавлена очистка массивов activeBridges, spyerChannels, queueEntryes
- Добавлена проверка ключей в event handlers (callEvents, queueEvents, stateEvents)
- Типизировано свойство queueEntryes
- Вынесены магические числа в константы (CACHE_TTL, CONTROL_INTERVAL и др.)
- Оптимизация printActiveCalls: индекс agent->queues для O(1) поиска
- Добавлена информация о соединениях в publishUserStates (channel, number)
- Logger: права доступа устанавливаются всегда, не только при создании
- Исправлена совместимость с PHP 7.4 (str_starts_with -> strpos)
Добавлена проверка на наличие слеша в имени канала перед вызовом
getEndpointName(), который ожидает формат TECH/endpoint-uniqueid.
…обеседника

Теперь в states->channels->number передаётся номер собеседника
из AMI-события даже когда канал ещё не в бридже (звонит/ожидает).
- Слушаем событие NewConnectedLine для обновления номера собеседника
- Фильтруем значения типа <unknown> — показываем пустую строку
- Исправлено скрытие текста "Выберите очередь" при выбранных очередях
- Исправлена ошибка JS TypeError: undefined is not iterable (this.calls → this.allCalls)
- Добавлена защита от сброса выбранных очередей при refresh dropdown
- Добавлено сохранение queueEnterTime в callType как fallback для queueData
- Исправлено отображение номера телефона для входящих вызовов (убран need-update для incoming)
- Адаптивная ширина карточек агентов (минимум 240px, растягиваются на всю ширину)
- Добавлен поиск по наименованию в dropdown выбора очередей
Currently translated at 3.1% (1 of 32 strings)

Translation: MIKOPBX/ModuleMonitorActiveCalls
Translate-URL: https://weblate.mikopbx.com/projects/mikopbx/modulemonitoractivecalls/th/
@boffart boffart merged commit ba7e199 into master Feb 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants