Re: [rtcweb] When are ICE candidates added to the SDP

Harald Alvestrand <harald@alvestrand.no> Mon, 12 May 2014 13:51 UTC

Return-Path: <harald@alvestrand.no>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9EF801A070E for <rtcweb@ietfa.amsl.com>; Mon, 12 May 2014 06:51:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.55
X-Spam-Level:
X-Spam-Status: No, score=-2.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.651] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DRqZrhzLE7yV for <rtcweb@ietfa.amsl.com>; Mon, 12 May 2014 06:51:41 -0700 (PDT)
Received: from mork.alvestrand.no (mork.alvestrand.no [158.38.152.117]) by ietfa.amsl.com (Postfix) with ESMTP id C8F671A06FA for <rtcweb@ietf.org>; Mon, 12 May 2014 06:51:40 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mork.alvestrand.no (Postfix) with ESMTP id 2C2C17C0920 for <rtcweb@ietf.org>; Mon, 12 May 2014 15:51:34 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at alvestrand.no
Received: from mork.alvestrand.no ([127.0.0.1]) by localhost (mork.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F-H-4zxvQ+l1 for <rtcweb@ietf.org>; Mon, 12 May 2014 15:51:32 +0200 (CEST)
Received: from [172.28.249.97] (unknown [74.125.57.89]) by mork.alvestrand.no (Postfix) with ESMTPSA id 2A19A7C00E1 for <rtcweb@ietf.org>; Mon, 12 May 2014 15:51:32 +0200 (CEST)
Message-ID: <5370D1E3.7040809@alvestrand.no>
Date: Mon, 12 May 2014 15:51:31 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <CABcZeBNUTf42tS9FrjS9Q6Zk8LBkhpKOR1z2v8MHoeNEUf93Mw@mail.gmail.com> <56C2F665D49E0341B9DF5938005ACDF82F69E8@DEMUMBX005.nsn-intra.net> <CABcZeBO1Z0SnTUixjV09ekw-mb=YyzHjOV-b-MMUZy7sx32h6Q@mail.gmail.com>
In-Reply-To: <CABcZeBO1Z0SnTUixjV09ekw-mb=YyzHjOV-b-MMUZy7sx32h6Q@mail.gmail.com>
X-Enigmail-Version: 1.6
Content-Type: multipart/alternative; boundary="------------030406010100040407050603"
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/mP8YAm_VqnCiAyZCuRs0AY_myiA
Subject: Re: [rtcweb] When are ICE candidates added to the SDP
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 May 2014 13:51:46 -0000

On 05/12/2014 02:39 PM, Eric Rescorla wrote:
>
>
>
> On Mon, May 12, 2014 at 2:03 AM, Rauschenbach, Uwe (NSN - DE/Munich)
> <uwe.rauschenbach@nsn.com <mailto:uwe.rauschenbach@nsn.com>> wrote:
>
>     Hi Eric, all,
>
>      
>
>     Is the consequence of "always trickle" that ICE candidates have to
>     be added by non-trickling applications via SDP manipulation?
>
>     I consider this indeed quite inconvenient for non-trickling
>     applications.
>
>
> So, my understanding was that we had agreed that no candidates would
> be available in the first CreateOffer() no matter how many candidates were
> in the pool.
>
> The intent of this message is to ask if that is useful.

If an application is written as

1) CreateOffer()
2) wait for the end of candidates callback
3) negotiate

then I would think it might have trouble if all the candidates are
present in the SDP, and therefore no callbacks were called.
Solution: Always fire the end of candidates callback after calling the
success callback, even if all candidates are in the SDP already.


>
> -Ekr
>
>     A way out would be that the SDP always contains the candidates
>     collected so far (as currently defined in the JSEP snippet cited),
>
>     or that a switch in the API allows an application to configure the
>     behavior when adding ICE candidates.
>
>      
>
>     Kind regards,
>     Uwe
>
>      
>
>      
>
>     *From:*rtcweb [mailto:rtcweb-bounces@ietf.org
>     <mailto:rtcweb-bounces@ietf.org>] *On Behalf Of *ext Eric Rescorla
>     *Sent:* Monday, May 12, 2014 8:52 AM
>     *To:* rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>     *Subject:* [rtcweb] When are ICE candidates added to the SDP
>
>      
>
>     See: https://github.com/rtcweb-wg/jsep/issues/11
>
>      
>
>     Section 3.4 reads:
>
>      
>
>     When a new ICE candidate is available, the ICE Agent will notify the
>
>     application via a callback; these candidates will automatically be
>
>     added to the local session description. When all candidates have
>
>     been gathered, the callback will also be invoked to signal that the
>
>     gathering process is complete.
>
>      
>
>     However, we agreed in London that we would do "always trickle", and
>
>     that even if there were candidates available at the time when
>     CreateOffer
>
>     (because of candidate pooling) was called, they would not be included
>
>     in the initial offer. Consider the following sequence of events.
>
>      
>
>     0. pc = new RTCPeerConnection();
>
>     1. pc.AddStream(stream);
>
>     2. pc.CreateOffer();
>
>     3. CreateOffer callback fires with offer A, and you call
>     SetLocalDescription();
>
>     4. onicecandidate fires with candidate X.
>
>     5. pc.CreateOffer()
>
>     6. CreateOffer callback fires with offer B.
>
>     7. onicecandidate fires with null.
>
>      
>
>     So, in London, I think we agreed that offer A would have no
>     candidates.
>
>     The above text implies that if you were to examine
>     localdescription prior
>
>     to step #5 or at step #7 it would contain candidate X, and
>     probably that offer B would
>
>     also contain candidate X.
>
>      
>
>     Note that it's quite inconvenient for non-trickle applications to
>     never
>
>     have any candidates in the SDP, especially after gathering is
>     completed
>
>     at step #7. However it also seems kind of inconsistent to only
>     update the
>
>     candidates after SetLocal() has been called.
>
>      
>
>     -Ekr
>
>      
>
>
>
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb


-- 
Surveillance is pervasive. Go Dark.