Flushing ICE candidates

Scenario: a network interfaces goes down and all associated candidates 
are no longer valid or server reflexive address changes.

There's no way to flush candidates that are no longer value. 
"onlocalcandidate" fires new candidates but does not inform of dead 
candidates. Likewise, there's no way to tell the remote party that 
candidates are gone/flushed. Over time, this can cause a build up of 
dead candidates that are not valid, especially as server reflexive 
network interfaces come and go.


These leads me to a few possible conclusions:
1) Maybe it's better to fire "onCandidatesChanged" event and the web app 
can do a "getLocalCandidates" to get the current candidate list (and it 
can could output a flag that indicates if the list is now gathered fully 
or if the list is not yet fully discovered). Optionally, the 
"onCandidatesChanged" event can list the new / removed candidates but 
that seems a bit redundant.
2) We should have a method "setRemoteCandidates" not just 
"addRemoteCandidates" to cause a complete flush and reset of the 
candidates available.

This is also related to the "Delivering ICE candidates as packages of 
"available now" candidates in signaling" thread:
http://lists.w3.org/Archives/Public/public-ortc/2014Apr/0023.html

Thoughts?

Filed as issue: https://github.com/openpeer/ortc/issues/53

-Robin

Received on Saturday, 12 April 2014 18:53:58 UTC