Re: [rtcweb] Proposal to break the ICE impasse

Eric Rescorla <> Tue, 29 January 2019 21:53 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0F78F130DE3 for <>; Tue, 29 Jan 2019 13:53:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.041
X-Spam-Status: No, score=-2.041 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id QEghcw53ixLj for <>; Tue, 29 Jan 2019 13:53:24 -0800 (PST)
Received: from ( [IPv6:2a00:1450:4864:20::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id CA683130DC9 for <>; Tue, 29 Jan 2019 13:53:23 -0800 (PST)
Received: by with SMTP id s5-v6so18845870ljd.12 for <>; Tue, 29 Jan 2019 13:53:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pQdJKpwH+UEDTSYRZDw7zs+NLGIYi6Lz0IoURVPPXLg=; b=P2DK9/KHo2NFdz7TibeRgKIGr+UGanTGmVGgygzxa2DNy3fQYcOInqvhZJQiXIgG+w uA6erO1YIq21Mfe3lp4VoVgxGakpsKKsxFRlblQCkmVcxOdnSxcm2pySiIhYI7UfcIal RUvxAWK1hn+vskT/5K/5AvSsyFmb0aJgWdp9ppt4eElIvVZR1wWf9//plN3GUItgSqtK T0+TdYuG5ZSZl6KfLcML+ch7aXniT2wr0NKL7+L/PfAKKMxZ5RX0HsbP1EPUqWdv3pbC QvGN/TE5uUL82wLKPkUfw+PhGYKx21Ulhu+0PEPmpXkj/rtJ4ifBfUklKgBCLlJvA5DM tIdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pQdJKpwH+UEDTSYRZDw7zs+NLGIYi6Lz0IoURVPPXLg=; b=AzD0s1aglPnkfgTC6Ltj0GHq11fG4GO4gw7i/nXt4bqYVC4lQPUnn16xlTbzdKh8RP hdChhQgHMuOpFosb7SmAv4rfv8Ys43xTrpk8dk2I2yLzWEmh+5HUdVTR1rA8iqcMG/oB 1BXLVAh/BGmKKcm03L838/x2Hb+sA24LYYZsbwQ1aL5dglNFDFvbatE/iPXqoRd8GSSd 0TxVDj76kAagvdS5J3jmZGDEsOZZt1CO6bo3AT9OE/m9h9j1ULlq7242g6sUNv6s1Cb7 C6GgQpTZchzWzWi0zHaap18QEuerVYGv1CnOIRnsUq/V94D+EwkDc+PM6NuUxfri+3Se DsMg==
X-Gm-Message-State: AJcUukdOjULSr1eZESjVCGrlMJpSGP18ozFjcsBosWnN4mOfLM8wQmdj rQgXps7gQdNdE3uRvXp8mTwDa0dNRLyoyDVIOwWF+fsh
X-Google-Smtp-Source: ALg8bN5aRP+sqY/Buzp5LBGTEwW2bOo4W6EhwmvyEXPr1X/PLaIcwa9MsXPDYOEZhiNXy77EEhl7hPbLbwoonnmXXik=
X-Received: by 2002:a2e:95c6:: with SMTP id y6-v6mr19985769ljh.59.1548798801914; Tue, 29 Jan 2019 13:53:21 -0800 (PST)
MIME-Version: 1.0
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
From: Eric Rescorla <>
Date: Tue, 29 Jan 2019 13:52:43 -0800
Message-ID: <>
To: Roman Shpount <>
Cc: Iñaki Baz Castillo <>, RTCWeb IETF <>
Content-Type: multipart/alternative; boundary="0000000000006ac15f05809fd257"
Archived-At: <>
Subject: Re: [rtcweb] Proposal to break the ICE impasse
X-Mailman-Version: 2.1.29
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, 29 Jan 2019 21:53:26 -0000

On Tue, Jan 29, 2019 at 11:28 AM Roman Shpount <> wrote:

> On Tue, Jan 29, 2019 at 2:05 PM Iñaki Baz Castillo <> wrote:
>> I understand your point. But still I don't understand the purpose of the
>> new draft (set TCP/DTLS/etc in proto line if there are just TCP candidates
>> in the offer).
> The purpose is standard compliance. If nominated candidate is UDP, proto
> line should be UDP. If nominated candidate is TCP, proto line should be
> TCP. If you do not care about the c= and m= line, put the dummy values and
> UDP there, but this breaks legacy interop by causing ICE mismatch.

This is two separate statements that don't necessarily follow form each

1. This is a matter of standards compliance.
2. It breaks legacy interop

I agree on point (1). I'm still waiting for someone to demonstrate point (2)


Putting UDP proto and address from TCP candidate breaks legacy interop as
> well, but it is typically localized to provider managed server, so it is
> possible to patch around this either in JS client or on the server to treat
> WebRTC clients differently. Alternatively, WebRTC clients can add a couple
> lines of code and become compliant with the RFC they decided to implement
> and remove the need for patching.
> Of course, if browser follow the ICE spec and set the selected candidate
>> in the c/m lines, they must also indicate whether that is over UDP or TCP.
>> The problem here is what such a proto line is intended to mean when there
>> is ICE candidates of UDP and TCP. But ok, let's assume that browser do
>> update c/m lines in the trigger with the selected candidate, and they JUST
>> change the proto line to TCP/DTLS if there are just TCP candidates. Now
>> thing about this scenario:
>> 1) Client initial offer with UDP and TCP candidates.
>> 2) Server answers with both UDP and TCP candidates.
>> 3.1) UDP is selected. Re-offer is created with just UDP candidates (as
>> per spec).
>> 3.2) or TCP is selected. Re-offer is created with just TCP candidates (as
>> per specs).
>> In both 3.1 and 3.2 the "monitoring Node" doesn't need to inspect the
>> proto line. It can just check the protocol (UDP or TCP) of *any* candidate
>> in the offer to know whether UDP or TCP was selected.
>> Am I wrong?
> You are correct. Checking c= and m= line is simply to avoid checking and
> parsing ICE candidates. If monitoring client would handle ICE candidates,
> then the monitoring client would still need to figure out which candidate
> is default to record client media IP. Keeping c= and m= line in sync with
> default candidate on the client seemed to cause the least amount of
> problems which is why it was left in ice-sip-sdp.
> Regards,
> _____________
> Roman Shpount
> _______________________________________________
> rtcweb mailing list