Re: [rtcweb] codec and connection negotiation

Paul Kyzivat <pkyzivat@alum.mit.edu> Mon, 08 August 2011 19:04 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 46D7A21F8C5B for <rtcweb@ietfa.amsl.com>; Mon, 8 Aug 2011 12:04:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.577
X-Spam-Level:
X-Spam-Status: No, score=-2.577 tagged_above=-999 required=5 tests=[AWL=0.022, BAYES_00=-2.599]
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 LVVybPyF+Y6g for <rtcweb@ietfa.amsl.com>; Mon, 8 Aug 2011 12:04:33 -0700 (PDT)
Received: from qmta09.westchester.pa.mail.comcast.net (qmta09.westchester.pa.mail.comcast.net [76.96.62.96]) by ietfa.amsl.com (Postfix) with ESMTP id 5E9A021F8C51 for <rtcweb@ietf.org>; Mon, 8 Aug 2011 12:04:33 -0700 (PDT)
Received: from omta22.westchester.pa.mail.comcast.net ([76.96.62.73]) by qmta09.westchester.pa.mail.comcast.net with comcast id HusV1h0031ap0As59v50E3; Mon, 08 Aug 2011 19:05:00 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([24.62.109.41]) by omta22.westchester.pa.mail.comcast.net with comcast id Hv4z1h00W0tdiYw3iv50o7; Mon, 08 Aug 2011 19:05:00 +0000
Message-ID: <4E40335A.3090204@alum.mit.edu>
Date: Mon, 08 Aug 2011 15:04:58 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:5.0) Gecko/20110624 Thunderbird/5.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <4E3C377A.5090105@skype.net> <4E3C3C2C.4020808@skype.net> <4E3FE002.4060006@alvestrand.no>
In-Reply-To: <4E3FE002.4060006@alvestrand.no>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
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: Mon, 08 Aug 2011 19:04:34 -0000

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
>