Skip to content
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

iceConnectionState "checking" can happen without adding remote candidates #2878

Closed
fippo opened this issue Jun 12, 2023 · 1 comment · Fixed by #2884
Closed

iceConnectionState "checking" can happen without adding remote candidates #2878

fippo opened this issue Jun 12, 2023 · 1 comment · Fixed by #2884

Comments

@fippo
Copy link
Contributor

fippo commented Jun 12, 2023

The definition of the checking iceConnectionState
https://w3c.github.io/webrtc-pc/#rtcicetransportstate
is

The RTCIceTransport has received at least one remote candidate and is checking candidate pairs and has either not yet found a connection or consent checks [RFC7675] have failed on all previously successful candidate pairs. In addition to checking, it may also still be gathering.

There is an edge-case in which "checking" can happen without remote candidates that is demonstrated by this fiddle:
https://jsfiddle.net/fippo/pnqtzfg1/7/
Checking can happen because a remote prflx candidate learned from incoming STUN binding requests is used to create a pair.

Possible solutions:
🎉 remove "has received at least one remote candidate"
🚀 change "has received" to "has received or discovered"

@alvestrand
Copy link
Contributor

"has received at least one candidate (by means of AddIceCandidate or from an incoming STUN binding request)"

that way we call out the two methods explicitly.

fippo added a commit to fippo/webrtc-pc that referenced this issue Jun 27, 2023
which can happen without explicitly adding remote candidates via
addIceCandidate when candidate pairs are formed after discovering
a peer-reflexive candidate upon receiving a valid STUN binding
request

Fixes w3c#2878
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants