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.
· kamo-internal
Add Employee Browser for HR page with EmployeeManager component
- Created EmployeeManager component similar to LeadManager with employee-specific fields - Updated /hr/page.tsx to match doc manager layout with gradient header - Added employee browsing with filtering, search, and bulk operations - Includes tabs for All Employees, Active, Inactive, and On Leave - Features include status indicators, department/job title display, and employee profile links
· kamo-internal
Update leads page with LeadManager component matching doc manager layout
- Created LeadManager component similar to DocManager with lead-specific fields - Updated /leads/page.tsx to match doc manager layout with gradient header - Added tab-based filtering (All Leads, Active, Closed, Follow Up) - Implemented AG Grid with lead columns: ID, Contact, Phone, Status, Score, Vendor, Product, Source, Agent, Address, Dates - Added search, filter, and bulk selection capabilities - Integrated with existing lead view navigation
· kamo-internal
Add premium enterprise features - Analytics, CRM, AI Assistant, Advanced
ANALYTICS DASHBOARD - Real-time call metrics with interactive charts CRM INTEGRATION - Customer data, lifetime value, activity tracking AI ASSISTANT - Sentiment analysis, call summaries, keyword detection ADVANCED - Time-based routing, multi-device management, encryption status 11 total tabs with dual-row navigation, mini-charts, progress bars Professional gradients, animations, and enterprise-grade polish
· kamo-internal
Implement 100% enterprise VoIP desk phone features
Complete implementation of 100+ features matching Cisco 8800, Polycom VVX 600, Yealink T58A 7 Tabs: Dialpad, Speed Dial/BLF, History, Voicemail, Contacts, Queue, Settings Status bar with WiFi, DND, Call Forward, Voicemail badges Full call management: Hold, Mute, Record, Transfer, Conference, Park Speed Dial with BLF presence indicators Visual voicemail with MWI Call history with missed call tracking Contact management with groups and favorites Call queue with agent status and statistics Settings for DND, Call Forward, Auto Answer, Headset Mode
· kamo-internal
Add expandable softphone panel to ChatBox
- Add PhoneInTalk icon button to ChatBox header for softphone toggle - Create comprehensive SoftphonePanel component with full UI - Implement dialpad with 0-9, *, # buttons - Add call control buttons (mute, hold, speaker) - Include tabs for Dialpad, History, and Contacts - Support call state management (idle, calling, in-call) - Display phone number input and call duration - ChatBox expands left by doubling width when softphone is opened - Maintain side-by-side layout (softphone left, chat right) - Smooth transitions with 280ms cubic-bezier animations - Active state indicator for softphone button - UI-only implementation - no effect on existing functionality - Consistent styling with primary color scheme - Full visual integration with ChatBox design system The softphone provides a complete calling interface while keeping the chat functionality fully accessible on the right side.
· MediaService
Add STOMP frame logging to diagnose connection issues
· MediaService
Add TomcatConnectorCustomizer to force SSL keystore config
- Spring Boot's application.yml SSL config not being applied - Use TomcatConnectorCustomizer to programmatically set keystore - Forces connector to use /etc/ssl/certs/kamocrm/tls.p12 - Adds debug logging to verify SSL configuration
· kamo-internal
Kết nối tới cổng MediaService 8443 cho WebSet
- Cập nhật kết nối WebSocket để sử dụng phương tiện truyền thông.kamocram.com: 88443 - Thông qua Traefik để truy cập mạng - Dùng kết nối trực tiếp HTTPS/HTTP1. 1 tới MediaService - Các cuộc gọi điện thoại của ARI tiếp tục sử dụng các đường dẫn chuẩn qua Traefik
· MediaService
Expose MediaService on port 8443 for WebSocket over HTTPS/HTTP1.1
- Added NodePort service on 8443 for direct WebSocket access (bypasses Traefik) - Mount wildcard-kamocrm-com SSL certificate - Init container converts PEM to PKCS12 for Spring Boot - Configure Spring Boot to run HTTPS on port 8443 - Update health probes to use HTTPS scheme - WebSocket traffic bypasses Traefik HTTP/2, uses HTTP/1.1 - API traffic continues through Traefik on port 443 with HTTP/2
· MediaService
Add CORS middleware to media-route for cross-origin WebSocket
- Added cors middleware to allow cross-origin connections - Enables WebSocket connections from internal.* to media.* - Allows all origins, methods, and headers - Required for browser WebSocket from different subdomains
· kamo-internal
Thêm đường dẫn ủy nhiệm cho điểm kết thúc WebTEC
- Thêm /api/webrtc ủy nhiệm cho MediaService - Thêm /api/webrtc/tken ủy nhiệm xác thực Janus - Thêm /api/webrtc/ call/initiate, câu trả lời, kết thúc ủy quyền - Theo cùng mô hình như /api/media cho phép - Cho phép các cuộc gọi WebTEC từ hệ thống điều khiển kamo-i nội bộ
· kamo-internal
Hoàn toàn đồng đẳng webTEC gọi với tín hiệu
- Thêm sử dụngWBTC móc với hỗ trợ tín hiệu đầy đủ - Tôi kết hợp các tín hiệu trên mạng. - Thêm thông báo cuộc gọi tới với nút trả lời/ bộ phân giải - Cập nhật ChatBux với độ cao động để gọi UI - Xuất ra trình khách STOMP từChatWebSet để ra hiệu - Hỗ trợ cho các cuộc gọi âm thanh, video và chia sẻ màn hình - Gọi tự động khi có cuộc gọi đến - Hoàn toàn đồng đẳng WebTTEC với hậu quả của STUN/TURN
· MediaService
Add WebSocket signaling for peer-to-peer calls
- Added WebRTCSignalingController for call signaling - Handles offer/answer exchange via STOMP - Forwards ICE candidates between peers - Manages call hangup notifications - Uses session-based topics for privacy
· kamo-internal
Thêm sự kết hợp của Janus WebTC cho các cuộc gọi âm thanh/video
- Được thêm vào sử dụngJanusWebTTC móc cho quản lý cuộc gọi WebTEC - Thành phần truyền hình Gọi điện cho trình chiếu phim - Tôi kết hợp với ChatBux cho kinh nghiệm gọi điện liên tục - Hỗ trợ cho các cuộc gọi âm thanh, các cuộc gọi video và chia sẻ màn hình - Tỷ lệ hình thể thích hợp (16:9) cho trình chiếu phim - Điều khiển cuộc gọi: câm, video toggle, kết thúc cuộc gọi - Dùng máy chủ kamocram.com Janus với hỗ trợ STUN/TURN
· MediaService
Add Janus WebRTC integration
- Added WebRTCController for token generation and call management - Configured Janus API URL and secrets (api, token, admin) - Configured STUN/TURN servers (kamocrm.com:3478) - Added endpoints for call initiation, answering, and termination - Updated TURN password to match coturn secret - Added HMAC-SHA1 token signing for Janus authentication
· KlusterServices
Update TURN server credentials with secure values
- Updated turn-secret with secure random value - Updated turn-password for Janus authentication - Credentials match MediaService WebRTC configuration
· KlusterServices
Add ServersTransport deployment to CI/CD workflow
Deploy traefik/serverstransport.yaml as part of Traefik deployment to both K1M1 and K2M1. This enables HTTP/1.1 backend connections for MediaService WebSocket support.
· KlusterServices
Add ServersTransport for MediaService WebSocket connections
Add media-websocket-transport ServersTransport resource to disable HTTP/2 for backend connections to MediaService. This is required for proper WebSocket upgrade support with Spring Boot. HTTP/2 doesn't support the WebSocket Upgrade header mechanism, so we need HTTP/1.1 for Traefik-to-backend communication.
· KlusterServices
Add media-websocket-upgrade middleware to force Upgrade header
- Add Upgrade: websocket header for WebSocket paths to fix HTTP/2 Extended CONNECT conversion - This ensures HTTP/2 WebSocket upgrade requests are properly converted to HTTP/1.1 with Upgrade header - Fixes 'Handshake failed due to invalid Upgrade header: null' error
· KlusterServices
Add media-cors middleware for media domain CORS support
- Add media-cors middleware matching theme-cors configuration - Allows CORS headers to be set for media.{domain} requests
· kamo-internal
Thêm việc ghi nhật ký lỗi chi tiết cho sự tạo ra phiên chạy MediaService
- Ghi lưu địa chỉ URLService đang được gọi - Ghi lại thông báo trả lời - Lỗi ghi nhật ký với đầy đủ chi tiết lỗi - Gồm URL trong trả lời lỗi cho việc gỡ lỗi
· KlusterServices
Add 'media' subdomain to auto-cert SUBDOMAINS for MediaService
- Add 'media' to SUBDOMAINS list in auto-cert-service.yaml - Enables automatic SSL certificate generation for media.{domain} subdomains - Required for MediaService WebSocket connections via media.{domain}
· kamo-internal
Add direct MediaService routes via media.{domain} for WebSocket support
- Create new /api/media/* routes that forward directly to media.{domain} - These routes bypass APIService to allow secure WebSocket connections - MediaService routes use getMediaServiceBaseUrl() to route to media.{domain} - SecurityService routes continue using /api/security/* via api.{domain} - This separation enables WebSocket connections directly to MediaService
· kamo-internal
Add logging for subscription request to backend
- Log when subscription request is sent to /app/chat/subscribe - Helps verify if subscription requests are reaching the backend
· kamo-internal
Add detailed logging for subscribe function
- Log when subscribe() is called and current connection state - Log client existence and connection status - Helps diagnose why subscriptions aren't being created
· SecurityService
Add detailed logging for WebSocket subscription requests
- Added logging to trace when subscribeToSession is called - Logs payload and sessionGuid extraction - Logs database lookup for session verification - Helps diagnose why NATS subscriptions aren't being created
· kamo-internal
Add detailed WebSocket connection logging
- Enhanced logging for WebSocket connection success/failure - Log connection frame details on successful connection - Log detailed STOMP error information - Helps diagnose why WebSocket connections aren't being established
· SecurityService
Add typing indicator support via WebSocket
· kamo-internal
Add typing indicators for real-time typing status
· kamo-internal
Load 100 message history on chat open and determine message author correctly

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