Re: [rtcweb] codec and connection negotiation

Bernard Aboba <bernard_aboba@hotmail.com> Tue, 09 August 2011 16:18 UTC

Return-Path: <bernard_aboba@hotmail.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 BD1A621F8C91 for <rtcweb@ietfa.amsl.com>; Tue, 9 Aug 2011 09:18:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.598
X-Spam-Level:
X-Spam-Status: No, score=-102.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, USER_IN_WHITELIST=-100]
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 yToj3DKjbo+6 for <rtcweb@ietfa.amsl.com>; Tue, 9 Aug 2011 09:18:57 -0700 (PDT)
Received: from blu0-omc3-s16.blu0.hotmail.com (blu0-omc3-s16.blu0.hotmail.com [65.55.116.91]) by ietfa.amsl.com (Postfix) with ESMTP id 53E7721F8C95 for <rtcweb@ietf.org>; Tue, 9 Aug 2011 09:18:57 -0700 (PDT)
Received: from BLU152-W8 ([65.55.116.72]) by blu0-omc3-s16.blu0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 9 Aug 2011 09:19:22 -0700
Message-ID: <BLU152-W814CABC63B3BA452802C193200@phx.gbl>
Content-Type: multipart/alternative; boundary="_289bc24c-899c-4800-ae40-5d829d4ce612_"
X-Originating-IP: [74.92.226.89]
From: Bernard Aboba <bernard_aboba@hotmail.com>
To: pkyzivat@alum.mit.edu, rtcweb@ietf.org
Date: Tue, 09 Aug 2011 09:19:21 -0700
Importance: Normal
In-Reply-To: <4E40335A.3090204@alum.mit.edu>
References: <4E3C377A.5090105@skype.net> <4E3C3C2C.4020808@skype.net>, <4E3FE002.4060006@alvestrand.no>, <4E40335A.3090204@alum.mit.edu>
MIME-Version: 1.0
X-OriginalArrivalTime: 09 Aug 2011 16:19:22.0446 (UTC) FILETIME=[193B6EE0:01CC56B0]
Subject: Re: [rtcweb] codec and connection negotiation
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: Tue, 09 Aug 2011 16:18:58 -0000

I think we have to distinguish between the use of SDP in the API versus use in signaling.  

When you say "attempting to do something like that again", I presume that you are referring to an attempt to develop a replacement for SDP that would be used on the wire between an RTCWEB implementation and a legacy implementation.   Given that legacy implementations won't support a replacement, it's hard to argue against use of SDP in that context. 

However, that doesn't necessarily argue for use of SDP (or something semantically equivalent) in the API.   The danger we face in adopting SDP within the API is we will be saddled with the limitations of SDP while not making use of all of its capabilities.  We saw hints of this already in the IETF 81 discussion -- where questions arose as to whether the JSON SDP blob was opaque or editable, how faithful the API is to existing SDP usage (including offer/answer, ICE), etc.   As a data point, I'd note that few if any of the existing Web-based realtime APIs have chosen to utilize the SDP format, and that attempts to "profile" SDP usage to avoid corner cases have encountered issues, particularly when dealing with PSTN interop.  


> Date: Mon, 8 Aug 2011 15:04:58 -0400
> From: pkyzivat@alum.mit.edu
> To: rtcweb@ietf.org
> Subject: Re: [rtcweb] codec and connection negotiation
> 
> I also have some observations, without conclusions, on this decision:
> 
> SDP o/a has some well known limitations. It would be nice if rtcweb was 
> not saddled with them. For instance, the offer can list multiple codecs, 
> but the answerer is free to accept more than one. In that case any of 
> those in both offer and answer can be used. But there are UAs that 
> support multiple codecs, but only one at a time. O/A doesn't support 
> that well.
> 
> Unfortunately, relaxing the limitations may break interoperation with 
> non-rtcweb devices. For instance if you have an rtcweb client initiating 
> a call to a pstn destination, the gateway will likely have the limitation.
> 
> Querying for capabilities before initiating a call could, in *some* 
> cases transcend that incompatibility. But not always. In general it 
> isn't easy to guarantee that the UA you reach with a query will be the 
> same one you reach when you try to establish a call. If not, the 
> capabilities may be wrong.
> 
> SDP has needed modernizing for ages. But SDPng went down in flames. 
> Attempting to do something like that again would probably not be a good 
> plan for rtcweb.
> 
> It might be easier to go with SDP and o/a in order to ease interop, and 
> at the same time provide a capability query mechanism, also built on SDP 
> that could be used optionally, with the understanding that it might not 
> be available in all cases.
> 
> 	Thanks,
> 	paul
> 
> 
> On 8/8/11 9:09 AM, Harald Alvestrand wrote:
> > Trying to doodle on the opinions (the alternative lists were quite
> > useful to clear the mind - I liked them a lot, and will return to them!)
> >
> > On 08/05/11 20:53, Matthew Kaufman wrote:
> >> Now, to follow up on my previous message with a bit of opinion...
> >>
> >> I think we should not use SDP as the API, and we should not have the
> >> browser implementing SDP offer-answer.
> >>
> >> 1. If SDP offer-answer is all that is available to the Javascript
> >> programmer (and server programmer), it becomes very difficult to know
> >> what the full capability set is without complex probing. This
> >> significantly complicates the building of future innovative
> >> applications on top of the browser as platform. Many of the current
> >> applications that show off browser capabilities do so by using
> >> capabilities that were already present for other reasons, and we can
> >> expect the same innovation to occur here, if we provide the tools.
> > This may be heretical ... but do we actually need to enumerate all
> > capabilities?
> > It seems to me that we'll have exactly 2 groups of capabilities:
> > - Routine ones, which are generated automagically when saying "I want
> > something working"
> > - Ones needed to "show off" specific new capabilities
> >
> > The platforms, which are likely reusing code from outside WebRTC, may
> > support many capabilities that are never required for any scenario
> > (especially those that have been added over the years to support
> > backwards compatibility in very baroque scenarios). Exposing those will
> > just add clutter, not add quality.
> >
> > The "show-offs" will be capable of probing.
> >>
> >> 2. Using SDP offer-answer has the advantage of reusing all the IETF
> >> standards work that occurs to define SDP when a new codec comes along.
> >> But it also has the *disadvantage* of having to wait for the IETF to
> >> produce these standards, which may be incomplete, or unable to control
> >> parameters which are necessary for web applications.
> > Hmmm.... since when have people *actually* waited for the IETF process
> > to finish before starting to use newly defined capabilities?
> > This may argue for looking again at the IANA procedures for SDP, and
> > institute something like the "provisional registries" that were
> > introduced for email/web.
> >>
> >> 3. Anything that is missing in SDP (example: forcing the Opus codec to
> >> "music" mode for encoding) will still need to be exposed as a
> >> Javascript API on the encoder. Thus we end up with a mix of
> >> possibly-conflicting settings that are adjusted via the explicit API
> >> and the opaque SDP API.
> > Won't these be things people want in SDP too? See above.
> >>
> >> 4. Other work in browsers (like recording camera and microphone to
> >> disk) will require the ability to directly control the encoders. If
> >> these APIs exist then there will definitely be conflicting settings.
> >> What happens if you feed in an SDP answer that requires VP8 encoding
> >> and then set the encoder to H.264 mode via the Javascript?
> > Transcoding? :-)
> > The same problem exists today when trying to use cameras for multiple
> > things concurrently.
> >>
> >>
> >> Matthew Kaufman
> >> _______________________________________________
> >> 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
> >
> 
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb