Правильная обработка SDPOffer при renegotiation от SFU

This commit is contained in:
RoyceDa
2026-03-16 19:27:16 +02:00
parent ab57303eb6
commit 2c026d596d

View File

@@ -81,30 +81,7 @@ export function CallProvider(props : CallProviderProps) {
*/ */
let packet = new PacketIceServers(); let packet = new PacketIceServers();
send(packet); 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) => { usePacket(28, async (packet: PacketIceServers) => {
let iceServers = packet.getIceServers(); let iceServers = packet.getIceServers();
@@ -130,7 +107,7 @@ export function CallProvider(props : CallProviderProps) {
}, []); }, []);
usePacket(27, async (packet: PacketWebRTC) => { usePacket(27, async (packet: PacketWebRTC) => {
if(!activeCall || callState != CallState.WEB_RTC_EXCHANGE){ if(callState != CallState.WEB_RTC_EXCHANGE && callState != CallState.ACTIVE){
/** /**
* Нет активного звонка или мы не на стадии обмена WebRTC сигналами, игнорируем * Нет активного звонка или мы не на стадии обмена WebRTC сигналами, игнорируем
*/ */
@@ -189,7 +166,7 @@ export function CallProvider(props : CallProviderProps) {
info("Received WebRTC offer, set remote description and sent answer"); info("Received WebRTC offer, set remote description and sent answer");
return; return;
} }
}, [activeCall, sessionKeys, callState]); }, [activeCall, sessionKeys, callState, roomIdRef]);
usePacket(26, async (packet: PacketSignalPeer) => { usePacket(26, async (packet: PacketSignalPeer) => {
const signalType = packet.getSignalType(); const signalType = packet.getSignalType();