Re: [rtcweb] Additional requirement - audio-only communication

Justin Uberti <> Fri, 26 August 2011 04:47 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9132221F87C9 for <>; Thu, 25 Aug 2011 21:47:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -104.856
X-Spam-Status: No, score=-104.856 tagged_above=-999 required=5 tests=[AWL=-0.546, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, SARE_HTML_USL_OBFU=1.666, USER_IN_WHITELIST=-100]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id S9DRXgUJMipS for <>; Thu, 25 Aug 2011 21:47:18 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id EF20A21F886F for <>; Thu, 25 Aug 2011 21:47:17 -0700 (PDT)
Received: from ( []) by with ESMTP id p7Q4mWMh029702 for <>; Thu, 25 Aug 2011 21:48:32 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; s=beta; t=1314334112; bh=ho0jqz8O9/inPBC7JnVDXqBQJU4=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=XDJP/YEfR446VXf08E0zJzyG+qvtizn9H1gzEXi7ahIB0eOQ0U8weiDBMw7IYOrXj b7nOT82Wm50lXZJb/mPjQ==
DomainKey-Signature: a=rsa-sha1; s=beta;; c=nofws; q=dns; h=dkim-signature:mime-version:in-reply-to:references:from:date: message-id:subject:to:cc:content-type:x-system-of-record; b=NmHO/U+bUUMVr1Llcl7nS0KaXAXXTXnR70KMlFt7VcYvevGkJbrnSlgnhRNMgigDO SZo24EPGApi0FBFgihgSw==
Received: from gwb1 ( []) by with ESMTP id p7Q4mAUX011795 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <>; Thu, 25 Aug 2011 21:48:30 -0700
Received: by gwb1 with SMTP id 1so2845416gwb.36 for <>; Thu, 25 Aug 2011 21:48:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=beta; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=wBzHnmsmmdOF+ONVI3soqBjzbWIi1dmNroM81I1gJK4=; b=xV87ygoQpp04PbUXuBpF/TFV3WTuG0Uo2dkoDHkbEB2u3fqVvLW6vBnK5C+chkBUvD hB//NDkqPbBaGjJy32Jw==
Received: by with SMTP id ls5mr630402icb.149.1314334108915; Thu, 25 Aug 2011 21:48:28 -0700 (PDT)
Received: by with SMTP id ls5mr630391icb.149.1314334108689; Thu, 25 Aug 2011 21:48:28 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Thu, 25 Aug 2011 21:48:08 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
From: Justin Uberti <>
Date: Fri, 26 Aug 2011 00:48:08 -0400
Message-ID: <>
To: "Timothy B. Terriberry" <>
Content-Type: multipart/alternative; boundary=90e6ba5bc137aa23fb04ab6141f6
X-System-Of-Record: true
Cc: "" <>,
Subject: Re: [rtcweb] Additional requirement - audio-only communication
X-Mailman-Version: 2.1.12
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: Fri, 26 Aug 2011 04:47:19 -0000

On Thu, Aug 25, 2011 at 8:01 PM, Timothy B. Terriberry <> wrote:

> Justin Uberti wrote:
>> I think it makes sense for the browser to emit capabilities, which could
> I agree there's clearly some gaps here that need to be filled.
>  then be used by the web app to generate a SDP offer or answer. This
>  The original problem that started this email is one specific example -
>> if the callee application wants to only receive audio, the application
>> can generate an audio-only SDP based on the offer, the browser
> I think the Harald's original problem was the other way around: the
> _caller_ wants to only receive audio, and needs to generate an SDP _offer_
> that says that, even if the browser is capable of receiving video. I don't
> think that invalidates your point, though.
>  capabilities, and the desired app behavior - without any new APIs in the
>> browser.
> But I'm not sure what you mean by "without any new APIs"... in your
> approach, something has to be able to enumerate the capabilities in
> sufficient detail for the webapp to generate SDP by itself. I don't think
> there are any existing APIs that go that far.

I meant, without specific APIs for that specific use case (i.e. "create an
audio-only offer"). We would need some sort of GetCapabilities API that
returned a blob of all the session description options the browser
supported, which probably could be formatted as a uber SDP offer if that
made parsing simplest.

> You also need an API to tell the browser what to actually do. The current
> PeerConnection approach is passing in the offer or the answer. If you're
> generating the answer, you need some way to tell your browser what you
> answered. For the "please don't send me video" case this is not an issue...
> it'll simply never arrive. If you want to change what the local browser is
> sending out, however, then it is.

Yes, you need a "HandleLocalDescription" and "HandleRemoteDescription" API,
instead of just a single OnSignalingMessage API. The deviation from the
current flow is fairly minor, you just have 2 additional states in the state

> I do agree it eliminates the need for an API to tell the browser what kind
> of SDP to generate, but it also seems like it imposes a pretty big burden on
> application developers: even if you keep the currently-proposed
> PeerConnection ability to generate SDP as the "simple API", the moment you
> want to do something slightly more complex, you have to add code to generate
> the appropriate SDP, which necessarily involves figuring out all the
> capabilities of the various browsers on various platforms. Maybe I'm naive
> in thinking that seems like an awful lot of work just to say, "Please don't
> send me video."

It's a fair point, there is more complexity involved in generating the
offer, but in our experience it is manageable. I suppose it depends on how
many APIs we decide we need to control the generation of SDP  (i.e. use
cases other than no-video). If we decide we need to control crypto,
resolution preference, codec preference, we may find this approach simpler.

> ______________________________**_________________
> rtcweb mailing list