-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support ICE Continuous Gathering flag in RTCConfiguration #121
Comments
Cross linking the issue from the WebRTC repo: |
There was an IETF draft related to this some time ago: https://datatracker.ietf.org/doc/html/draft-oreland-dispatch-ice-nicer-00 |
Trickle ICE is specified in RFC 8838. |
the flag currently exist (ContinualGatheringPolicy )in native code and it resolve the scenario:faster reconnected when pc/mobile network exchange during call than ICE Restart, Trickle ICE can not resolve such problem. |
I'd love to see this available in the web platform |
Yeah, at least from my understanding Trickle ICE is great for speeding up initial connection. However, the essential problem is that Trickle ICE will still enter into the complete state for ICE Gathering. This is problematic if there is any network changes that a new ICE Candidate would be able to connect better. ICE Restart does solve this problem, but it is up to the individual clients to implement and is likely to be a slower response to network change, than a continually ICE gathering policy. |
This would be great! |
It seems it would be more or less trivial to expose this, at least for Chromium-based browsers. And it would be really useful considering that an ICE restart requires an O/A exchange that is unnecessary with many SFU implementations (they care about the correct certificate fingerprint and that's about it). |
@sam-vi and @jonasoreland may have more to say here. |
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.
The text was updated successfully, but these errors were encountered: