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
为 WebSocket 连接到 MediaService 端口 8443
- 更新了WebSocket连接,使用media.kamocrm.com:8443 - 仅用于WebSocket交通的旁通车 - 使用直接连接媒体服务的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...
删除 HTTP/2 兼容性的 WebSocket 运输限制
-浏览器WebSocket API不支持HTTP/2(RFC 8441未执行) - 原生WebSocket需要HTTP/1.1 升级失败于 HTTP/2 - 让SockJS自动选择运输(xhr -- -- 流/xhr -- -- 通过HTTP/2) - 修复与 HTTP/2 的 WebSocket 连接失败
Restore HTTP/2 for WebSockets (RFC 8441 support)
- WebSockets CAN work over HTTP/2 via RFC 8441 - Removed TLSOption (not needed) - Removed ServersTransport reference (let HTTP/2 work) - Restored simple domain-...
Use explicit Host() for /ws route to enable TLSOption
- Changed /ws route from HostRegexp to Host(media.kamocrm.com) - TLSOption can only be applied to explicit hosts (not regex) - ALPN negotiation happens during T...
Force HTTP/1.1 for MediaService ONLY via TLSOption
- Created media-tls-http1 TLSOption with alpnProtocols: [http/1.1] - Referenced ONLY in media-route IngressRoute - Does not affect other Traefik routes - Fixes ...
Revert "fix(traefik): disable idle timeout for WebSocket connections"
This reverts commit ****************
Separate /ws route for WebSocket, keep HTTP/2 for API
- Added two routes: /ws for WebSocket (higher priority), rest for API - Only /ws uses media-websocket-transport (HTTP/2 disabled) - API routes can use HTTP/2 fo...
Use Host() instead of HostRegexp() for media-route
- Simplified to Host(media.kamocrm.com) - Avoids regex escaping issues with backticks - Tests show route is working with simple Host match
Force HTTP/1.1 via TLSOption for WebSocket compatibility
- Created TLSOption to disable HTTP/2 ALPN negotiation - Forces browsers to use HTTP/1.1 for media.kamocrm.com - WebSocket upgrades require HTTP/1.1 protocol - ...
Disable idle timeout for WebSocket connections
- Added idleTimeout=0 to websecure entrypoint - Prevents Traefik from closing WebSocket connections due to inactivity - Fixes SockJS WebSocket timeout issues
仅使用 WebSocket 运算( 残疾 XHR 投票)
- 将SockJS运输从[websocket,xhr-streaming,xhr-poling]改为[websocket] - 取消回落投票 - 纯网络锁接力 - 如果WebSocket不起作用,而不是有辱人格,那么失败的速度会很快
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 ...
将 WebSocket 直接连接到媒体.kamocrm.com
- 还原到原始方法:连接到媒体。 * 子域直接 - 消除不必要的同源复杂性 - 从中间软件被删除/ws绕行(不需要) - 内部入侵鲁特的路线被取消 - 媒体服务CORS已经允许所有来源 - 更简单更清洁的解决方案
从 kamowsmedia- service 中删除明确的命名空间引用
- 两种服务同名空间(kamo) - 不需要明确的名称空间参考 - 避免潜在的跨名称空间问题
从下一个删除/ws重写 。 配置(由Traefik处理)
- 已删除 Next.js 为/ws 路径重写 - 现由Traefik IngressRoute处理的WebSocket线路 - Traefik 内部路线.kamocrm.com/ws - > 直接媒体服务
通过Traefik直接向MediaService提供路线/ws请求
- 为入侵鲁特的路径增加专用路线 - 内部路线.kamocrm.com/ws - > 直接媒体服务 - 在WebSocket支助中使用与媒体路线相同的服务器运输 - 用于 WebSocket 连接的 Bypasses Next.js(Next.js 重写不支持 WS) - 更具体的路线首先与一般路线相匹配
允许/ws WebSocket 端点, 而无需认证重定向
- 将路径添加到中间软件绕行 - SockJS 需要连接到/ws/info而不重定向 - WebSocket连接仍然有 *** cookie - 解决WebSocket连接超时问题
更改同源的 WebSocket 连接
- 从media.kamocrm.com改为同源(内部.kamocrm.com) - 避免出现交叉来源的WebSocket连接问题 - 添加 Next.js 重写规则到代理/ws 到 Media Service - 浏览器将连接到内部.kamocrm.com/ws - Next.js将代理到媒体.kamocrm.com...
为 WebRTC 端点添加 API 代理路由
- 在媒体服务中添加/api/webrtc/配置代理 - 为Janus认证添加了/api/webrtc/token代理 - 增加/api/webrtc/呼叫/启动、回答、终端代理 - 遵循与/api/媒体代理相同的模式 - 启用来自 kamo- 内部前端的 WebRTC 呼叫
Remove @kubernetescrd suffix from serversTransport reference
- Traefik error: cross-namespace format not allowed when crossnamespace disabled - IngressRoute and ServersTransport are in same namespace (kamo) - Use simple n...
解析构建错误 - 将 PhoneOff 替换为 CallEnd
- 手机图标在@mui/icons-materi中不存在 - 使用CallEnd,这是正确的MUI图标 - 删除未使用的重复文件(ChatBox With WebRTC、VideoCallView、使用JanusWebRTC) - 建设现在应该成功
完整的对等 WebRTC 呼叫信号
- 添加使用WebRTC钩并配有完整的信号支持 - 综合WebSocket信号(出价、答案、ICE候选人) - 添加带有答/解码按钮的来电通知 - 更新ChatBox,动态高度可调用UI - 从使用ChatWebSocket进行信号输出的STOMP客户端 - 支持音频、视频和屏幕共享通话 - 在接收到的电话中自动呼叫用...
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呼叫管理添加了JanusWebRTC钩 - 为聊天录像显示增加视频CallPanel组件 - 与ChatBox集成,用于无缝呼叫体验 - 支持音频通话、视频通话和屏幕共享 - 适当的视频显示宽度比(16:9) - 呼叫控制:哑声、视频切换、终端呼叫 - 在STUN/TURN支持下使用 kamocrm....
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
Split port ranges to avoid conflicts
- Coturn relay: 52000-65535 (13,536 ports) - Avoids: Janus RTP (10000-49151) and WireGuard (51820-51821) - No overlap between services
Adjust relay port range to avoid WireGuard/VPN ports
- Changed max-port from 65535 to 51800 to avoid conflicts - Avoids WireGuard on UDP 51820 and other VPN services on 51821 - Provides 2,649 ports (49152-51800) f...
Resolve CrashLoopBackOff by fixing probes and config
- Replace netstat-based health probes with TCP socket checks (netstat not available in coturn/coturn:latest Alpine image) - Remove conflicting no-stdout-log dir...
Use full Kubernetes CRD provider name for ServersTransport reference
Traefik requires the @kubernetescrd suffix when referencing CRD resources like ServersTransport.
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...
Simplify MediaService WebSocket IngressRoute configuration
Remove media-websocket-upgrade middleware that was forcing headers and causing WebSocket handshake issues. Traefik automatically handles WebSocket upgrade when ...
在 SockJS 恢复 WebSocket 传输
- 恢复使用websocket运输(不是投票) - WebSockets是标准的,应该正常工作 - 注重确定实际的WebSocket连接问题
在 SockJS 跳过 WebSocket 运输以避免 HTTP/2 问题
- 使用xhr-流线和xhr-波程运输,而不是网络锁 - 这些运输与HTTP/1.1和HTTP/2同时工作,不需要WebSocket升级 - 避免HTTP/2扩展的CONNECT问题并改进标题转发问题 - /ws/info 请求在 HTTP/2 中及时出局(499起),使 SockJS 无法连接
Add end anchor to WebSocket path regex pattern
- Add $ to end of PathRegexp to ensure exact match - Fixes regex parsing error in Traefik - /ws/info is now working (200 OK) but WebSocket upgrade route needs p...
Only apply WebSocket upgrade middleware to actual WebSocket paths
- Change route match from PathPrefix(/ws/) to **************** - /ws/info is a regular HTTP request, not a WebSocket upgrade - Adding Upgrade header to /ws/info...
Add Connection: Upgrade header to WebSocket upgrade middleware
- Add Connection: Upgrade header along with Upgrade: websocket - Both headers are required for proper WebSocket upgrade handshake - This ensures HTTP/2 Extended...
Add separate route for WebSocket paths with upgrade middleware
- Create separate route matching /ws/** paths with media-websocket-upgrade middleware - This ensures Upgrade: websocket header is added for WebSocket upgrade re...
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...
Use ServersTransport to disable HTTP/2 for WebSocket connections
- Create ServersTransport resource with disableHTTP2: true - Reference ServersTransport in IngressRoute service configuration - Remove invalid disableHTTP2 fiel...
禁用媒体服务后端连接的 HTTP/2
- 添加禁用HTTP2: 将 HTTP/1.1 强制用于后端连接 - HTTP/2 扩展 CONNECT 没有正确转换升级头 - WebSocket升级需要HTTP/1.1升级:websocket头 - 此修正 WebSocket 握手时的“ 升级头: 无效” 错误
Configure IngressRoute service scheme for WebSocket support
- Set scheme: http to ensure proper HTTP/1.1 handling for WebSocket upgrades - HTTP/2 Extended CONNECT needs proper conversion to HTTP/1.1 Upgrade header - This...
Remove invalid handshake handler and fix SockJS configuration
- Remove invalid DefaultHandshakeHandler override (method doesn't exist) - Remove invalid setSupressCors call (method doesn't exist) - Keep HttpSessionHandshake...
Add WebSocket handshake logging and SockJS configuration
- Add handshake handler and interceptor logging to diagnose WebSocket connection issues - Configure SockJS to suppress CORS (handled by Spring Security) and dis...
