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
MediaService ポート 8443 を WebSocket に接続
- Media.kamocrm.comを使用するWebSocket接続を更新:8443 - WebSocket専用トラフィックのTraefikを回避 - 直接 HTTPS/HTTP1.1 接続を MediaService に使用 - 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-streaming/xhr-polling は HT...
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ポーリング不可)
- [websocket, xhr-streaming, xhr-polling] から [websocket] に SockJS の転送を変更しました。 - XHR ポーリングにフォールバックを削除します。 - 純粋な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をmedia.kamocrm.comに直接接続する
- 元のアプローチに逆転させる:媒体に直接接続して下さい。* サブドメイン - 不要な同オリジンの複雑さを削除 - /wsをミドルウェアからバイパス(不要) - 内部IngressRouteから/wsルーティングを削除 - MediaService CORSは既にすべての起源を可能にします - シンプルでクリーンなソリ...
Kamowsmedia-serviceから明示的な名前空間参照を削除します
- どちらのサービスは同じ名前空間(kamo)にあります - 明示的な名前空間参照は必要ありません - 潜在的なクロスネームスペースの問題を避けます
/ws を次から書き直します。 config (Traefik によって処理される)
- 削除された Next.js は /ws パスのために書き直します - Traefik IngressRouteレベルで処理されるWebSocketルーティング - Traefik は内部.kamocrm.com/ws をルートします。 メディアサービス
ルート/wsは、Trefik経由でMediaServiceに直接リクエストをリクエスト
- IngressRouteで/wsパスの専用ルートを追加 - ルート内部.kamocrm.com/ws -> メディアサービス - WebSocketサポート用のMedia-routeと同じ ServersTransportを使用する - WebSocket接続用のNext.jsをバイパスします(Next.jsはWS...
/ws WebSocket が auth リダイレクトなしでエンドポイントを許可する
- ミドルウェアバイパスに /ws パスを追加 - SockJSはリダイレクトなしで/ws/infoに接続する必要があります - WebSocket接続は、まだ***クッキーを持っています - WebSocket接続タイムアウトの問題を修正
WebSocketの接続を同じoriginに変更する
- media.kamocrm.comから同じ起源に変更(internal.kamocrm.com) - クロスオリジンWebSocket接続の問題を回避 - Add Next.jsは、メディアサービスにプロキシ/wsにルールを書き換える - ブラウザは内部.kamocrm.com/ws に接続します - Next.j...
WebRTC エンドポイントの API プロキシ ルートを追加します
- MediaService に /api/webrtc/config プロキシを追加 - Janus認証用の/api/webrtc/tokenプロキシを追加 - /api/webrtc/call/initiate、応答、エンドプロキシを追加 - /api/mediaプロキシと同じパターンに従う - kamo-inte...
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...
GetDisplayMediaから無効なコーダプロパティを削除します
- シンプルなビデオを使用して:画面共有のためにtrue - ビルドが成功する
ビルドエラーを解決する - PhoneOff を CallEnd に置き換える
- PhoneOff アイコンは @mui/icons-material に存在しません - 正しいMUIアイコンであるCallEndを使用する - 未使用の重複ファイル(ChatBoxWithWebRTC、VideoCallView、JanusWebRTC)を削除 - ビルドが成功する
完全なピアツーピアWebRTCは、シグナル伝達と呼びます
- 完全なシグナル伝達サポートと追加されたuseWebRTCのホック - 統合されたWebSocketのシグナル伝達(オファー、回答、ICE候補) - 回答/デコーダーボタンで着信通知を追加 - 通話UIの動的高さでチャットボックスを更新 - シグナル伝達のためのuseChatWebSocketから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ホックを追加 - チャットビデオディスプレイ用のVideoCallPanelコンポーネントを追加 - シームレスなコール体験のためのチャットボックスと統合 - 音声通話、ビデオ通話、画面共有のサポート - ビデオ表示のための適切なアスペクト比(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
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 の問題を回避
- websocketの代わりにxhr-streamingとxhr-polling輸送を使用してください - これらのトランスポートは、WebSocketのアップグレードを要求することなくHTTP/1.1とHTTP/2の両方で動作します。 - HTTP/2拡張接続の問題を回避し、ヘッダーの転送の問題を改善 - /ws/...
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...
MediaServiceバックエンド接続用のHTTP/2を無効にする
- バックエンド接続のためにHTTP/1.1を強制するHTTP2:trueを追加 - HTTP/2 拡張 CONNECT は、アップグレードヘッダーを正しく変換しない - WebSocket のアップグレードには、HTTP/1.1 が必要です。 - これは、WebSocketハンドシェイクの「アップグレードヘッダー:n...
WebSocketサポート用のIngressRouteサービススキームの設定
- 設定スキーム: http は、WebSocket のアップグレードの適切な HTTP/1.1 処理を確実にするために - HTTP/2 拡張 CONNECT は HTTP/1.1 のアップグレードヘッダーに適切な変換が必要 - これは、WebSocketハンドシェイクの「アップグレードヘッダー:null」エラーを修...
無効なハンドハンドハンドラを削除し、SockJSの設定を修正
- 無効な DefaultHandshakeHandler オーバーライドを削除します (メソッドは存在しません) - 無効な setSupressCors コールを削除します(メソッドは存在しません) - HttpSessionHandshakeの試行をログするためのインターセプターをキープ - これは、WebSoc...
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...
HTTP/2 WebSocket アップグレードの問題を処理する SockJS トランスポートの設定
- WebSocketを好むSockJSの輸送順序を明示的に設定し、xhr-streaming/xhr-pollingにフォールバック - HTTP / 2 WebSocketのアップグレードが失敗する可能性があるため、SockJSはHTTP / 1.1互換輸送に自動的にフォールバックされます。 - これは、ブラウザが...