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

"Rauschenbach, Uwe (NSN - DE/Munich)" <> Tue, 13 May 2014 06:06 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 272C61A0845 for <>; Mon, 12 May 2014 23:06:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.901
X-Spam-Status: No, score=-6.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id diKdmt9APCGq for <>; Mon, 12 May 2014 23:06:07 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id C7A541A0842 for <>; Mon, 12 May 2014 23:06:05 -0700 (PDT)
Received: from ([]) by (8.14.3/8.14.3) with ESMTP id s4D65tI9002593 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 13 May 2014 06:05:55 GMT
Received: from ([]) by ( with ESMTP id s4D65sN6002339 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 13 May 2014 08:05:54 +0200
Received: from ( by ( with Microsoft SMTP Server (TLS) id; Tue, 13 May 2014 08:05:54 +0200
Received: from ([]) by ([]) with mapi id 14.03.0181.006; Tue, 13 May 2014 08:05:54 +0200
From: "Rauschenbach, Uwe (NSN - DE/Munich)" <>
To: ext Martin Thomson <>
Thread-Topic: [rtcweb] When are ICE candidates added to the SDP
Date: Tue, 13 May 2014 06:05:54 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: de-DE, en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-purgate-type: clean
X-purgate-Ad: Categorized by eleven eXpurgate (R)
X-purgate: clean
X-purgate: This mail is considered clean (visit for further information)
X-purgate-size: 2386
X-purgate-ID: 151667::1399961155-00001326-435AA7DC/0/0
Cc: "" <>
Subject: Re: [rtcweb] When are ICE candidates added to the SDP
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 13 May 2014 06:06:09 -0000

> -----Original Message-----
> From: ext Martin Thomson []
> On 12 May 2014 20:46, Rauschenbach, Uwe (NSN - DE/Munich)
> <> wrote:
> >
> > A question on step 6 and your statement below the sequence: What would
> be the difference between an SDP created by pc.createOffer in step 6 and
> one obtained by getting pc.localDescription in step 6?
> The difference is that the second contains candidates.

Uwe: Then, let me elaborate a bit more.

Obviously, we need an SDP reflecting the local configuration for two purposes:
1) To feed it to setLocalDescription in order to start the ICE gathering
2) To send it as an offer to the other peer

The name "createOffer" implies that the SDP delivered as the result of createOffer is the one to use as an offer in negotiation. Looking at the way this mechanism has evolved, this is probably only true anymore if one is prepared to send the offer immediately, and then to trickle ICE candidates. To obtain an SDP to use as an offer in negotiations without trickle ICE, one has to call setLocal, wait for "end of candidates" and then read pc.localDescription.

So "createOffer" in fact does not create an offer, but an initial (or updated) local description that is then fed into setLocalDescription to start the ICE gathering.

Do you agree with this observation? If you do, shouldn't we rename createOffer to something more generic like "createLocalDescription" or similar? "createOffer" does not create the offer (at least it does not do so in case of non-trickling) but the input to setLocal...

> > Why do you consider multiple pc.createOffer calls nasty?
> They aren't convenient.  You risk mistakes.