Re: [rtcweb] Low Level Javascript API Proposal avail on the webrtc list

Matthew Kaufman <> Wed, 05 October 2011 02:35 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 7832921F8BAB for <>; Tue, 4 Oct 2011 19:35:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -5.493
X-Spam-Status: No, score=-5.493 tagged_above=-999 required=5 tests=[AWL=0.806, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id eR+y1D05cDNj for <>; Tue, 4 Oct 2011 19:35:57 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 7B08721F8B55 for <>; Tue, 4 Oct 2011 19:35:57 -0700 (PDT)
Received: from (localhost []) by (Postfix) with ESMTP id B8B8316F6; Wed, 5 Oct 2011 04:39:03 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed;; h=message-id :date:from:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; s=mx; bh=ApUzifAnkTMACW HoDT1B28vThQo=; b=oDA5mcPKLyS3a2Ly0VBTxN1ojGi9uIN22WIE6YOSWitURu lOweo8fLEbss/Ps84z11O3l1cMNQfM300kbgq0s5/sT1O/q90MVS6WBgt7gxYvM3 LzWEMMMIZSslXCD0Ivk18yebSCxLMYafINkys2c1ZKbBJknblyTE8ZrE95paY=
DomainKey-Signature: a=rsa-sha1; c=nofws;; h=message-id:date:from :mime-version:to:cc:subject:references:in-reply-to:content-type: content-transfer-encoding; q=dns; s=mx; b=CUqI6VYdSf/yBvuCYyGLeq ayN2LXoU3FEDGLuX0PuHlkO90Fr9qc8mYU6HdkRYDAnEEerrZ54h7r8wlQzzEwy/ bOLIIWCiPBFmguNA5nkd0SdNKva+44fmWzCuXfmnduwebR3t8J442K6kWbRBUxVz xUT7yYN0QUGCi2y2ZaEa4=
Received: from ( []) by (Postfix) with ESMTP id B325C7F6; Wed, 5 Oct 2011 04:39:03 +0200 (CEST)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 8FB7C3506EF4; Wed, 5 Oct 2011 04:39:03 +0200 (CEST)
X-Virus-Scanned: amavisd-new at
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id MOi1TGWrz7PD; Wed, 5 Oct 2011 04:39:02 +0200 (CEST)
Received: from [] (unknown []) by (Postfix) with ESMTPSA id 188B53506E4D; Wed, 5 Oct 2011 04:39:01 +0200 (CEST)
Message-ID: <>
Date: Tue, 04 Oct 2011 19:37:48 -0700
From: Matthew Kaufman <>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1
MIME-Version: 1.0
To: Iñaki Baz Castillo <>
References: <> <>
In-Reply-To: <>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Subject: Re: [rtcweb] Low Level Javascript API Proposal avail on the webrtc list
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: Wed, 05 Oct 2011 02:35:58 -0000

On 9/30/2011 12:46 PM, Iñaki Baz Castillo wrote:
> 2011/9/28 Tim Panton<>:
>> I just want to ask folks to take a look at a proposal Neil Stratford wrote for the
>> Low Level Javascript API and sent to the webrtc list.
>> It  is based on his and my experience of web based audio plugins and on a
>> proposal of Cullen's a while back.
>> We'd appreciate any feedback either here or on the webrtc list as appropriate.
> Hi, the API in that document is just valid for a few specific
> scenarios (make a call, receive a call and maybe putting a session on
> hold).

Totally disagree. The API in that document can be used to build every 
single VoIP application you can build with SIP *plus a bunch more*.

This is like claiming that DirectSound is "just valid for a few specific 
scenarios" when in fact it is a low-level audio API for Win32 systems 
that can be used to build pretty much anything that wants to play sound.

>   That is a very limited subset of what any VoIP protocol can
> offer, so I don't think it's a good idea for rtcweb to assume a custom
> protocol like that for inclusion in WebRTC JS API (as native JS code
> within the browser).

I think you're saying that the JS API should be some existing protocol 
standard like SIP and SDP here, yes?

It is much easier to discuss if we keep "the wire protocol" and "the JS 
API" separate... and realize that just like my above Win32 example, a 
"low level" JS API could in fact be used in conjunction with *any* wire 
protocol (that you can send/receive within the browser context) plus 
server behavior.

This is also true of the "high level" JS API proposals... it is just 
more annoying, as you need to do things like trick them into generating 
an SDP offer, then decode it locally or send it to a server for 
processing, and then kill that and start the actual connection you 
wanted while lying to the browser about what the other end has claimed.

I'd rather have the API that lets me do what I want directly.

> Of course, a simple API like that would be useful for lot of people
> offering basic media services to the web site users (basic scenarios
> in which there is no call transfer, parallel forking and so).

Yes. And it would also be useful for people offering all types of 
complex telephony services, including call transfer, parallel forking, 
and the like... as well as all types of complex *non-telephony* RTC 
applications, like games.

Matthew Kaufman