WebSocket은 연결됐는데 목소리는 어디로 갈까
VoiceLink의 API·SSE, LiveKit WebSocket, WebRTC 음성 경로를 나눠 연결 성공만으로 통화 성공을 판단할 수 없는 이유를 설명한다.
WebRTC, LiveKit, TURN/STUN, Flutter 클라이언트에서 실시간 음성 연결과 품질을 운영하며 확인한 내용을 정리합니다.
VoiceLink의 API·SSE, LiveKit WebSocket, WebRTC 음성 경로를 나눠 연결 성공만으로 통화 성공을 판단할 수 없는 이유를 설명한다.
LiveKit의 turn.enabled와 rtc.turn_servers를 나란히 읽으며, 내장 TURN 비활성화와 외부 coturn 사용이 함께 성립하는 이유를 설명한다.
같은 PC에서 coturn과 두 WebRTC 연결을 띄워 직접 연결과 강제 중계를 비교했다. 선택된 candidate pair, relayProtocol, 수신 RTP 패킷으로 확인한 결과를 정리한다.
VoiceLink 연결 테스트에서 늦은 마이크 허용과 15초 타임아웃을 따라가며, 취소한 방과 새 방을 구분하는 코드를 읽는다.