RE: Issue 197: RTCIceTransportState and IceGatherer pruning

How about the following edits to Section 3.7? 

new 
 The RTCIceTransport object is waiting for remote candidates to be supplied. In this state the object can respond to incoming connectivity checks.

checking

 The RTCIceTransport has received at least one remote candidate, and a local and remote RTCIceCandidateComplete dictionary was not added as the last candidate. In this state the RTCIceTransport is checking candidate pairs but has not yet found a successful candidate pair, or liveness checks have failed (such as those in [CONSENT]) on a previously successful candidate pair.

connected

 The RTCIceTransport has received a response to an outgoing connectivity check, or has received incoming DTLS/media after a successful response to an incoming connectivity check, but is still checking other candidate pairs to see if there is a better connection. In this state outgoing media is permitted.

completed

 A local and remote RTCIceCandidateComplete dictionary was added as the last candidate to the RTCIceTransport and all appropriate candidate pairs have been tested and at least one functioning candidate pair has been found.

disconnected

 A local and remote RTCIceCandidateComplete dictionary was added as the last candidate to the RTCIceTransport and all appropriate candidate pairs have been tested and failed.

closed

 The ICE Transport has shut down and is no longer responding to STUN requests.

-----Original Message-----
From: Bernard Aboba [mailto:Bernard.Aboba@microsoft.com] 
Sent: Monday, May 4, 2015 1:06 PM
To: public-ortc@w3.org
Subject: Issue 197: RTCIceTransportState and IceGatherer pruning

Submitted by Robin Raymond: 

If an ice transport has exhausted all candidate testing possible (but not found any route) but end of candidates is not received yet, what state is the ice transport in?

not connected - no route is possible
 not complete - no route is possible
 not checking - no candidate available to check  disconnected?? - kind of implies it's failed / done, but with Trickle ICE it's not either failed or done in this case.

In Section 3.7, the definition of "disconnected" state says:

"Liveness checks have failed (such as those in [CONSENT]). This may trigger intermittently (and resolve itself without action)."

Based on that text, it would seem that RTCIceTransportState should be "disconnected", BUT...

We are proposing that Section 5.1 (RTCIceGatherer Overview) say the following: 

"The RTCIceGatherer does not prune local candidates until at least one RTCIceTransport object has become associated and all associated RTCIceTransport objects are in the "completed" or "disconnected" state." 

But we don't want to prune in disconnected state when there's no "end of candidates".

Received on Wednesday, 6 May 2015 01:14:59 UTC