invalid ice state transition from checking to disconnected? #332

Closed
fippo opened this Issue Jan 7, 2016 · 10 comments

Projects

None yet

5 participants

@fippo
Contributor
fippo commented Jan 7, 2016

the (non-normative) diagram for ice state transitions shows a transition from 'checking' to 'disconnected' (also in the opposite direction) which is not shown in in the equivalent peerconnection diagram.

That looks like a bug, I can't think of a way how the checking->disconnected transition would happen. And disconnected to checking in the case of an ice-restart would happen via new.

(note: even though both diagrams look quite different otherwise that seems ok since in the ORTC version there is an annotation that 'new' is reachable from most other states, reducing the visual clutter)

@aboba
Contributor
aboba commented Jan 7, 2016

The transition from 'disconnected' to 'checking' can occur if a new interface comes up, thereby providing new candidates (and pairs) to check.

As for the transition from 'checking' to 'disconnected', in WebRTC 1.0, it can only occur via the 'connected' or 'failed' states, not directly. Thinking....

@pthatcherg

If it can go from "disconnected" to "checking" it can go back to
"disconnected" from "checking", can't it? For example:

  • Wifi goes away => disconnected
  • 3G candidates gathered => checking
  • 3G candidates gathered so far all fail => disconnected (still gathering,
    so not failed)

On Thu, Jan 7, 2016 at 3:52 PM, aboba notifications@github.com wrote:

The transition from 'disconnected' to 'checking' can occur if a new
interface comes up, thereby providing new candidates (and pairs) to check.

As for the transition from 'checking' to 'disconnected', in WebRTC 1.0, it
can only occur via the 'connected' or 'failed' states, not directly.
Thinking....


Reply to this email directly or view it on GitHub
#332 (comment).

@aboba
Contributor
aboba commented Jan 8, 2016

Yes. So shouldn't the WebRTC 1.0 and ORTC ICE state diagrams be the same?

@aboba aboba added a commit that referenced this issue Jan 8, 2016
@aboba aboba Add RTCIceTransportState examples
Provide examples of RTCIceTransportState transitions.

Related to Issue #332
9171dc0
@aboba
Contributor
aboba commented Jan 8, 2016

Submitted a PR to provide examples of RTCIceTransportState transitions.

@aboba aboba added a commit that referenced this issue Jan 8, 2016
@aboba aboba Add change lot entry
Added change long entry for Issue #332
61b238f
@aboba
Contributor
aboba commented Jan 12, 2016

Discussion on the same issue in WEBRTC WG: w3c/webrtc-pc#457

@aboba aboba removed the to-do-next-draft label Jan 12, 2016
@aboba
Contributor
aboba commented Jan 15, 2016

Slides prepared for the January 14, 2016 virtual interim of the WEBRTC WG on this topic:
https://www.w3.org/2011/04/webrtc/wiki/images/f/f4/WebRTCWG-2016-01-14.pdf

Unfortunately we ran out of time before we got to those slides :(

@robin-raymond robin-raymond was assigned by aboba Feb 22, 2016
@aboba
Contributor
aboba commented Feb 29, 2016
@ibc
Contributor
ibc commented Mar 1, 2016

PSD page 21:

  • checking: ICE agent is checking candidate pairs, and has never been connected.
  • connected: ICE agent is connected (may or may not be checking other pairs).
  • disconnected: ICE agent is not currently connected, and was either previously connected or is not
    checking.

+1000 for this

@robin-raymond
Contributor

This is my state table I am using:
ice transport state table

@aboba
Contributor
aboba commented May 10, 2016

Now that RTCIceTransportState also exists in WebRTC 1.0, and RTCIceConnectionState has been redefined based on that, the ICE transport state definitions (and transitions) in WebRTC 1.0 and ORTC are in the process of converging. The major outstanding issue appears to be the effect of ICE consent check failures on the states and transitions.

WebRTC 1.0 Issue 517 relates to state transitions due to ICE consent check failures:
w3c/webrtc-pc#517
The following PR has been submitted to address it:
w3c/webrtc-pc#611

Based on the resolution proposed in that PR, we are making progress on a proposed WebRTC 1.0 ICE transport state transition diagram:
w3c/webrtc-pc#457

Diagram:
https://cloud.githubusercontent.com/assets/808811/15027597/786a296a-11f9-11e6-8094-39ffb7cf49ed.png

@aboba aboba closed this Jun 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment