No IceGatherer.stop() #189

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

Projects

None yet

2 participants

@aboba
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
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

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
Contributor
aboba commented Apr 19, 2015

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

@aboba
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 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
c006197
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment