RE: When is RTCIceTransportController needed?

Makes sense.  With respect to the Examples, does this mean:


1.     Section 3.16, Example 3. Doesn’t need an RTCIceTransportController because there is only one transport, no restart and no gather prior to start.

2.     Section 4.4, Example 5. Needs an RTCIceTransportController if multiple transports are started, even though there is no restart() or gather() method call.

3.     Section 5.4, Example 6. Since there is no RTP/RTCP mux, an RTCIceTransportController is needed for each fork, even though there is no restart() or gather().


From: Peter Thatcher [mailto:pthatcher@google.com]
Sent: Tuesday, July 29, 2014 4:59 PM
To: Bernard Aboba
Cc: public-ortc@w3.org
Subject: Re: When is RTCIceTransportController needed?

If you have more than one Transport, you should make a Controller to get the correct freezing behavior.

If we move restart() to the Controller, restarting would require a Controller.

Gathering before you start a transport would also require a Controller.

On Tue, Jul 29, 2014 at 2:55 PM, Bernard Aboba <Bernard.Aboba@microsoft.com<mailto:Bernard.Aboba@microsoft.com>> wrote:

At the July 20 ORTC CG meeting, we talked about adding restart() and gather() methods to the RTCIceTransportController object, and removing gather() from the RTCIceTransport.

One question was whether this implied that RTCIceTransportController was needed, even for simple cases, such as when both A/V mux and RTP/RTCP mux is used.

In looking through the current examples in the spec, it was not very clear when RTCIceTransportController would be needed:

1.     Section 3.16, Example 3. This example assumes a single ICE and DTLS transport (implying A/V and RTP/RTCP mux), so it didn't construct an RTCIceTransportController. Note that this example doesn't call RTCIceTransport.gather(), so it seems to imply that gathering is initiated via the start() method. Since this example doesn't need either ICE restart or gather(), is it necessary to construct an RTCIceTransportController?

2.     Section 4.4, Example 5. This is a more complicated example where the Initiator constructs ICE transports, DTLS transports, sender and receiver objects, assuming no A/V or RTP/RTCP mux, then determines whether the responder can do RTP/RTCP mux. Here also there is no ICE restart or use of gather(), only RTCIceTransport.start(). And there is no RTCIceTransportController constructed. Do we need to construct one, or since there are separate A/V transports, it is "implicitly" contructed somehow??

3.     Section 5.4, Example 6: This is a forking example with an RTCRtpIceListener and no RTP/RTCP mux. Again, it only uses RTCIceTransport.start, not restart() or gather(), and no RTCIceTransportController object is constructed.

Received on Wednesday, 30 July 2014 00:10:54 UTC