Закройте дыру в почтовом ящике и еще шесть дефектов команды
Обсуждение 6df0008 подтвердило 24 вывода. Важные из них: КРИТИЧЕСКИЙ — любой член может удалить почту коллеги. Команды голосовой почты были Составлено как «{ma...
Microsoft Teams Phone в качестве поставщика
Команды не являются одним API, поэтому провайдер склеивает три плоскости управления вместе: • График, только приложение — история вызовов (getPstnCalls), чтени...
Продолжить путь VOIP PHI к phi access log
Записи звонков, аудио голосовой почты и транскрипты были проверены в журнале Поток, который держит 14 дней против шестилетнего обязательства § 164.528 и не може...
Сканирование общих репозиториев MFA
MfaEnrollmentService - это @Service в библиотеке, разделенной Камо, так что Wildcard @ComponentScan("com.kamo") в этом приложении строит его независимо от того,...
Требуется VIEW CALL LOGS для воспроизведения вызовов в PHI-ручках
Запись и воспроизведение голосовой почты проверили аренду и ничего больше: любой участник Орг-владелец может вытащить любой вызов в нем, включая транскрипт, на ...
Запись звонков, голосовая почта и доступ к транскриптам
Запись воспроизведения не оставила следов. Записанный звонок - самый плотный PHI платформенные магазины — неотредактированный разговор — и «кто слушал это» «Зво...
Проводить выдающуюся работу
Постановочный и совершенный как есть, так что ничто не остается незавершенным в рабочем дереве. 5 измененных файлов, 549 вставок (+), 2 удаления (-)
Укрепите загрузку kububl против шелушащегося выхода [skip ci]
dl.k8s.io по выходу бегуна периодически падает в середине передачи: Curl: (56) OpenSSL SSL read: расшифровка не удалась или не удалась который не справляется с ...
Прекратите прикреплять просроченный секрет wildcard-kamocrm-com
wildcard-kamocrm-com был унаследованной мульти-SAN тайной, которую серт-менеджер осиротел. когда его сертификат был повторно указан в секрете хозяина. Ничего не...
Конечная точка TURN-REST для мобильного софтфона
GET/api/voip/turn/credentials mints ephemeral coturn creds (HMAC-SHA1 over) "<expiry>:<memberId>" с общим статико-ауто-секретным) таким родным/клеточным WebRTC ...
Принять X-***-токен на REST + подписанные ?st= потоковые токены на аудио конечных точках
ОТКВалидация Преимущество фильтра: X-OTK → X-***-Token → ?st= (GET, аудио) только потоковые пути, проверенные через общий StreamTokenCodec внутренний.auth.secre...
Guard/internal/voip with InternalAuthFilter as documented — it 401'd on session auth
VoipInternalSyncController всегда документировал внутренний фильтр как свою охрану. но /internal/voip никогда не был в PROTECTED PREFIXES и не был исключен из O...
Разрешить администраторам подключать RingCentral от имени участника
Поток RingCentral на одного участника был только для самообслуживания, поэтому администратор управлял В профиле другого участника было написано: «Они должны сое...
Идентификация RingCentral OAuth + исправления SIP для софтфона
Верительные данные Softphone SIP: - getSipCredentials: map outboundProxyBackup + stunServers (web-phone v2 needs) для WSS отказоустойчивости + ICE/media; бросьт...
Постоянное сравнение секретов внутренней ауты (оракул времени)
Заменить String.equal на MessageDigest.isEqual, чтобы задержка ответа не могла X-Internal-Auth делится секретным байт за байтом. Широкий охват флота копировальн...
Вернуться 200 Ложь для неконфигурированных возможностей
GET/api/voip/capabilities бросила ProviderNotConfiguredException (422) Org не имела провайдера телефонов, регистрируя ошибку красной консоли на каждой загрузке ...
Исключить /api/voip/sms/templates из фильтра сеанса OTK
Конечные точки шаблона Doc-07 SMS - это внутренние звонки без сеанса, защищенные Внутренний фильтр (X-Internal-Auth), но OTKValidation Фильтр все еще работал на...
Шаблонная система Doc-07 SMS — /api/voip/sms/templates + GSM-7/UCS-2
**************** по разделяемым объектам SmsTemplate: отображает {{var}} и отправляет через существующий BulkTextProvider примитивный путь несущей; SmsSegmentCa...
Wire mlos-internal-auth (INTERNAL AUTH SECRET) в развертывании
Охраняет новую /api/bulktext/конечную точку. Доля существующего производства значение внутреннего аудита (mlos-internal-auth) для восстановления SMS Подтверждае...
Внедрение POST/api/bulktext/отправка внутренних транзакционных SMS
SecurityService's BulkTextSmsClient (password-recovery + account-settings SMS) всегда POSTed **************** to /api/bulktext/send, Но контроллер так и не был ...
Migrate to k1m1 (clone+registry+kubeconfig from k1m1, drop k2m1, simple kububl install)
Scope concurrency to build jobs, not Kubernetes deploys
Workflow-level concurrency serialized the whole pipeline (including kubectl rollouts). Move the group to the build job only so deploy jobs from different runs c...
Создание записи ключа объекта MinIO, такого как поток изображений
Опустить расширение, когда FILE EXT является нулевым / пустым, чтобы имя объекта совпадало RecordingImagingService и ImagingController. Строка Java Concat с нул...
Разрешить расширение истории вызовов с помощью Member voip config, а не phone extension
************************************************************************************* Member voip config корректно отображает расширение. использовать Member vo...
Surface imaging fallback when provider has no call history
KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...
Fall back to imaging recordings for call history + voicemails
FreePBX 17 doesn't expose voicemail messages over REST or GraphQL on this install (the GraphQL voiceMail type returns mailbox config, not messages, and /admin/a...
Resolve member→extension before VM/CDR provider lookup
CallController was passing memberId where FreePBX (and other PBX-style providers) expect an extension number — voicemail listing returned empty because no PBX e...
Запись воспроизведения, архив голосовой почты, выделенная голосовая почта, обогащение истории
- Новая запись Контроллер с объемным поиском, потоковое аудио для треков master + per-channel и метаданные для окна инструмента медиаплеера CallController.getCa...
Захват нового ExtNumber в качестве окончательного захвата лямбды в контроллере MemberVoipConfigController
newExtNumber условно переназначен внутри if (isVoipEnabled & & ...) Блок, что делает его не совсем окончательным. Блок синхронизации TeamMember читает лямбда Op...
Добавить функции вызова API — вызов вперед + автоответ, проводной через абстракцию провайдера
Добавить CallFeaturesDto и SetCallFeaturesRequest - Добавить флаги CallForward/autoAnswer для ProviderCapabilities - Добавить по умолчанию getCallFeatures/setCa...
Не стирайте задание участника на синхронизацию от поставщиков, которым не хватает метаданных
**************************** безоговорочно переписанный PhoneExtension.assignedMemberId с любым возвратом провайдера. FreeBX (и любой провайдер, который не отсл...
WSS-aware SIP учетные данные для софтфонов браузера
Конечная точка /api/voip/sip/credentials теперь возвращает учетные данные на стороне браузера SIP стек может фактически использовать: транспорт WSS, общественно...
Добавить конечную точку назначения DELETE в VoipExtensionsController для администратора unassign
Добавить MemberVoipConfigController для VOIP-конфигурации члена с назначением расширения
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...
Use extensionId as external ID, not Relay node id
FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...
Переписать все запросы/мутации GQL на интроспекции живых схем
Проверяли каждое имя поля и тип по фактической схеме FreePBX 17. Полный набор исправлений: Вопросы: - fetchAllExtensions: удалите из расширения несуществующее ...
Исправьте имя поля GraphQL для fetchAsteriskDetails
FreePBX API возвращает «Вы имели в виду fetchAsteriskDetails?» соответственно проверить запрос и его доступ к пути передачи данных.
Добавить заголовки XHR/Accept и парсинг струнных ответов для клиента GraphQL
Тот же шаблон, что и FreePBXTokenCache: добавьте X-Requested-With + Accept: Application/json подавление HTML-ответов FreePBX и переключение всех трех сайтов выз...
Добавьте заголовки Accept + XHR и анализ ответов на исходную строку для конечной точки токена
FreePBX возвращал текст/html при вызове через кластер DNS. Заголовок хоста не соответствовал настроенному PBX HOSTNAME. Добавить Принять: приложение/json и X-Re...
Исправьте строки OAuth2 для FreePBX API
FreePBX - это идентификаторы верхнего уровня: gql (все GraphQL) и «Отдых» (All REST) Формат gql:read означает GQL для модуля Называется «чтение», которого не су...
Скачать VOIPService Spec Md из репо
Per project convention (.md-файлы не поставляются с сервисами).
Подобно тому, что вы видите доставку?
Все это приходит в ваше рабочее пространство само по себе. Начните с бесплатного плана и прочтите эту страницу снова через месяц.
