Subject: [rtcweb] JSEP-24: canTrickleIceCandidiates question

From: Christer Holmberg <[email-masked]>
Date: Mon, 8 Jan 2018 11:39:05 +0000

Hi,

The W3C WebRTC spec says:

       "The canTrickleIceCandidates attribute indicates whether the remote
peer is able to accept trickled ICE candidates [TRICKLE-ICE
<https://www.w3.org/TR/webrtc/#bib-TRICKLE-ICE>]. The
        value is determined based on whether a remote description
indicates support for trickle ICE, as defined in [JSEP
<https://www.w3.org/TR/webrtc/#bib-JSEP>] (section 4.1.15.
        
<https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-4.1.15>).
Prior to the completion of setRemoteDescription
<https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-setremotedescription>,
 
        this value is null.²

JSEP-24 says:

        "null:  No SDP has been received from the other side, so it is not
         known if it can handle trickle.  This is the initial value before
         setRemoteDescription() is called.²

         (Basically repeating the W3C text)

         Šand:

        "However, applications can use the canTrickleIceCandidates
property to determine whether their peer can
         actually do Trickle ICE, i.e., whether it is safe to send an
initial offer or answer followed later by
         candidates as they are gathered. As "true" is the only value that
definitively indicates remote
         Trickle ICE support, an application which compares
canTrickleIceCandidates against "true" will by default
         attempt Half Trickle on initial offers and Full Trickle on
subsequent interactions with a Trickle ICE-compatible
         agent.²

QUESTION: Since the value will be NULL before completion of
setRemoteDescription (before SDP has been received from the other side)
how can the value be used by applications for initial offers?

Regards,

Christer

---

From: Philipp Hancke <[email-masked]>
Date: Mon, 8 Jan 2018 13:13:00 +0100

[...]

> how can the value be used by applications for initial offers?

https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates
shows some of the thinking around this. The code *should* work for the 
offerer side as well and will create a half-trickle offer.

---

From: Christer Holmberg <[email-masked]>
Date: Mon, 8 Jan 2018 12:22:01 +0000

Hi Philipp,

>shows some of the thinking around this.

Correct. But, the page also covers the case when a remote offer has been
received (the application acts as answerer), and setRemoteDescription() is
called.

> The code *should* work for the offerer side as well and will create a
>half-trickle offer.

My understanding is that the value will be NULL when the offerer creates
the initial offer, as setRemoteDescription() has not yet been called.

Regards,

Christer