-
Notifications
You must be signed in to change notification settings - Fork 42
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
Section 3.3.2: ICE re-start #166
Comments
Here is the recommended change to the text: "start If an RTCIceGatherer object is constructed and passed as an argument when start() is called again, an ICE restart as defined in [RFC5245] Section 9.2.1.1 occurs. If an RTCIceGatherer object in the "sleeping" state is passed as an argument to start(), throw an InvalidParameters exception." |
When start() is called again, I don't think we want to transition to the new state - we're still connected, so we should probably just go back to the connected state. If a new ICEGatherer is supplied, we want to flush the existing local candidates, get a new ufrag/pwd, and then transition from the existing candidate pair to a new candidate pair with new local candidates. If a new ICEGatherer is not supplied, we want to reuse the existing local candidates, use the same local ufrag/pwd, but it's not clear whether we need to transition from the existing candidate pair to a new candidate pair. I think we need to understand how this "lite restart" would work. |
Here is the proposed text for Section 3.3.2: start If a newly constructed RTCIceGatherer object is passed as an argument when start() is called again, an ICE restart as defined in [RFC5245] Section 9.2.1.1 occurs. If an RTCIceGatherer with RTCIceGathererState of "completed" is passed as an argument to start(), the existing (unpruned) local candidates are reused and the ICE ufrag/password remains unchanged. However, other aspects of the behavior in this case are not currently defined. |
#48 Update to the Statistics API, reflecting: #85 Update on 'automatic' use of scalable video coding, as noted in: #156 Update to the H.264 parameters, as noted in: #158 Update to the 'Big Picture', as noted in: #159 Added support for maxptime, as noted in: #160 Changed 'RTCIceTransportEvent' to 'RTCIceGathererEvent' as noted in: #161 Update to RTCRtpUnhandledEvent as noted in: #163 Added support for RTCIceGatherer.state as noted in: #164 Revised the text relating to RTCIceTransport.start() as noted in: #166 Added text relating to DTLS interoperability with WebRTC 1.0, as noted in: #167 Revised the text relating to RTCDtlsTransport.start() as noted in: #168 Clarified handling of incoming connectivity checks by the RTCIceGatherer as noted in: #170 Added a reference to the ICE consent specification, as noted in: #171
I thought the local ufrag/pwd was tied to the RTCIceGatherer. Wouldn't The rest sounds good to me (the idea of "lite restart" when the passed-in On Mon, Jan 5, 2015 at 11:34 AM, aboba [email protected] wrote:
|
Here is the current text in the document: start If a newly constructed RTCIceGatherer object is passed as an argument when start() is called again, an ICE restart as defined in [RFC5245] Section 9.2.1.1 occurs. Since start() does not change the username fragment and password of gatherer, if start() is called again with the same value of gatherer, the existing local candidates are reused and the ICE username fragment and password remains unchanged. However, other aspects of the behavior are not currently defined. As noted in [RFC5245] Section 7.1.2.3, an incoming connectivity check utilizes the local/remote username fragment and the local password, whereas an outgoing connectivity check utilizes the local/remote username fragment and the remote password. Since start() provides role information, as well as the remote username fragment and password, once start() is called an RTCIceTransport object can respond to incoming connectivity checks based on its configured role, as well as initiating connectivity checks. |
Currently the text on RTCIceTransport.start states:
"The first time start is called candidate connectivity checks are started and the ICE transport attempts to connect to the remote RTCIceTransport... If start is called again, an ICE restart occurs, all remote candidates are flushed, and addRemoteCandidates or setRemoteCandidates must be called to add the remote candidates back or replace them."
This raises several questions:
The text was updated successfully, but these errors were encountered: