restartIce

From what we understand, when using restartIce for a transport, both the producer and consumer transports may require ICE restarts, depending on the scenario:

ICE Restart for Producer Transport: If there is a network change or connectivity issue between the server (Mediasoup) and the producer (the one sending the media), you would need to call restartIce on the producer’s transport to establish a new ICE connection. This is essential to ensure that the media can continue to flow from the producer to the server.

ICE Restart for Consumer Transport: Similarly, if the consumer (the one receiving the media) experiences network changes or interruptions, calling restartIce on the consumer’s transport helps reestablish the connection so the media can be received again.

We added a button for test purposes that can be enabled by decommenting this line. As Open-Source project, anyone can try it.

By restarting ICE on both transports, we ensure both ends of the connection are properly re-established. However, it seems ok on Firefox but not on Chrome-based browsers.

A typical scenario of network instability can occur due to several factors, such as:

  • Connection drops: Temporary interruptions in the network connection can happen for various reasons, including weak signals, network congestion, or sudden changes in connectivity.

  • 4G networks: When using mobile data, especially with 4G, network stability can be affected by the environment. For example:

    • Tunnels: Signal degradation is common when traveling through tunnels, leading to intermittent connectivity or complete connection loss.
    • Changing cell towers: As you move between locations, your device may switch between different cell towers, which can cause brief disruptions.

These scenarios can impact WebRTC, VoIP, or any real-time applications, requiring mechanisms like ICE restart to recover the connection when instability occurs.

We ask here to mediasoup expert if anyone experienced the same issues?

Any insight is very appreciated.

Thank you so much!

Logs

Firefox - ok

Client:

Restart ICE... RoomClient.js:852:17
Restarting producer transport ICE 
Object { usernameFragment: "gha5l54alwej97ps167eii1bi9z0eo61", password: "urgnvbusnm01zh72n4dc00nhwjluwq0v", iceLite: true }
RoomClient.js:859:25
mediasoup-client:Transport restartIce() +20s MediasoupClient.js:673:35
mediasoup-client:Firefox120 restartIce() +20s MediasoupClient.js:673:35
mediasoup-client:RemoteSdp updateIceParameters() [iceParameters:
Object { usernameFragment: "gha5l54alwej97ps167eii1bi9z0eo61", password: "urgnvbusnm01zh72n4dc00nhwjluwq0v", iceLite: true }
] +20s MediasoupClient.js:673:35
mediasoup-client:Firefox120 restartIce() | calling pc.setLocalDescription() [offer:
Object { type: "offer", sdp: "v=0\r\no=mozilla...THIS_IS_SDPARTA-99.0 4881408771429728762 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 64:EF:65:70:2C:56:AF:19:62:B9:89:04:99:4E:D5:55:A5:06:CE:A4:70:1F:C8:05:5D:E4:DB:E3:3B:21:85:CF\r\na=group:BUNDLE 0 1\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=audio 9 UDP/TLS/RTP/SAVPF 109 9 0 8 101\r\nc=IN IP4 0.0.0.0\r\na=sendonly\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2/recvonly urn:ietf:params:rtp-hdrext:csrc-audio-level\r\na=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=fmtp:109 maxplaybackrate=48000;stereo=1;useinbandfec=1\r\na=fmtp:101 0-15\r\na=ice-pwd:f787013c88538dea4e31ca51d70df3d5\r\na=ice-ufrag:76da7bee\r\na=mid:0\r\na=msid:{4b52e7fa-a4a4-4a32-8f50-0b669c31a87f} {49e33020-3251-4dc2-bcc4-00444af44a74}\r\na=rtcp-mux\r\na=rtpmap:109 opus/48000/2\r\na=rtpmap:9 G722/8000/1\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:101 telephone-event/8000/1\r\na=setup:actpass\r\na=ssrc:2655975707 cname:{b7148b7e-7d9c-4eac-8288-ef111d05a77b}\r\nm=video 0 UDP/TLS/RTP/SAVPF 120 124 121 125 126 127 97 98 123 122 119\r\nc=IN IP4 0.0.0.0\r\na=bundle-only\r\na=sendonly\r\na=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:6/recvonly http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:7 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:8/sendonly urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:9/sendonly urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=fmtp:120 max-fs=12288;max-fr=60\r\na=fmtp:124 apt=120\r\na=fmtp:121 max-fs=12288;max-fr=60\r\na=fmtp:125 apt=121\r\na=fmtp:127 apt=126\r\na=fmtp:98 apt=97\r\na=fmtp:119 apt=122\r\na=ice-pwd:f787013c88538dea4e31ca51d70df3d5\r\na=ice-ufrag:76da7bee\r\na=mid:1\r\na=msid:{4b52e7fa-a4a4-4a32-8f50-0b669c31a87f} {32522aed-f830-4451-a10a-70c16164f0b9}\r\na=rid:r0 send\r\na=rid:r1 send\r\na=rid:r2 send\r\na=rtcp-fb:120 nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:120 goog-remb\r\na=rtcp-fb:120 transport-cc\r\na=rtcp-fb:121 nack\r\na=rtcp-fb:121 nack pli\r\na=rtcp-fb:121 ccm fir\r\na=rtcp-fb:121 goog-remb\r\na=rtcp-fb:121 transport-cc\r\na=rtcp-fb:126 nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:126 goog-remb\r\na=rtcp-fb:126 transport-cc\r\na=rtcp-fb:97 nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm fir\r\na=rtcp-fb:97 goog-remb\r\na=rtcp-fb:97 transport-cc\r\na=rtcp-fb:123 nack\r\na=rtcp-fb:123 nack pli\r\na=rtcp-fb:123 ccm fir\r\na=rtcp-fb:123 goog-remb\r\na=rtcp-fb:123 transport-cc\r\na=rtcp-fb:122 nack\r\na=rtcp-fb:122 nack pli\r\na=rtcp-fb:122 ccm fir\r\na=rtcp-fb:122 goog-remb\r\na=rtcp-fb:122 transport-cc\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:124 rtx/90000\r\na=rtpmap:121 VP9/90000\r\na=rtpmap:125 rtx/90000\r\na=rtpmap:126 H264/90000\r\na=rtpmap:127 rtx/90000\r\na=rtpmap:97 H264/90000\r\na=rtpmap:98 rtx/90000\r\na=rtpmap:123 ulpfec/90000\r\na=rtpmap:122 red/90000\r\na=rtpmap:119 rtx/90000\r\na=setup:actpass\r\na=simulcast:send r0;r1;r2\r\na=ssrc:4025934594 cname:{b7148b7e-7d9c-4eac-8288-ef111d05a77b}\r\na=ssrc:3130779225 cname:{b7148b7e-7d9c-4eac-8288-ef111d05a77b}\r\na=ssrc:1305907837 cname:{b7148b7e-7d9c-4eac-8288-ef111d05a77b}\r\na=ssrc:2652619715 cname:{b7148b7e-7d9c-4eac-8288-ef111d05a77b}\r\na=ssrc:2423158955 cname:{b7148b7e-7d9c-4eac-8288-ef111d05a77b}\r\na=ssrc:2979271980 cname:{b7148b7e-7d9c-4eac-8288-ef111d05a77b}\r\na=ssrc-group:FID 4025934594 3130779225\r\na=ssrc-group:FID 1305907837 2652619715\r\na=ssrc-group:FID 2423158955 2979271980\r\n" }
] +2ms MediasoupClient.js:673:35
mediasoup-client:Firefox120 restartIce() | calling pc.setRemoteDescription() [answer:
Object { type: "answer", sdp: "v=0\r\no=mediasoup-client 10000 3 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=ice-lite\r\na=fingerprint:sha-384 35:A6:BF:6E:01:77:1C:9B:F4:91:E4:43:3D:9F:38:7F:A9:BD:E9:F1:BC:C2:C1:A2:AD:0B:34:7A:B8:46:46:86:25:49:80:6C:25:C4:5A:07:96:25:6F:F9:E3:BA:FC:A6\r\na=msid-semantic: WMS *\r\na=group:BUNDLE 0 1\r\nm=audio 7 UDP/TLS/RTP/SAVPF 109\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:109 opus/48000/2\r\na=fmtp:109 stereo=1;useinbandfec=1;usedtx=1\r\na=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=setup:passive\r\na=mid:0\r\na=recvonly\r\na=ice-ufrag:gha5l54alwej97ps167eii1bi9z0eo61\r\na=ice-pwd:urgnvbusnm01zh72n4dc00nhwjluwq0v\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40094 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40029 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=rtcp-mux\r\na=rtcp-rsize\r\nm=video 7 UDP/TLS/RTP/SAVPF 120 124\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:124 rtx/90000\r\na=fmtp:120 x-google-start-bitrate=1000\r\na=fmtp:124 apt=120\r\na=rtcp-fb:120 nack \r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:120 transport-cc \r\na=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:8 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:7 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:passive\r\na=mid:1\r\na=recvonly\r\na=ice-ufrag:gha5l54alwej97ps167eii1bi9z0eo61\r\na=ice-pwd:urgnvbusnm01zh72n4dc00nhwjluwq0v\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40094 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40029 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rid:r0 recv\r\na=rid:r1 recv\r\na=rid:r2 recv\r\na=simulcast:recv r0;r1;r2\r\n" }
] +4ms MediasoupClient.js:673:35
mediasoup-client:Transport ICE gathering state changed to gathering +10ms MediasoupClient.js:673:35
Producer icegatheringstatechange 
Object { state: "gathering", id: "e405c1e6-b615-4e30-bcd8-c9bec6702932" }
RoomClient.js:748:21
mediasoup-client:Transport ICE gathering state changed to complete +3ms MediasoupClient.js:673:35
Producer icegatheringstatechange 
Object { state: "complete", id: "e405c1e6-b615-4e30-bcd8-c9bec6702932" }
RoomClient.js:748:21
Restarting consumer transport ICE 
Object { usernameFragment: "s1yllxg25ky7tbt8xqzy2qxvmd3gm0ul", password: "qjc3fze0jew5b1ve3gp0gsf1srhuwq47", iceLite: true }
RoomClient.js:869:25
mediasoup-client:Transport restartIce() +1ms MediasoupClient.js:673:35
mediasoup-client:Firefox120 restartIce() +8ms MediasoupClient.js:673:35
mediasoup-client:RemoteSdp updateIceParameters() [iceParameters:
Object { usernameFragment: "s1yllxg25ky7tbt8xqzy2qxvmd3gm0ul", password: "qjc3fze0jew5b1ve3gp0gsf1srhuwq47", iceLite: true }
] +13ms MediasoupClient.js:673:35
mediasoup-client:Firefox120 restartIce() | calling pc.setRemoteDescription() [offer:
Object { type: "offer", sdp: "v=0\r\no=mediasoup-client 10000 4 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=ice-lite\r\na=fingerprint:sha-384 35:A6:BF:6E:01:77:1C:9B:F4:91:E4:43:3D:9F:38:7F:A9:BD:E9:F1:BC:C2:C1:A2:AD:0B:34:7A:B8:46:46:86:25:49:80:6C:25:C4:5A:07:96:25:6F:F9:E3:BA:FC:A6\r\na=msid-semantic: WMS *\r\na=group:BUNDLE 0 1 probator\r\nm=audio 7 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:100 opus/48000/2\r\na=fmtp:100 maxplaybackrate=48000;stereo=1;useinbandfec=1;sprop-stereo=1;usedtx=1\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:actpass\r\na=mid:0\r\na=msid:1B6VBK2_MQQQfNFNAAAF-mic-webcam d71a0bec-670c-44de-a041-01b334dd67df\r\na=sendonly\r\na=ice-ufrag:s1yllxg25ky7tbt8xqzy2qxvmd3gm0ul\r\na=ice-pwd:qjc3fze0jew5b1ve3gp0gsf1srhuwq47\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40072 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40034 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=ssrc:209568759 cname:{b327c515-564f-4b8b-950f-8218ce3f8795}\r\na=rtcp-mux\r\na=rtcp-rsize\r\nm=video 7 UDP/TLS/RTP/SAVPF 101 102\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:101 VP8/90000\r\na=rtpmap:102 rtx/90000\r\na=fmtp:101 max-fs=12288;max-fr=60\r\na=fmtp:102 apt=101\r\na=rtcp-fb:101 nack \r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 transport-cc \r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:actpass\r\na=mid:1\r\na=msid:1B6VBK2_MQQQfNFNAAAF-mic-webcam 3882c910-6286-4d81-890b-f9ab0a573ff1\r\na=sendonly\r\na=ice-ufrag:s1yllxg25ky7tbt8xqzy2qxvmd3gm0ul\r\na=ice-pwd:qjc3fze0jew5b1ve3gp0gsf1srhuwq47\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40072 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40034 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=ssrc:382036819 cname:{b327c515-564f-4b8b-950f-8218ce3f8795}\r\na=ssrc:382036820 cname:{b327c515-564f-4b8b-950f-8218ce3f8795}\r\na=ssrc-group:FID 382036819 382036820\r\na=rtcp-mux\r\na=rtcp-rsize\r\nm=video 7 UDP/TLS/RTP/SAVPF 127\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:127 VP8/90000\r\na=fmtp:127 max-fs=12288;max-fr=60\r\na=rtcp-fb:127 nack \r\na=rtcp-fb:127 nack pli\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 transport-cc \r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:actpass\r\na=mid:probator\r\na=msid:probator probator\r\na=sendonly\r\na=ice-ufrag:s1yllxg25ky7tbt8xqzy2qxvmd3gm0ul\r\na=ice-pwd:qjc3fze0jew5b1ve3gp0gsf1srhuwq47\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40072 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40034 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=ssrc:1234 cname:probator\r\na=rtcp-mux\r\na=rtcp-rsize\r\n" }
] +1ms MediasoupClient.js:673:35
mediasoup-client:Firefox120 restartIce() | calling pc.setLocalDescription() [answer:
Object { type: "answer", sdp: "v=0\r\no=mozilla...THIS_IS_SDPARTA-99.0 2409875055918020711 3 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 20:B2:31:77:82:93:2D:0E:C9:FC:29:77:26:1B:84:B1:D8:89:E6:35:49:C1:A5:6B:99:A1:BD:A3:C4:22:B5:A6\r\na=group:BUNDLE 0 1 probator\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=audio 9 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 0.0.0.0\r\na=recvonly\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=fmtp:100 maxplaybackrate=48000;stereo=1;useinbandfec=1\r\na=ice-pwd:d0a6a1e8f738f0ad63f442f1f5587744\r\na=ice-ufrag:5373081b\r\na=mid:0\r\na=rtcp-mux\r\na=rtpmap:100 opus/48000/2\r\na=setup:active\r\na=ssrc:2132767060 cname:{b222c4dd-8f5c-4c1b-a05e-8e89c76af6f0}\r\nm=video 9 UDP/TLS/RTP/SAVPF 101 102\r\nc=IN IP4 0.0.0.0\r\na=recvonly\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:14/recvonly http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=fmtp:101 max-fs=12288;max-fr=60\r\na=fmtp:102 apt=101\r\na=ice-pwd:d0a6a1e8f738f0ad63f442f1f5587744\r\na=ice-ufrag:5373081b\r\na=mid:1\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 transport-cc\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:101 VP8/90000\r\na=rtpmap:102 rtx/90000\r\na=setup:active\r\na=ssrc:3844711403 cname:{b222c4dd-8f5c-4c1b-a05e-8e89c76af6f0}\r\nm=video 9 UDP/TLS/RTP/SAVPF 127\r\nc=IN IP4 0.0.0.0\r\na=recvonly\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:14/recvonly http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=fmtp:127 max-fs=12288;max-fr=60\r\na=ice-pwd:d0a6a1e8f738f0ad63f442f1f5587744\r\na=ice-ufrag:5373081b\r\na=mid:probator\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 transport-cc\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:127 VP8/90000\r\na=setup:active\r\na=ssrc:1867643910 cname:{b222c4dd-8f5c-4c1b-a05e-8e89c76af6f0}\r\n" }
] +3ms MediasoupClient.js:673:35
Restart ICE done RoomClient.js:873:21
mediasoup-client:Transport ICE gathering state changed to gathering +6ms MediasoupClient.js:673:35
Consumer icegatheringstatechange 
Object { state: "gathering", id: "94d3c075-5b61-40cd-b220-ed79f629775c" }
RoomClient.js:834:21
mediasoup-client:Transport ICE gathering state changed to complete +2ms MediasoupClient.js:673:35
Consumer icegatheringstatechange 
Object { state: "complete", id: "94d3c075-5b61-40cd-b220-ed79f629775c" }

Server:

[9/24/2024, 18:14:23:008] [Server] Restart ICE {
  peer_name: 'user-2',
  transport_id: 'e405c1e6-b615-4e30-bcd8-c9bec6702932'
} +19s
  mediasoup:WebRtcTransport restartIce() +20s
  mediasoup:Channel request() [method:TRANSPORT_RESTART_ICE] +20s
  mediasoup:Channel request succeeded [method:TRANSPORT_RESTART_ICE, id:31] +0ms
[9/24/2024, 18:14:23:010] [Server] Restart ICE callback {
  callback: {
    usernameFragment: 'gha5l54alwej97ps167eii1bi9z0eo61',
    password: 'urgnvbusnm01zh72n4dc00nhwjluwq0v',
    iceLite: true
  }
} +0ms
[9/24/2024, 18:14:23:024] [Server] Restart ICE {
  peer_name: 'user-2',
  transport_id: '94d3c075-5b61-40cd-b220-ed79f629775c'
} +13ms
  mediasoup:WebRtcTransport restartIce() +15ms
  mediasoup:Channel request() [method:TRANSPORT_RESTART_ICE] +15ms
  mediasoup:Channel request succeeded [method:TRANSPORT_RESTART_ICE, id:32] +0ms
[9/24/2024, 18:14:23:024] [Server] Restart ICE callback {
  callback: {
    usernameFragment: 's1yllxg25ky7tbt8xqzy2qxvmd3gm0ul',
    password: 'qjc3fze0jew5b1ve3gp0gsf1srhuwq47',
    iceLite: true
  }
} +0ms

Chrome - ko:

Client:

RoomClient.js:852 Restart ICE...
RoomClient.js:859 Restarting producer transport ICE {usernameFragment: 'fmgneo5fpvaz858w4fp0z12kekvk9y1x', password: 'p4epomfl7pg5yfaai1f217wqom5yj4j7', iceLite: true}
MediasoupClient.js:673 mediasoup-client:Transport restartIce() +12s
MediasoupClient.js:673 mediasoup-client:Chrome111 restartIce() +12s
MediasoupClient.js:673 mediasoup-client:RemoteSdp updateIceParameters() [iceParameters:{usernameFragment: 'fmgneo5fpvaz858w4fp0z12kekvk9y1x', password: 'p4epomfl7pg5yfaai1f217wqom5yj4j7', iceLite: true}] +12s
MediasoupClient.js:673 mediasoup-client:Chrome111 restartIce() | calling pc.setLocalDescription() [offer:{sdp: 'v=0\r\no=- 1164254777301424256 4 IN IP4 127.0.0.1\r\ns… send\r\na=rid:r2 send\r\na=simulcast:send r0;r1;r2\r\n', type: 'offer'}sdp: "v=0\r\no=- 1164254777301424256 4 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS 81f2b902-8aec-4d5a-af8e-b8693701f46d\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 13 110 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:fRhW\r\na=ice-pwd:QeTvlITlmjqykooLZp9HXvGn\r\na=ice-options:trickle\r\na=fingerprint:sha-256 23:8C:8F:78:DF:7C:52:73:8F:6C:FA:24:5F:20:B1:13:DC:75:B1:11:F4:23:EB:98:5A:63:48:24:47:17:2C:22\r\na=setup:actpass\r\na=mid:0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=sendonly\r\na=msid:81f2b902-8aec-4d5a-af8e-b8693701f46d 6e446d0a-ff0a-4a1c-a5e3-1d94f99dcd13\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:63 red/48000/2\r\na=fmtp:63 111/111\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:126 telephone-event/8000\r\na=ssrc:2208132553 cname:7M7dE3U++fHBHIgI\r\na=ssrc:2208132553 msid:81f2b902-8aec-4d5a-af8e-b8693701f46d 6e446d0a-ff0a-4a1c-a5e3-1d94f99dcd13\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 102 103 104 105 106 107 108 109 127 125 39 40 45 46 98 99 100 101 112 113 116 117 118\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:fRhW\r\na=ice-pwd:QeTvlITlmjqykooLZp9HXvGn\r\na=ice-options:trickle\r\na=fingerprint:sha-256 23:8C:8F:78:DF:7C:52:73:8F:6C:FA:24:5F:20:B1:13:DC:75:B1:11:F4:23:EB:98:5A:63:48:24:47:17:2C:22\r\na=setup:actpass\r\na=mid:1\r\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:13 urn:3gpp:video-orientation\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=extmap:12 https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension\r\na=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00\r\na=sendonly\r\na=msid:81f2b902-8aec-4d5a-af8e-b8693701f46d 4848d81d-8107-44ee-bdfb-cb10551a76a3\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:102 H264/90000\r\na=rtcp-fb:102 goog-remb\r\na=rtcp-fb:102 transport-cc\r\na=rtcp-fb:102 ccm fir\r\na=rtcp-fb:102 nack\r\na=rtcp-fb:102 nack pli\r\na=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\na=rtpmap:103 rtx/90000\r\na=fmtp:103 apt=102\r\na=rtpmap:104 H264/90000\r\na=rtcp-fb:104 goog-remb\r\na=rtcp-fb:104 transport-cc\r\na=rtcp-fb:104 ccm fir\r\na=rtcp-fb:104 nack\r\na=rtcp-fb:104 nack pli\r\na=fmtp:104 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\na=rtpmap:105 rtx/90000\r\na=fmtp:105 apt=104\r\na=rtpmap:106 H264/90000\r\na=rtcp-fb:106 goog-remb\r\na=rtcp-fb:106 transport-cc\r\na=rtcp-fb:106 ccm fir\r\na=rtcp-fb:106 nack\r\na=rtcp-fb:106 nack pli\r\na=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:107 rtx/90000\r\na=fmtp:107 apt=106\r\na=rtpmap:108 H264/90000\r\na=rtcp-fb:108 goog-remb\r\na=rtcp-fb:108 transport-cc\r\na=rtcp-fb:108 ccm fir\r\na=rtcp-fb:108 nack\r\na=rtcp-fb:108 nack pli\r\na=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\na=rtpmap:109 rtx/90000\r\na=fmtp:109 apt=108\r\na=rtpmap:127 H264/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 transport-cc\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f\r\na=rtpmap:125 rtx/90000\r\na=fmtp:125 apt=127\r\na=rtpmap:39 H264/90000\r\na=rtcp-fb:39 goog-remb\r\na=rtcp-fb:39 transport-cc\r\na=rtcp-fb:39 ccm fir\r\na=rtcp-fb:39 nack\r\na=rtcp-fb:39 nack pli\r\na=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f\r\na=rtpmap:40 rtx/90000\r\na=fmtp:40 apt=39\r\na=rtpmap:45 AV1/90000\r\na=rtcp-fb:45 goog-remb\r\na=rtcp-fb:45 transport-cc\r\na=rtcp-fb:45 ccm fir\r\na=rtcp-fb:45 nack\r\na=rtcp-fb:45 nack pli\r\na=fmtp:45 level-idx=5;profile=0;tier=0\r\na=rtpmap:46 rtx/90000\r\na=fmtp:46 apt=45\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 profile-id=0\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 VP9/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 profile-id=2\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:112 H264/90000\r\na=rtcp-fb:112 goog-remb\r\na=rtcp-fb:112 transport-cc\r\na=rtcp-fb:112 ccm fir\r\na=rtcp-fb:112 nack\r\na=rtcp-fb:112 nack pli\r\na=fmtp:112 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f\r\na=rtpmap:113 rtx/90000\r\na=fmtp:113 apt=112\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 rtx/90000\r\na=fmtp:117 apt=116\r\na=rtpmap:118 ulpfec/90000\r\na=rid:r0 send\r\na=rid:r1 send\r\na=rid:r2 send\r\na=simulcast:send r0;r1;r2\r\n"type: "offer"[[Prototype]]: Object] +2ms
MediasoupClient.js:673 mediasoup-client:Chrome111 restartIce() | calling pc.setRemoteDescription() [answer:{type: 'answer', sdp: 'v=0\r\no=mediasoup-client 10000 3 IN IP4 0.0.0.0\r\ns=… recv\r\na=rid:r2 recv\r\na=simulcast:recv r0;r1;r2\r\n'}sdp: "v=0\r\no=mediasoup-client 10000 3 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=ice-lite\r\na=fingerprint:sha-1 0F:C2:3E:44:84:A6:E2:0A:AF:8C:34:F6:4A:87:8A:69:CB:AA:E1:18\r\na=msid-semantic: WMS *\r\na=group:BUNDLE 0 1\r\nm=audio 7 UDP/TLS/RTP/SAVPF 111\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 stereo=1;useinbandfec=1;usedtx=1\r\na=rtcp-fb:111 transport-cc \r\na=rtcp-fb:111 nack \r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=setup:passive\r\na=mid:0\r\na=recvonly\r\na=ice-ufrag:fmgneo5fpvaz858w4fp0z12kekvk9y1x\r\na=ice-pwd:p4epomfl7pg5yfaai1f217wqom5yj4j7\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40039 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40005 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=rtcp-mux\r\na=rtcp-rsize\r\nm=video 7 UDP/TLS/RTP/SAVPF 96 97\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:96 VP8/90000\r\na=rtpmap:97 rtx/90000\r\na=fmtp:96 x-google-start-bitrate=1000\r\na=fmtp:97 apt=96\r\na=rtcp-fb:96 transport-cc \r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack \r\na=rtcp-fb:96 nack pli\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:passive\r\na=mid:1\r\na=recvonly\r\na=ice-ufrag:fmgneo5fpvaz858w4fp0z12kekvk9y1x\r\na=ice-pwd:p4epomfl7pg5yfaai1f217wqom5yj4j7\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40039 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40005 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rid:r0 recv\r\na=rid:r1 recv\r\na=rid:r2 recv\r\na=simulcast:recv r0;r1;r2\r\n"type: "answer"[[Prototype]]: Object] +9ms
MediasoupClient.js:673 mediasoup-client:Transport ICE gathering state changed to gathering +12ms
RoomClient.js:748 Producer icegatheringstatechange {state: 'gathering', id: 'ec2c2b40-abf7-4c09-9bc9-c43a7b29f4af'}id: "ec2c2b40-abf7-4c09-9bc9-c43a7b29f4af"state: "gathering"[[Prototype]]: Object
RoomClient.js:869 Restarting consumer transport ICE {usernameFragment: 'vaw7e8xbhnqrwl8c0350r9q8qgzw96hx', password: 'xwqpc635b9why7ueqdjq5rcy0uparkzr', iceLite: true}iceLite: truepassword: "xwqpc635b9why7ueqdjq5rcy0uparkzr"usernameFragment: "vaw7e8xbhnqrwl8c0350r9q8qgzw96hx"[[Prototype]]: Object
MediasoupClient.js:673 mediasoup-client:Transport restartIce() +8ms
MediasoupClient.js:673 mediasoup-client:Chrome111 restartIce() +10ms
MediasoupClient.js:673 mediasoup-client:RemoteSdp updateIceParameters() [iceParameters:{usernameFragment: 'vaw7e8xbhnqrwl8c0350r9q8qgzw96hx', password: 'xwqpc635b9why7ueqdjq5rcy0uparkzr', iceLite: true}] +20ms
MediasoupClient.js:673 mediasoup-client:Chrome111 restartIce() | calling pc.setRemoteDescription() [offer:{type: 'offer', sdp: 'v=0\r\no=mediasoup-client 10000 4 IN IP4 0.0.0.0\r\ns=…c:1234 cname:probator\r\na=rtcp-mux\r\na=rtcp-rsize\r\n'}sdp: "v=0\r\no=mediasoup-client 10000 4 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=ice-lite\r\na=fingerprint:sha-1 0F:C2:3E:44:84:A6:E2:0A:AF:8C:34:F6:4A:87:8A:69:CB:AA:E1:18\r\na=msid-semantic: WMS *\r\na=group:BUNDLE 0 1 probator\r\nm=audio 7 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:100 opus/48000/2\r\na=fmtp:100 minptime=10;useinbandfec=1;sprop-stereo=1;usedtx=1\r\na=rtcp-fb:100 nack \r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:actpass\r\na=mid:0\r\na=msid:ChAIQ-AkoXlWg9kiAAAJ-mic-webcam 8e7234e3-2049-4fca-bb30-12c64072c1cb\r\na=sendonly\r\na=ice-ufrag:vaw7e8xbhnqrwl8c0350r9q8qgzw96hx\r\na=ice-pwd:xwqpc635b9why7ueqdjq5rcy0uparkzr\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40053 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40024 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=ssrc:767003594 cname:OBCbOmgjt/UmOoQ6\r\na=rtcp-mux\r\na=rtcp-rsize\r\nm=video 7 UDP/TLS/RTP/SAVPF 101 102\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:101 VP8/90000\r\na=rtpmap:102 rtx/90000\r\na=fmtp:102 apt=101\r\na=rtcp-fb:101 transport-cc \r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack \r\na=rtcp-fb:101 nack pli\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:actpass\r\na=mid:1\r\na=msid:ChAIQ-AkoXlWg9kiAAAJ-mic-webcam 936ad449-2ae3-47f5-a7b8-3f897c933d4c\r\na=sendonly\r\na=ice-ufrag:vaw7e8xbhnqrwl8c0350r9q8qgzw96hx\r\na=ice-pwd:xwqpc635b9why7ueqdjq5rcy0uparkzr\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40053 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40024 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=ssrc:956918737 cname:OBCbOmgjt/UmOoQ6\r\na=ssrc:956918738 cname:OBCbOmgjt/UmOoQ6\r\na=ssrc-group:FID 956918737 956918738\r\na=rtcp-mux\r\na=rtcp-rsize\r\nm=video 7 UDP/TLS/RTP/SAVPF 127\r\nc=IN IP4 127.0.0.1\r\na=rtpmap:127 VP8/90000\r\na=rtcp-fb:127 transport-cc \r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack \r\na=rtcp-fb:127 nack pli\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=setup:actpass\r\na=mid:probator\r\na=msid:probator probator\r\na=sendonly\r\na=ice-ufrag:vaw7e8xbhnqrwl8c0350r9q8qgzw96hx\r\na=ice-pwd:xwqpc635b9why7ueqdjq5rcy0uparkzr\r\na=candidate:udpcandidate 1 udp 1076302079 192.168.1.102 40053 typ host\r\na=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.102 40024 typ host tcptype passive\r\na=end-of-candidates\r\na=ice-options:renomination\r\na=ssrc:1234 cname:probator\r\na=rtcp-mux\r\na=rtcp-rsize\r\n"type: "offer"[[Prototype]]: Object] +0ms
MediasoupClient.js:673 mediasoup-client:Chrome111 restartIce() | calling pc.setLocalDescription() [answer:{sdp: 'v=0\r\no=- 4030035181656932623 5 IN IP4 127.0.0.1\r\ns…fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\n', type: 'answer'}sdp: "v=0\r\no=- 4030035181656932623 5 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1 probator\r\na=msid-semantic: WMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:NhHI\r\na=ice-pwd:KrBbM/jtpaKb5A4clnmxAK37\r\na=ice-options:trickle\r\na=fingerprint:sha-256 35:D6:FE:B8:C2:B7:0C:11:BF:E1:C5:22:C5:F0:5C:E6:6E:B9:15:D4:C6:D6:01:E2:71:27:04:E0:E6:D6:BE:B3\r\na=setup:active\r\na=mid:0\r\na=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 opus/48000/2\r\na=fmtp:100 minptime=10;stereo=1;useinbandfec=1\r\nm=video 9 UDP/TLS/RTP/SAVPF 101 102\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:NhHI\r\na=ice-pwd:KrBbM/jtpaKb5A4clnmxAK37\r\na=ice-options:trickle\r\na=fingerprint:sha-256 35:D6:FE:B8:C2:B7:0C:11:BF:E1:C5:22:C5:F0:5C:E6:6E:B9:15:D4:C6:D6:01:E2:71:27:04:E0:E6:D6:BE:B3\r\na=setup:active\r\na=mid:1\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:101 VP8/90000\r\na=rtcp-fb:101 transport-cc\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtpmap:102 rtx/90000\r\na=fmtp:102 apt=101\r\nm=video 9 UDP/TLS/RTP/SAVPF 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:NhHI\r\na=ice-pwd:KrBbM/jtpaKb5A4clnmxAK37\r\na=ice-options:trickle\r\na=fingerprint:sha-256 35:D6:FE:B8:C2:B7:0C:11:BF:E1:C5:22:C5:F0:5C:E6:6E:B9:15:D4:C6:D6:01:E2:71:27:04:E0:E6:D6:BE:B3\r\na=setup:active\r\na=mid:probator\r\na=extmap:12 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:127 VP8/90000\r\na=rtcp-fb:127 transport-cc\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\n"type: "answer"[[Prototype]]: Object] +4ms
MediasoupClient.js:673 mediasoup-client:Transport connection state changed to disconnected +6ms
RoomClient.js:795 Consumer Transport disconnected {id: '14a47773-a832-4ec3-87e5-5f45f118c694'}
RoomClient.js:810 Consumer Transport failed {id: '14a47773-a832-4ec3-87e5-5f45f118c694'}
(anonymous) @ RoomClient.js:810
emit @ MediasoupClient.js:15306
safeEmit @ MediasoupClient.js:3773
(anonymous) @ MediasoupClient.js:3600
emit @ MediasoupClient.js:15306
emit @ MediasoupClient.js:3766
(anonymous) @ MediasoupClient.js:4056
MediasoupClient.js:673 mediasoup-client:Transport close() +0ms
MediasoupClient.js:673 mediasoup-client:Chrome111 close() +2ms
MediasoupClient.js:673 mediasoup-client:Consumer transportClosed() +12s
RoomClient.js:2215 Consumer transport close {id: '8e7234e3-2049-4fca-bb30-12c64072c1cb'}
MediasoupClient.js:673 mediasoup-client:Consumer transportClosed() +3ms
RoomClient.js:2215 Consumer transport close {id: '936ad449-2ae3-47f5-a7b8-3f897c933d4c'}
RoomClient.js:2500 [removeConsumer - video] Video-element-count 1
RoomClient.js:875 Restart ICE error AwaitQueueStoppedError: AwaitQueue stopped
    at AwaitQueue.stop (MediasoupClient.js:210:48)
    at Transport.close (MediasoupClient.js:3026:42)
    at Transport.<anonymous> (RoomClient.js:812:44)
    at Transport.emit (MediasoupClient.js:15306:25)
    at Transport.safeEmit (MediasoupClient.js:3773:42)
    at Chrome111.<anonymous> (MediasoupClient.js:3600:38)
    at Chrome111.emit (MediasoupClient.js:15306:25)
    at Chrome111.emit (MediasoupClient.js:3766:38)
    at RTCPeerConnection.<anonymous> (MediasoupClient.js:4056:38)
restartIce @ RoomClient.js:875
await in restartIce
restartICEButton.onclick @ Room.js:1966
MediasoupClient.js:673 mediasoup-client:Transport ICE gathering state changed to complete +109ms
RoomClient.js:748 Producer icegatheringstatechange {state: 'complete', id: 'ec2c2b40-abf7-4c09-9bc9-c43a7b29f4af'}

Server:

[9/24/2024, 18:15:53:059] [Server] Restart ICE {
  peer_name: 'user-2',
  transport_id: 'ec2c2b40-abf7-4c09-9bc9-c43a7b29f4af'
} +11s
  mediasoup:WebRtcTransport restartIce() +12s
  mediasoup:Channel request() [method:TRANSPORT_RESTART_ICE] +12s
  mediasoup:Channel request succeeded [method:TRANSPORT_RESTART_ICE, id:31] +1ms
[9/24/2024, 18:15:53:060] [Server] Restart ICE callback {
  callback: {
    usernameFragment: 'fmgneo5fpvaz858w4fp0z12kekvk9y1x',
    password: 'p4epomfl7pg5yfaai1f217wqom5yj4j7',
    iceLite: true
  }
} +1ms
[9/24/2024, 18:15:53:080] [Server] Restart ICE {
  peer_name: 'user-2',
  transport_id: '14a47773-a832-4ec3-87e5-5f45f118c694'
} +19ms
  mediasoup:WebRtcTransport restartIce() +21ms
  mediasoup:Channel request() [method:TRANSPORT_RESTART_ICE] +20ms
  mediasoup:Channel request succeeded [method:TRANSPORT_RESTART_ICE, id:32] +0ms
[9/24/2024, 18:15:53:080] [Server] Restart ICE callback {
  callback: {
    usernameFragment: 'vaw7e8xbhnqrwl8c0350r9q8qgzw96hx',
    password: 'xwqpc635b9why7ueqdjq5rcy0uparkzr',
    iceLite: true
  }
} +0ms
[9/24/2024, 18:16:13:092] [Room] Transport closed "icestatechange" event {
  peer_name: 'user-2',
  transport_id: '14a47773-a832-4ec3-87e5-5f45f118c694',
  iceState: 'disconnected'
} +32s
  mediasoup:Transport close() +32s
  mediasoup:Channel request() [method:ROUTER_CLOSE_TRANSPORT] +20s
  mediasoup:Consumer transportClosed() +32s
[9/24/2024, 18:16:13:094] [Peer] Consumer "transportclose" event '' +32s
[9/24/2024, 18:16:13:096] [Peer] Consumer closed and deleted {
  peer_name: 'user-2',
  kind: 'audio',
  type: 'simple',
  consumer_id: '8e7234e3-2049-4fca-bb30-12c64072c1cb',
  consumer_closed: true
} +0ms
  mediasoup:Consumer transportClosed() +8ms
[9/24/2024, 18:16:13:102] [Peer] Consumer "transportclose" event '' +6ms
[9/24/2024, 18:16:13:103] [Peer] Consumer closed and deleted {
  peer_name: 'user-2',
  kind: 'video',
  type: 'simulcast',
  consumer_id: '936ad449-2ae3-47f5-a7b8-3f897c933d4c',
  consumer_closed: true
} +0ms
  mediasoup:Channel request succeeded [method:ROUTER_CLOSE_TRANSPORT, id:33] +11ms

Solved :slight_smile:

We’re missing a break in the disconnect case, causing the failed action to execute when a disconnection occurs.

        this.consumerTransport.on('connectionstatechange', (state) => {
            switch (state) {
                case 'connecting':
                    console.log('Consumer Transport connecting...');
                    break;
                case 'connected':
                    console.log('Consumer Transport connected', { id: this.consumerTransport.id });
                    break;
                case 'disconnected':
                    console.log('Consumer Transport disconnected', { id: this.consumerTransport.id });
                    break; // -----> we added this break as missing!
                case 'failed':
                    console.warn('Consumer Transport failed', { id: this.consumerTransport.id });

                    this.consumerTransport.close();

                    popupHtmlMessage(
                        null,
                        image.network,
                        'Consumer Transport failed',
                        'Check Your Network Connectivity',
                        'center',
                        false,
                        true,
                    );
                    break;
                default:
                    console.log('Consumer transport connection state changes', {
                        state: state,
                        id: this.consumerTransport.id,
                    });
                    break;
            }
        });

Cheers.