- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Tue, 14 Feb 2012 15:07:37 +0100
- To: Justin Uberti <juberti@google.com>
- CC: "Suhas Nandakumar (snandaku)" <snandaku@cisco.com>, rtcweb@ietf.org, public-webrtc@w3.org
- Message-ID: <4F3A6AA9.60503@alvestrand.no>
On 02/14/2012 02:51 PM, Justin Uberti wrote:
>
>
> On Tue, Feb 14, 2012 at 4:23 AM, Harald Alvestrand
> <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote:
>
> On 02/13/2012 09:00 PM, Suhas Nandakumar (snandaku) wrote:
>
> I was wondering why should we link ICE candidate gathering
> procedures to
> call setup flow.
> Can't this be done by browser periodically independent of
> RTCWeb call ?
>
> This may end up saving ton of time if the network topology doesn't
> change frequently.
>
> Is this a valid argument ?
>
> the chief problem with that thought is that with current APIs, the
> browser does not know which STUN/TURN server to use before the
> PeerConnection is created (it's an init parameter).
>
> If we want this separation, we would have to create some object
> (PeerConnectionFactory?) that would take the STUN/TURN server name
> as parameters, gather the candidates and generate a PeerConnection
> object with these candidates when required.
>
> This may be a Good Thing for other reasons (the rehydration case -
> reestablishing a connection when the user does "reload"), but does
> complicate the simple case.
>
> One issue with this is that a single preallocator can't do the right
> thing if you want to have multiple PeerConnections, or multiple
> unbundled m= lines.
If multiple local ports are needed (and the code seems to be simplest if
they are): yes, we need to allocate more than one port. That doesn't
mean that a preallocator can't do it, just that it needs to know how
many are needed.
>
> As an alternative, you could simply create a PeerConnection, call
> startIce to gather candidates (pre-call), and only getUserMedia/send
> the offer when you are ready to place the call.
Which made me realize that this isn't clear from the current drafts: If I do
pc = new PeerConnection()
pc.startIce()
<wait 3 seconds>
pc.CreateOffer()
will the created offer contain the candidates that have been generated?
If it does, it seems to me that people who don't need/can't use trickle
candidates don't need to handle the ICE machinery at all.
Harald
Received on Tuesday, 14 February 2012 14:08:15 UTC