Move urgent badge from Lead ID to Contact column
- Remove urgent badge from IdRenderer - Add urgent badge to ContactRenderer, positioned to the left of contact info - Badge now appears next to contact name/ema...
Add pinned urgent leads functionality to datagrid
- Add pinned rows feature (default 5 rows) for latest urgent contact leads - Pinned rows always visible at top regardless of filters or sorting - Modern styling...
Update status column to show parent > child format and use enum-based mock data
- Update mock data generation to use actual status/sub-status pairs from Java enum - Change "Sub Status" column header to "Status" - Display status in "{parent}...
Update leads page with status filters, remove phone column, add sub-tabs
- Remove phone number column from leads grid - Increase width of Created and Assigned columns to fit datetime data - Add status and sub-status dropdown filters ...
Add saggy bounce animation to connection lines with arrow heads
- Converted straight lines to curved SVG paths using quadratic bezier curves - Added continuous saggy bounce animation using requestAnimationFrame - Longer conn...
Add Adjust Features functionality to apps in account settings
- Added 'Adjust Features' button/link to each enabled app card - Button appears in both grid and list view modes - Added 'Adjust Features' option to context men...
Reduce dial tone volume and add modernized clear button
- Reduced dial tone volume by 50% (from 0.5 to 0.25) - Added clear button (CallEnd icon) that appears when numbers are entered - Clear button clears all digits ...
Enhance phone number display field with modern animations
- Added auto-scroll to follow last dialed digit when number is too long - Implemented digit-by-digit pop-in animations with staggered timing - Added focus state...
Improve dial pad with audio preloading and modern animations
- Preload all DTMF audio files when dialpad tab opens for instant playback - Add modern button animations with hover and press states - Implement visual feedbac...
Add DTMF touch tone sounds to dial pad in chatbox
- Added DTMF tone generation script (generate-dtmf-tones.js) - Generated WAV files for all dial pad buttons (1-9, *, #, 0) - Integrated touch tone playback into...
Add Pipeline page with Applications, Orders, Shipments, and Returns tabs
- Created pipeline page using SettingsView component similar to account pages - Added Applications tab with application management and status tracking - Added O...
Add Pipeline button to NavPri navigation
- Added Pipeline button with TimelineIcon after Accounts button - Links to /pipeline route - Always visible (not conditional on organization features)
Update account page tabs to new account type categories
- Changed tabs from status-based to account type categories: - "Clients & Customers" (BusinessCenter icon) - "Members & Subscribers" (People icon) - "Empl...
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...
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 - Add...
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 - Sentime...
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, Queu...
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, ...
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...
WebSocket에 대한 MediaService 포트 8443에 연결
- media.kamocrm.com을 사용하는 웹 소켓 연결 업데이트 : 8443 - WebSocket 전용 트래픽을 우회 - MediaService에 직접 HTTPS/HTTP1.1 연결 사용 - API 호출은 Traefik을 통해 표준 경로를 계속 사용
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 PK...
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 ...
WebRTC 엔드포인트에 대한 API 프록시 경로 추가
- MediaService에 /api/webrtc/config 프록시 추가 - Janus 인증에 대한 /api/webrtc/token 프록시 추가 - 추가 /api/webrtc/call/initiate, 대답, 엔드 프록시 - /api/media 프록시와 같은 패턴을 따릅니다. - ka...
Signaling과 함께하는 피어 투 피어 웹RTC 완료
- Full Signaling 지원이 포함된 useWebRTC Hook 추가 - 통합 WebSocket 신호 (오프어, 답변, 얼음 후보자) - 답변/드코더 버튼으로 들어오는 콜 알림 추가 - call UI의 동적 높이로 ChatBox 업데이트 - UseChatWebSocket의 STO...
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 not...
오디오 / 비디오 통화에 대한 Janus WebRTC 통합 추가
- WebRTC 통화 관리용 useJanusWebRTC Hook 추가 - In-chat 비디오 디스플레이에 대한 VideoCallPanel 구성품 추가 - ChatBox와 원활한 통화 경험 통합 - 오디오 통화, 비디오 통화 및 스크린 공유 지원 - Proper 종횡비 (16 : 9) ...
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 (kam...
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
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 s...
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...
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 conv...
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
MediaService 세션 생성에 대한 자세한 오류 로깅 추가
- 로그인 MediaService URL 호출 - 로그 응답 헤더 - 전체 오류 정보와 향상된 오류 로그 - 디버깅에 대한 오류 응답에 URL 포함
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 MediaServ...
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 r...
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
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 creat...
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 dia...
Add detailed WebSocket connection logging
- Enhanced logging for WebSocket connection success/failure - Log connection frame details on successful connection - Log detailed STOMP error information - Hel...
Load 100 message history on chat open and determine message author correctly
Support two-member chat sessions and message pagination (default 100 messages)
메시지 역사와 findOrCreateChatSession에 대한 pagination 지원 추가
Make chat boxes reposition when Team Members panel opens/closes, add retry logic for session creation
Migrate chat functionality from ChatSideBar to Team Members - add chat button to MemberItem, preserve member IDs, remove duplicate ChatSideBar
Access Level dropdown with icons and titles from ImageAccessLevelType
Pre-consume X-OTK via filter to avoid expiry on large uploads; use pre-auth session in ImagingController
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
