Разрешить расширение истории вызовов с помощью 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-файлы не поставляются с сервисами).
Включите com.kamo.z.shared.commerce в репозиторий
Последняя камо-общая библиотека распространяется **************************** (donotmodify.dao.services), в зависимости от конструктора ************************...
Контроллеры ресурсов на уровне одной организации + агрегатная система организации + внутренняя синхронизация
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...
Восстановление для обновления библиотеки с разделением на камо (удалить OrganizationType, добавить isTopLevel)
Восстановление для обновления библиотеки с разделением на камо (удалить OrganizationType, добавить isTopLevel)
Восстановление для обновления камо-общей библиотеки (CREATE CHILD ORG right + apply-to flags)
Вытаскивает новый RoleRightType.CREATE CHILD ORG (id 131), три флага на ChildOrgSecurityModel, две перегрузки службы 13-arg и помощники типа создателя AppliedMo...
Реконструкция для обновления библиотеки kamo-shared (appConfig upsert-only fix)
Вытаскивает затвердевший ****************, который больше не удаляет строки AppConfig, типы услуг которых отсутствуют в полезной нагрузке абонента — предотвраща...
Реконструкция для обновления библиотеки kamo-shared (устранитель эффективных функций)
Выберите новые методы AppliedModelEnforcementService (computeAvailabilitiesMap, isAppEffectivelyEnabled, getEffectivelyEnabledAppTypes, computeEffectiveFeatures...
Bump kamo-shared-библиотека до 1.5.0 для прикладной модели
Перенесет эту услугу в библиотеку 1.5.0, чтобы она получила новый сервис AppliedModelEnforcementService, ChildOrgSecurityModelAppConfig, ServiceAvailability Тип...
Восстановление для обновления библиотеки с разделением на камо (правила рабочей силы + возврат DEFAULT в MemberRightsAppliedService)
Требует перестройки, поэтому эта служба подбирает обновленный ****************, который применяет правила силы шаблона и резервные копии шаблона DEFAULT поверх ...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Bump kamo-shared-library to 1.4.0
Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...
Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)
Handle RC webhook validation token; make body optional for verification requests
Add MMS attachment support — multipart send, base64 storage, image display
- RingCentralProvider: override sendSms with multipart/form-data MMS path - VoipMessageService: accept attachment bytes, store base64 data URL in attachmentUrl ...
Add call event webhook pipeline; branch SMS vs telephony events before processing
Add capabilities, SIP credentials, and call management REST controllers
Implement RingCentral call management methods (sip, history, voicemail, presence, queues)
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.