API for periodically regathering ICE candidates

Adds to the RTCConfiguration `ice_regather_interval_range` which, when
set, specifies the randomized delay between automatic runs of ICE
regathering. The regathering will occur on all networks and re-use the
existing ICE ufrag/password. New connections are established once the
candidates come back and WebRTC will automatically switch to the new
connection that corresponds to the currently selected connection.

Bug: webrtc:7969
Change-Id: I6bbf5439a48e285f704aed9f408631cba038c82b
Reviewed-on: https://chromium-review.googlesource.com/562505
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18978}
This commit is contained in:
Steve Anton
2017-07-11 14:38:29 -07:00
parent f1f9889c44
commit aa41f0cfa6
11 changed files with 294 additions and 31 deletions

View File

@ -453,6 +453,13 @@ class PeerConnectionInterface : public rtc::RefCountInterface {
// (STUN pings), in milliseconds.
rtc::Optional<int> ice_check_min_interval;
// ICE Periodic Regathering
// If set, WebRTC will periodically create and propose candidates without
// starting a new ICE generation. The regathering happens continuously with
// interval specified in milliseconds by the uniform distribution [a, b].
rtc::Optional<rtc::IntervalRange> ice_regather_interval_range;
//
// Don't forget to update operator== if adding something.
//