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

No IceGatherer.stop() #189

Closed
aboba opened this Issue Apr 17, 2015 · 4 comments

Comments

Projects
None yet
2 participants
@aboba
Copy link
Contributor

aboba commented Apr 17, 2015

There is no way to stop an IceGatherer once constructed. Let us say that an Offerer offers both Audio and Video, on distinct ports, and constructs and IceGatherer and IceTransport for them. Then the Answer comes back indicating that the Answerer doesn't want video (port = 0). Wouldn't you want to call .stop() on the IceGatherer and IceTransport? Otherwise you'll have the IceGatherer expending energy gathering Server Reflexive and relay candidates that you'll never use.

@aboba

This comment has been minimized.

Copy link
Contributor

aboba commented Apr 17, 2015

Potential fix:

partial interface RTCIceGatherer : RTCStatsProvider {
void stop ();
};

stop
Stops and closes the current object.

No parameters.
Return type: void

@aboba aboba added the 1.1 label Apr 17, 2015

@pthatcherg

This comment has been minimized.

Copy link

pthatcherg commented Apr 17, 2015

I like it, but let's call it;

partial interface RTCIceGatherer : RTCStatsProvider {
void close(); // Blows away all local candidates. IceTransports using them will go to disconnected state.
};

@aboba

This comment has been minimized.

Copy link
Contributor

aboba commented Apr 19, 2015

If we have an iceGatherer.close() method, we also need a "closed" state for the IceGatherer.

@aboba aboba added the PR exists label Apr 19, 2015

@aboba

This comment has been minimized.

Copy link
Contributor

aboba commented Apr 26, 2015

Here is a proposal:

partial interface RTCIceGatherer : RTCStatsProvider {
void close ();
};

close
Prunes all local candidates. Associated RTCIceTransport objects transition to the "disconnected" state.

Here is the proposed definition of the "closed" state:

The RTCIceGatherer has been closed intentionally or as the result of an error.

@aboba aboba closed this Apr 26, 2015

robin-raymond pushed a commit that referenced this issue May 7, 2015

Robin Raymond
- sender.setTrack() updated to return a Promise, as noted in:
#148

- Clarified handling of incoming connectivity checks prior to calling iceTransport.start(), as noted in:
#170

- Clarified handling of incoming DTLS packets, as noted in:
#173

- Added RTCIceGatherer as an optional argument to the RTCIceTransport constructor, as noted in:
#174

- Clarified handling of contradictory RTP/RTCP multiplexing settings, as noted in:
#185

- Clarified error handling relating to RTCIceTransport, RTCDtlsTransport and RTCIceGatherer objects in the "closed" state, as noted in:
#186

- Added component method and createAssociatedGatherer() method to the RTCIceGatherer object, as noted in:
#188

- Added close() method to the RTCIceGatherer object as noted in:
#189

- Clarified behavior of TCP candidate types, as noted in:
#190

- Clarified behavior of iceGatherer.onlocalcandidate, as noted in:
#191

- Updated terminology in Section 1.1 as noted in:
#193

- Updated RTCDtlsTransportState definitions, as noted in:
#194

- Updated RTCIceTransportState definitions, as noted in:
#197
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment