Bản ghi thay đổi
Có gì mới không?
Mọi cải tiến cho nền tảng, khi nó được đưa ra.
· VOIPService
Add RC webhook subscription provisioner with startup + 12h renewal
· VOIPService
Add call event webhook pipeline; branch SMS vs telephony events before processing
· VOIPService
Add capabilities, SIP credentials, and call management REST controllers
· VOIPService
Implement RingCentral call management methods (sip, history, voicemail, presence, queues)
· VOIPService
Extend PhoneProvider interface with call management methods; update stubs
· VOIPService
Add provider capability and call management DTOs
· APIService
Add OAuth callback forwarding with no-redirect RestTemplate
- Add noRedirectRestTemplate bean (HttpClient.Redirect.NEVER) so the 302 from VOIPService's OAuth callback is passed through to the browser instead of being followed by the proxy - Add dedicated /api/voip/oauth/callback route mapped before the wildcard /api/voip/** to ensure it uses forwardCallback() (no auth headers stripped, no redirect following)
· kamo-internal
Replace JWT config with OAuth connect UI for RingCentral
- RingCentralConfig: OAuth connect/disconnect button with status indicator, main phone number field, test connection (only when connected) - voipApi: add getOAuthStatus, startOAuth, disconnectOAuth; testProvider no longer takes a config body - RingCentralHelp: update instructions for OAuth flow
· VOIPService
Refactor RingCentral to OAuth 2.0 Authorization Code flow
- New OAuthController: /oauth/start (returns authUrl), /oauth/callback (exchanges code, saves tokens), /oauth/status, DELETE /oauth/token - OTKValidationFilter: exclude /api/voip/oauth/callback (browser redirect) - RingCentralProvider: use pre-fetched access token, remove JWT Bearer - PhoneProviderFactory: load OrgOAuthToken from DB, auto-refresh on expiry - ProviderConfigController: remove jwtKey, test uses factory.checkHealth() - application.yml: add oauth-redirect-uri and oauth-success-redirect config - PhoneProviderFactoryTest: update for OAuth token-based flow
· InitializerService
Create KamoTokens schema and org_oauth_token table
- CREATE SCHEMA IF NOT EXISTS kamotokens - CREATE TABLE kamotokens.org_oauth_token with unique (org_id, provider) - DROP COLUMN jwt_key from voip_provider_config if it exists
· kamo-shared-library
Thêm OrgOAuthToken thực thể lưu trữ OAuth 2.0
- Thêm OrgOAuthToken thực thể trong KamoTokens schema (kamotokens.org oauth token) - Thêm OrgOAuthToken Reposatory với tìm thấy ByOrgIdAndProvider / xoá bởiOrgIdAndProvider - Gỡ bỏ jwtKey khỏi VoipProviderConfig (được đặt bởi OAuth rith)
· kamo-internal
Equal-height feature cards and Kazoo-aware provider descriptions
- Set height: 100% on FeatureCard motion wrapper so cards in the same row match the tallest card - Update KamoPBX description to highlight Kazoo as a carrier-grade, distributed, open-source telecom platform - Rewrite RingCentral and FreePBX descriptions to consistent length and clearly differentiate each provider
· kamo-login
Thêm trình bay HTML và văn lệnh thế hệ Puppeteer
· kamo-internal
Rewrite SmsBox as tab-based orchestrator with contact header
· kamo-internal
Add SmsTemplatesTab and SmsCrmTab
· kamo-internal
Add SmsChatTab with search, emoji, attach, timestamps, quick replies
· kamo-internal
Add SmsNewConversation dialpad component
· kamo-internal
Add shared template data
· kamo-internal
Add SMS tool button to NavTop, gate softphone + SMS on organization.isVoip
· kamo-internal
Redesign phone provider setup to match email provider format with logos, help tips, and correct nav tabs
- Rewrite PhoneProviderSetup to match EmailProviderSetup pattern: list/config view split, AnimatePresence transitions, back button with provider name in header, loading/error states, help tips pushed to outer panel in config view - Add VoipProviderCard: styled like email ProviderCard with **************** logos, Active chip, Coming Soon chip for unimplemented providers - Add VoipProviderSelector: Grid layout matching email selector, confirm dialog on provider switch - Add plain-English help components for RingCentral (step-by-step credential guide), KamoPBX, and FreePBX - Update phone/page.tsx: proper title "Phone System Integration", full helpTips for all five tabs (provider-setup, dial-plans, advanced-settings, device-registration, health) - Update SettingsStatusWindow: show all five real phone tabs (Provider Setup, Dial Plans, Advanced Settings, Device Registration, Health) instead of old placeholder links; Phone System(s) always visible regardless of isVoip - Update settings/page.tsx phone cards to use correct tab slugs matching actual page tabs
· kamo-internal
Add Personal Calendars & Contacts section to member membership-permissions tab
· kamo-internal
Add PersonalProviderSection component for member CalDav/CardDav integrations
· kamo-internal
Add CalDav/CardDav tab to email settings page
· kamo-internal
Add CalDavProviderSetup component and caldav sub-components
· DaemonService
Initial DaemonService project — Quartz jobs, NATS publishers, K8s, CI/CD
· EmailService
Write ContactSyncLog on calendar/contact mutations for bidirectional sync
· EmailService
Add Google, Microsoft, and GenericDav provider stubs with token refreshers
· EmailService
Implement SyncTriggerPublisher and SyncEventListener via NATS
· EmailService
Add IntegrationSettingsController, IntegrationSettingsService, SyncTriggerPublisher stub
· EmailService
Add ProviderRegistry

Vũ trụ của anh đang chờ đợi.
Bắt đầu miễn phí trong vài phút. Thêm sản phẩm bất cứ khi nào bạn sẵn sàng — không di chuyển, không đăng nhập mới.
Miễn phí mãi mãi — không cần thẻ tín dụng