diff --git a/app/providers/CallProvider/CallProvider.tsx b/app/providers/CallProvider/CallProvider.tsx index 0e30063..d948a4a 100644 --- a/app/providers/CallProvider/CallProvider.tsx +++ b/app/providers/CallProvider/CallProvider.tsx @@ -81,30 +81,7 @@ export function CallProvider(props : CallProviderProps) { */ let packet = new PacketIceServers(); send(packet); - - //debug - - setInterval(async () => { - if(callState == CallState.ACTIVE){ - if(peerConnectionRef.current){ - const stats = await peerConnectionRef.current.getStats(); - stats.forEach((report) => { - - if (report.type === "inbound-rtp" && !report.isRemote) { - const kind = (report as any).kind || (report as any).mediaType; - const bytesReceived = (report as any).bytesReceived ?? 0; - const packetsReceived = (report as any).packetsReceived ?? 0; - const packetsLost = (report as any).packetsLost ?? 0; - - console.log( - `[inbound ${kind}] bytesReceived=${bytesReceived}, packetsReceived=${packetsReceived}, packetsLost=${packetsLost}` - ); - } - }); - } - } - }, 2000); - }, [callState, peerConnectionRef]); + }, []); usePacket(28, async (packet: PacketIceServers) => { let iceServers = packet.getIceServers(); @@ -130,7 +107,7 @@ export function CallProvider(props : CallProviderProps) { }, []); usePacket(27, async (packet: PacketWebRTC) => { - if(!activeCall || callState != CallState.WEB_RTC_EXCHANGE){ + if(callState != CallState.WEB_RTC_EXCHANGE && callState != CallState.ACTIVE){ /** * Нет активного звонка или мы не на стадии обмена WebRTC сигналами, игнорируем */ @@ -178,18 +155,18 @@ export function CallProvider(props : CallProviderProps) { * SFU сервер отправил нам оффер, например при renegotiation, нам нужно его принять и * отправить ответ (ANSWER) */ - const sdp = JSON.parse(packet.getSdpOrCandidate()); - await peerConnectionRef.current?.setRemoteDescription(new RTCSessionDescription(sdp)); - let answer = await peerConnectionRef.current?.createAnswer(); - await peerConnectionRef.current?.setLocalDescription(answer); - let answerSignal = new PacketWebRTC(); - answerSignal.setSignalType(WebRTCSignalType.ANSWER); - answerSignal.setSdpOrCandidate(JSON.stringify(answer)); - send(answerSignal); - info("Received WebRTC offer, set remote description and sent answer"); - return; + const sdp = JSON.parse(packet.getSdpOrCandidate()); + await peerConnectionRef.current?.setRemoteDescription(new RTCSessionDescription(sdp)); + let answer = await peerConnectionRef.current?.createAnswer(); + await peerConnectionRef.current?.setLocalDescription(answer); + let answerSignal = new PacketWebRTC(); + answerSignal.setSignalType(WebRTCSignalType.ANSWER); + answerSignal.setSdpOrCandidate(JSON.stringify(answer)); + send(answerSignal); + info("Received WebRTC offer, set remote description and sent answer"); + return; } - }, [activeCall, sessionKeys, callState]); + }, [activeCall, sessionKeys, callState, roomIdRef]); usePacket(26, async (packet: PacketSignalPeer) => { const signalType = packet.getSignalType();