Re: [rtcweb] Draft agenda for IETF 87

Peter Thatcher <pthatcher@google.com> Fri, 12 July 2013 17:19 UTC

Return-Path: <pthatcher@google.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F55B21E80B2 for <rtcweb@ietfa.amsl.com>; Fri, 12 Jul 2013 10:19:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.794
X-Spam-Level:
X-Spam-Status: No, score=-1.794 tagged_above=-999 required=5 tests=[AWL=-0.117, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pyIxa4jp84NL for <rtcweb@ietfa.amsl.com>; Fri, 12 Jul 2013 10:19:49 -0700 (PDT)
Received: from mail-pd0-x234.google.com (mail-pd0-x234.google.com [IPv6:2607:f8b0:400e:c02::234]) by ietfa.amsl.com (Postfix) with ESMTP id BAEAD21E80B6 for <rtcweb@ietf.org>; Fri, 12 Jul 2013 10:19:48 -0700 (PDT)
Received: by mail-pd0-f180.google.com with SMTP id 10so8727246pdi.11 for <rtcweb@ietf.org>; Fri, 12 Jul 2013 10:19:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=mAw9IPK2qxXxr/TUL+PwcAvoMb2dJJ7b+5DlvnQhm/I=; b=pKR8h2RVTOmBII5l/oAQsNybSjVOK9zmi8UCe1mCmaD1ZOZcnejlBsVbozc3tCHilt FHcLmg0FTZ6+UjgFiGTznuy9u5S6d3i+0X46Mf+SvMb4nPmCrE1ksQX+I+kv0tAfWZKW 6mi9t36Uk9EXT0CMLhzoHwU4xv/GyBPuDdOlKLITceMxII4AHJY5V7usAw+n27Qxa9zQ Un+pP7K/0MVrRcOrl99BXpwcvrvd6FyCuSyKTvcSGyQ0ZOscMUmgqGyRrSdkgvQ/TdPr T8rKFlhKFcRjPVsCIFaY6bJUZfyxOp/7kuMdV80ieBKQCstRYiPzFwvPXfx2FPijz6sH GHww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:x-gm-message-state; bh=mAw9IPK2qxXxr/TUL+PwcAvoMb2dJJ7b+5DlvnQhm/I=; b=HkrVGQ4ZuWL2uqLuRjvKNMIAhKpSmnyzLjbUR+KiAzl1wuMcVxOqogJ9rUOQeLvsZa RdR3Dip8vEB08r8GrVOTQIoFDiJrTrB9lj8rM9WFAJEKUyuY8BLVv0NAjOCMQhQSK3LU SyX6k8uM7iu6JXO+5jHbXjxthGHl/IyIbrMrWL3AajmqTmFWi39R4w2MOh734+4w+lzm OgX1hwnVbRJTgBGPPrTodlfbPu72gAKCi4+ip+/zDzevZVmZ3WJvoBbG0cx7ju8q7x/3 DWyqo/ro/9/UrCxx7H74jr+1txtzq20Ph9CsPFLIOBLq8szx/gWABagWYPCHUfoG/OHQ pdMw==
X-Received: by 10.68.213.5 with SMTP id no5mr42825743pbc.185.1373649586660; Fri, 12 Jul 2013 10:19:46 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.66.78.169 with HTTP; Fri, 12 Jul 2013 10:19:06 -0700 (PDT)
In-Reply-To: <1447FA0C20ED5147A1AA0EF02890A64B1C311367@ESESSMB209.ericsson.se>
References: <CA+9kkMBuCTdFsUMtmuBz6BnrSJMpHywEZU+x+m8ARnGprvzDzA@mail.gmail.com> <CAPvvaa+dyYmvsareEy1a9+7ketEFjNarsnRLXkpT_YHPTYni2w@mail.gmail.com> <C5E08FE080ACFD4DAE31E4BDBF944EB1135D31FD@xmb-aln-x02.cisco.com> <CABkgnnU9r9OT+XW=Ewf=25yBJGCEZxCVnu_r1D=Eu=f9wrV4Kg@mail.gmail.com> <1447FA0C20ED5147A1AA0EF02890A64B1C311367@ESESSMB209.ericsson.se>
From: Peter Thatcher <pthatcher@google.com>
Date: Fri, 12 Jul 2013 10:19:06 -0700
Message-ID: <CAJrXDUGg0mVgZMzYWkD7gfRrTVczf9zk6+LLvyZ8Vkci1Qn9Zw@mail.gmail.com>
To: Stefan Håkansson LK <stefan.lk.hakansson@ericsson.com>
Content-Type: multipart/alternative; boundary="e89a8fb20834a8c89004e153b7e7"
X-Gm-Message-State: ALoCoQmqZTKF9CXfnR5mCng4lpnjLTC4j5Wrk0E1Ru7pP1izgNjdcNH7f6KVtxDCDxj8Xyt6+DzKkOBNANoYWj/MUnHtmYQd39mCy/uSJ2qgaff2ocI/2nGXnChT/NlbHC+VXqBidVFTPuDE/j20K3gO3iTzhVZ6eYy3GPdpav6GKRnp8/Hzw5/WTjaDoneHRot+hxe0TdvI
Cc: "Cullen Jennings (fluffy)" <fluffy@cisco.com>, "<rtcweb@ietf.org>" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Draft agenda for IETF 87
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
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: Fri, 12 Jul 2013 17:19:50 -0000

On Fri, Jul 12, 2013 at 12:35 AM, Stefan Håkansson LK <
stefan.lk.hakansson@ericsson.com> wrote:

> On 7/11/13 9:38 PM, Martin Thomson wrote:
> > On 11 July 2013 12:04, Cullen Jennings (fluffy) <fluffy@cisco.com>
> > wrote:
> >> On Jul 11, 2013, at 10:35 AM, Emil Ivov <emcho@jitsi.org>
> >>> In you last mail on the subject you mentioned that we will be
> >>> discussing No Plan in Berlin together with plans A and B. Could
> >>> we please add this to the agenda?
> >>
> >> No. We believe that conversation needs to happen in the W3C WebRTC
> >> WG. I expect to see a message from W3C chairs on this at some
> >> point.
> >
> > I'm a little nervous about this.  Where does the decision on the
> > separation of responsibilities (API vs. SDP) get made?
>
> (I have not been able to confer with any of the other chairs, so this is
> just my personal opinion):
>
> To me it seems pretty straightforward to a certain point:
>
> * The SDP (if we opt to continue using SDP for this purpose) that goes
> on the signaling wire between the browsers is defined by IETF (and by
> the rtcweb WG I presume even though MMUSIC seems to have some stake)
>
> * JS APIs to:
> ** Apply an SDP (e.g. received on the signaling channel) to the browser
> ** Hand an SDP generated by the browser over to the application (for
> transmission over the signaling wire presumably)
> ** Influencing/modifying the contents of the SDP
> * All belongs to the W3C WebRTC
>

Would it make sense to change this list to say the following?

* JS APIs to:
** Apply a SessionDescription (created by SDP; eg received on the signaling
channel or built by JS) to the browser
** Hand a SessionDescription (serializable to SDP) generated by the browser
over to the application (for
transmission over the signaling wire presumably or for immediately applying
with setLocalDescription for some local effect)
** Influencing/modifying the contents of the SessionDescription (and thus,
SDP, when serialized to SDP)
* All belongs to the W3C WebRTC


My changes highlight a few things:
1.  The API (setLocalDescripiton, setRemoteDescription, creatOffer, etc)
doesn't work with SDP directly.  It works with RTCSessionDescription
objects.  It just happens to be that currently the only way to interact
with RTCSessionDescription objects is through SDP.  I think it's worth
remembering that distinction.

2.  SDP does not necessarily go over the wire.   It only necessarily goes
through the API between JS and browser.   I think it's worth remembering
that distinction.

3.  Calling setLocalDescription with a new SessionDescription object can
have purely local effects that don't need to be sent over the wire.  I
think it's worth remembering those cases.



>
> What seems unclear to me is where we define what modifications to the
> SDP that are allowed - and when. Even though the ambition is to have
> APIs that makes SDP mangling an exception, we will still see that
> happening.
>

I think advanced JS apps are going to use every control knob they can get
to, whether it's anticipated and well-supported or not.    I think there's
a good chance that a a popular WebRTC web app will use some SDP mangling
that wasn't anticipated, but happened to work, but then the browser can't
remove it because it will break certain websites.  It could get even worse
if someone writes a popular WebRTC wrapper library that uses tricky SDP
mangling that is then used by lots of websites.  Certain SDP mangling
techniques might end up becoming a defacto standard API that can't be
removed, even if it was originally a bug.  Or worse, one browser will have
to implement the SDP mangling or even the bugs of another, because WebRTC
apps have come to rely on them.

In fact, it's already the case that Chrome and Firefox support far
different SDP manglings.  I don't think any web apps rely on that yet, but
it's only a matter of time before someone figures out "hey, if I mangle the
SDP on this browser this way and on that browser that way, I can do things
I couldn't do otherwise".  Or worse, an advanced web app developer says
"hey, I can make this work well on browser X via SDP mangling, but not on
browser Y, so I'll put a 'best used with Browser X' icon on my website".
Then that someone writes an abstraction on top of that, and then maybe
shares that with others, and it goes from there.

I think we're in a race with web developers to see if they'll figure out
SDP mangling before we provide a way to avoid SDP mangling.   Who do you
think moves faster?










>
> > _______________________________________________ rtcweb mailing list
> > rtcweb@ietf.org https://www.ietf.org/mailman/listinfo/rtcweb
> >
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb
>