Coerce isDisplayOnIntake=true, когда требуется=true в CustomFormService
Добавить isDisplayOnIntake для создания / обновления запроса DTO
Ссылка, присвоенная имени участника на их странице настроек телефона
Добавить отображение имени участника и кнопку unassign на вкладку расширения per-instance
Покажите имена членов и добавьте действие Unassign на вкладку расширений уровня org
Конфигурация Wire VOIP для селекторов с расширением провайдера + с обеспечением выполнения задания
Добавление типизированных DTO, удаление метода API и обновление типов MembershipPermissionsTab VOIP
Добавить конечную точку назначения DELETE в VoipExtensionsController для администратора unassign
Добавить MemberVoipConfigController для VOIP-конфигурации члена с назначением расширения
Добавить findByAssignedMemberId методы запроса в PhoneExtensionRepository
Постоянный активный почтовый ящик в парамах запросов URL
Переключение почтовых ящиков теперь обновляет URL (?mailboxType, ?mailboxId, ?mailbox) Обновление браузера восстанавливает тот же почтовый ящик. Браузер сообщен...
Show accurate provider connection status from isConnected field
Replaces the old logic that showed "Connected" for any provider with no sync error (including brand-new providers that were never tested). New three-state badg...
Persist connection test result to isConnected field
- test() endpoint saves isConnected=true/false to DB after every health check - update() resets isConnected to null when configJson changes (credentials may h...
Add isConnected field to VoipProviderInstance
Nullable Boolean: null = never tested, true = last test passed, false = failed. Requires KamoInitializerService schema migration to add IS_CONNECTED column.
Показать баннер с активным предложением с живым обратным отсчетом миллисекунд
Получает активную сторону сервера продвижения на главной странице и отображает HeroOfferBanner между подзаголовком и бесплатным вызовом. Баннер показывает сумму...
Доступный/недоступный переключатель для бэкэнда и исправление ошибки присутствия OFFLINE
Переименовать приостановленный/активный чип в доступный/недоступный в NavTop Получите начальную доступность на монтировке и сохраняйте переключатели через новый...
Добавить доступно для ответов отдела и меня / конечных точек доступности
Live unread badge + отказ от нового сообщения агента
- поддерживает LiveSupportPanel вне экрана, в то время как виджет сведен к минимуму (только при наличии сеанса поддержки), поэтому подписка STOMP остается Живые...
Трансляция в ожидании счета + непрочитанный агент читать и посетитель отправить
**************** теперь делегаты ************************************* отражает сеансы с непрочитанными сообщениями посетителей и сокращениями, когда Агент вызы...
Нечитанный счет + помощник по поиску по сессии
Добавлено **************** Так что навигатор Значок SupportButton может считать билеты поддержки, которые действительно нужны внимание (непрочитанные сообщения ...
Добавить столбец местоположения в дейтагрид билета
Читать **************************** прямо с SupportTicketDTO (сейчас снимок на билете) Время создания — никаких дополнительных поездок туда и обратно. Флаг + го...
Снимок гео посетителя на билете
Добавлены VISITOR IP ADDRESS, VISITOR COUNTRY CODE, VISITOR COUNTRY NAME, VISITOR CITY, VISITOR SUBDIVISION колонки. Запечатлено при создании билетов Таким обра...
Добавить /ws/public-chat-native точку WebSocket вместе с SockJS
Регистрация второй конечной точки STOMP без SockJS в /ws / public-chat-native что интерфейс может подключаться к нативному WebSocket (brokerURL) без необходимос...
Per-ticket unread badge + фильтр «Только новые сообщения»
- Список билетов показывает значок чат-пузырь с непрочитанным счетом рядом Билет # всякий раз, когда на сеансе есть сообщения новее, чем у агента Последнее прос...
Трансляция непрочитанного сообщения агенту в сообщении посетителя
После того, как посетитель отправит сообщение поддержки, нажмите последние непрочитанные счета. Полезная нагрузка ******************* так агент билет-лист Обнов...
Включите сессии SUPPORT TICKET в непрочитанный запрос на членство
findChatMembershipsByMemberId теперь возвращает членство как для CHAT, так и для CHAT. Типы сеансов SUPPORT TICKET, так что существующий на члена непрочитанный ...
Производство провалилось2ban с тюрьмами PJSIP и постоянным состоянием
Добавить fail2ban-configmap.yaml с [asterisk] и [freepbx-web] тюрем, постепенная эскалация запрета (1h→24h→30d потолок), LAN ignoreip и пользовательский фильтр ...
Add resetHasAttachmentsForFolder query to ConversationRepository
Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.
Integrate Coqui TTS with norman voice (VCTK p267)
- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...
Add LAN DNS pod for split-DNS on k1m1
Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...
Закладки конфигурации платформы (General / VOIP & SMS / System User / Advanced)
Обертки **************** в SettingsView с четырьмя вкладками: Общий: обзор платформы только для чтения - общие организации, активный телефон-сервер Количество ...
Глобальная синхронизация VOIP (Admin-tunable interval)
VoipGlobalSyncJob тикает каждую минуту и на каждом клеще читает SystemConfiguration Singleton решает, нужна ли глобальная синхронизация: Если voipSyncEnabled яв...
Конечные точки System-config + Platform-overview
Поверхность конфигурации всей платформы, закрытая существующим владельцем верхнего уровня Защита (соответствует шаблону SystemUserConfigController’s requireTopL...
Контроллеры ресурсов на уровне одной организации + агрегатная система организации + внутренняя синхронизация
Per-instance ресурс CRUD (расширения / пользователи / устройства / голосовая почта): - VoipExtensionsКонтроллер на **************** Контроллер на /api/voip/inst...
Multi-instance provider refactor + full FreePBX + Flowroute SMS
Core model change: one org → many VoipProviderInstances (was: one per org). Every provider API call is now instance-scoped. PhoneProvider interface: - New meth...
Миграция между телефонами и провайдерами SMS
Запускается после Hibernate ddl-auto: обновление создает новые таблицы (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INSTANCE, PHONE EXTENSION, PHONE END USER, PH...
Многоканальный телефон / SMS провайдера основа схемы
- Переименовать VoipProviderConfig → VoipProviderInstance; выбросить UNIQUE(org id), добавить example name, config json, last sync at, last sync error. - Переим...
Развернуть FreePBX 17 + Jigasi SIP мост на k1m1 и k2m1
FreePBX (tiredofit/freepbx:17-latest) работает с hostNetwork, поэтому SIP/RTP Сохраняет реальные IP-адреса клиентов, прикрепленный один на узел через nodeSelect...
Platform-admin view, pagination, live search, filters, org logos
Администраторы платформы (владелец организации верхнего уровня) теперь видят каждую организацию в системе через Новые конечные точки /api/security/org/all-netwo...
Добавить GET/api/security/org/all-networks для администраторов платформ
Владельцы организаций верхнего уровня теперь могут получить все организации в системе. Информация о членстве относительно абонента. Органы, в которых у абонента...
Подзагрузки в редакторе модели безопасности + очистка
- Редактор модели безопасности на **************** теперь разделен в четыре подзадачи: общая (базовая информация, видимость, кто может создать), Настройки платф...
Подобно тому, что вы видите доставку?
Все это приходит в ваше рабочее пространство само по себе. Начните с бесплатного плана и прочтите эту страницу снова через месяц.
