webrtc-extensions
webrtc-extensions copied to clipboard
Support ICE Continuous Gathering flag in RTCConfiguration
Background The feature request is to change how browsers complete their ICE Gathering. Currently, after a short period after establishing the call, we stop gathering new candidates and move to a completed state. However, due to an event that changes network conditions for the worse, the client may disconnect from the call prematurely. While, ICE Restart solves this problem it is a slower response than preferred, and could be solved if we continued to gather new ICE candidates throughout the call.
The "walk-out-the-door" problem explains the issue that continuous ICE gathering would solve, described by these slides: https://www.ietf.org/proceedings/94/slides/slides-94-ice-6.pdf
Other Implementations Chromium has this implemented for their native implementations, and they use a flag to enable this: https://chromium.googlesource.com/external/webrtc/+/b6760f9e4442410f2bcb6090b3b89bf709e2fce2/webrtc/api/android/java/src/org/webrtc/PeerConnection.java#126
Request The request here is to be able to turn on continuous ICE gathering through a similar config flag in RTCConfiguration during the creation of the peer connection.
Practice we open this feature in mobile native sdk(wifi/4g/5g toggle) ,and it proved useful in practice.