Apply suggestions from code review
Edit for better formatting warning message
Fix warning message for updating from analytics V2
Fixing markdown from last commit
Update README with deprecation notice for PostgreSQL image
Added warning about deprecation of 'postgresql-latest' image.
Change analytics Docker image tag to 'latest'
Updated Docker pull command to use the latest image, because "postgresql-latest" is deprecated.
Auto-scroll chat to bottom on load and new messages
Track previous message count and scroll smoothly when new messages arrive; scroll immediately on initial load or when un-minimizing
Frontend WebSocket persistence - match backend timing and faster reconnect
Heartbeat: 4s -> 20s to match backend, reconnect delay: 5s -> 1s, add 30s connection timeout
WebSocket persistent connection with aggressive keepalive
Idle timeout set to 0, heartbeat 20s, disconnect delay 30s, match frontend timing
Unified header design spanning both chat and softphone panels
REMOVED: Status bar from softphone (wifi, signal, time - unnecessary for web app) SHARED HEADER: Title bar now spans both softphone and chat when expanded LAY...
Optimize softphone to fit all content without scrolling at 680px height
CHATBOX HEIGHT: 550px -> 680px (optimal balance) PHONE DISPLAY: Reduced minHeight (100/75 -> 85/65), padding (14/16 -> 12/14) CALL CONTROLS: All 9 buttons - p...
Reduce ChatBox height to more comfortable 550px
Changed from 85% viewport (750-850px) to fixed 550px for better UX WebRTC call controls remain fully intact and functional
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...
Make softphone fully visible without scrolling - comprehensive compact layout
CHATBOX HEIGHT: - Changed from fixed 600px to 85% of viewport height - Uses Math.floor(window.innerHeight * 0.85) for responsive sizing - Provides much more ver...
Eliminate horizontal scrollbars and increase softphone visibility
LAYOUT FIXES: - Increase DOCKED_HEIGHT from 480px to 600px for better vertical space - Add explicit width constraints (minWidth, maxWidth) to SoftphonePanel roo...
Elevate softphone to enterprise-grade with premium features
ENTERPRISE FEATURES: - Call Recording with visual indicator and pulsing animation - Call Transfer functionality for seamless handoffs - Call Notes with expandab...
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, ...
Remove connected check and add debug logging for STOMP activation
STOMP client was not activating because connected check was preventing it. Added debug logs to diagnose.
Activate STOMP client only after SockJS opens
Critical bug fix: STOMP client was being activated before SockJS opened, causing immediate disconnect. Now waits for SockJS onopen event before activating STOMP...
Enable SockJS fallback transports for WebSocket connection
Allow xhr-streaming and xhr-polling as fallback if WebSocket upgrade fails.
Enhance ChatBox with dynamic color system and increased height
- Increase message viewing area by 33% (DOCKED_HEIGHT: 360 -> 480) - Create ChatBoxStyles.tsx with dynamic CSS variable-based color system - Apply primary color...
전문적인 광택을 가진 ChatBox 디자인을 현대화하십시오
- 미묘한 회색 gradients를 가진 청결한 백색 배경을 실시하십시오 - 사용자 정의 scrollbar 스타일링을 기본 색상 계획과 통합 - gradient 배경과 비대칭 경계를 가진 메시지 거품을 강화하십시오 - 알약 모양 디자인과 초점 반지 효력을 가진 입력 분야를 현대화하십시오...
UseChatWebSocket에서 invalid 'active' 속성 체크 제거
@stomp/stompjs의 클라이언트 유형은 'active' 속성이 없습니다. client.activate() 이후 잘못된 체크를 제거하면 클라이언트 생성 후 즉시 호출됩니다.
STOMP 클라이언트 활성화하기 전에 SockJS를 엽니 다
- SockJS 연결 이전의 STOMP 클라이언트가 활성화 된 레이스 상태를 수정 - Client.activate()를 SockJS onopen 콜백으로 이동 - 실시간 메시지를 방지하는 즉시 연결 폐쇄 문제 수정
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...
Hardcode SSL settings in ConfigMap for production
- Removed environment variable placeholders - Hardcoded port 8443, SSL enabled, keystore path - Fixes Spring Boot not resolving env vars correctly
Correct Spring Boot SSL environment variable names
- Changed SSL_ENABLED to SERVER_SSL_ENABLED - Changed SSL_KEY_STORE to SERVER_SSL_KEY_STORE - Changed SSL_KEY_STORE_PASSWORD to SERVER_SSL_KEY_STORE_PASSWORD - ...
모든 WebRTC API 요청을 포트 8443
- media.{domain}:8443를 사용하는 모든 WebRTC API 경로 업데이트 - WebRTC 엔드포인트에 대한 Traefik을 사용하지 않고 - 미디어 API 및 WebSocket 구성 일치
8443 포트에 모든 MediaService 요청을 경로 (Tarter Traefik)
- 미디어를 사용하는 모든 미디어 API 경로 업데이트.{domain}:8443 - MediaService를 위한 Traefik 사용 없음 - API 및 WebSocket 모두 포트 8443에 직접 이동 - 내부.{domain}는 Traefik을 통해 계속됩니다
Simplify to HTTPS:8443 only, remove dual port config
- MediaService runs ONLY on port 8443 (HTTPS) - No more Traefik routing for MediaService - Removed DualPortConfig complexity - All traffic (API + WebSocket) goe...
Use SSLHostConfig API for Tomcat SSL configuration
- Use SSLHostConfig and SSLHostConfigCertificate (correct Tomcat API) - Configure certificate via **************** - Fixes compilation errors with setAttribute/...
Use setAttribute for Tomcat SSL configuration
- Changed from setKeystoreFile/Pass/Type/Alias to setAttribute - Tomcat 10+ uses setAttribute for SSL properties - Fixes compilation errors
Run MediaService on BOTH ports 80 (HTTP API) and 8443 (HTTPS WebSocket)
- Reverted service.yaml and ingressroute.yaml to use port 80 - Removed forced SERVER_PORT and SSL_ENABLED env vars - Added DualPortConfig to programmatically ad...
포트에 연결 8443 (외부) NodePort 30843
- 라우터는 외부 8443에서 k1m1 NodePort 30843를 전달합니다. - 브라우저 사용 media.kamocrm.com:8443 - 내부 NodePort는 30843 (Kubernetes 유효한 범위)
Use NodePort 30843 instead of hostPort for WebSocket
- hostPort may be blocked by firewall rules - NodePort 30843 is in valid range (30000-32767) - Browser connects to external port 8443 - Router forwards 8443 -> ...
Add SSL configuration to k8s ConfigMap
- ConfigMap was missing SSL config from application.yml - Added server.ssl settings with environment variable support - Matches local application.yml configurat...
Use hostPort instead of NodePort for 8443
- NodePort range is 30000-32767, cannot use 8443 - Use hostPort to bind directly to host port 8443 - Removed service-websocket.yaml