Re: [rtcweb] New Draft - WebRTC JS Object API Model

Iñaki Baz Castillo <> Mon, 01 July 2013 17:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C75B611E81D5 for <>; Mon, 1 Jul 2013 10:22:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.617
X-Spam-Status: No, score=-2.617 tagged_above=-999 required=5 tests=[AWL=0.060, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cckAI+pYuo+W for <>; Mon, 1 Jul 2013 10:22:45 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 8F24D11E81B0 for <>; Mon, 1 Jul 2013 10:22:45 -0700 (PDT)
Received: by with SMTP id hu16so2233555qab.1 for <>; Mon, 01 Jul 2013 10:22:45 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=B/1ySWpRa+m0kH2oh2UXcmM9HGNKhf1pBe7wBZ4v8rA=; b=IQdhkzNCsFK4cBRCCeypAin2833H8paixcXeEFPq2eiNKUtzvulg2Zik4A8erjEoh+ yF33DBZKo8AYtiFbVC7YsCS3QejMZeb70U5UJPhin7DWNxGfcWqt3PwfLX/gLnIAnWl9 JO/cm3JN0gchySU3MIr6gQIjPstt478NGEIl8dciSTPcvKJZuQ2EqukN1fxb64Lfc49V //cBrFbFXtc6Y7E0OiduEgAciHoIi6oKjZCUDXOERe7iAgFZRl4Zt1+NjFp2DT873qlm XOzo+uag87Z//mZ2VQReZ0+4BHZ85Xz2kXQweFk2iBATRP9WGQm2pqoVLOCR3rgSRyYO WbIA==
X-Received: by with SMTP id ej7mr7874232qcb.27.1372699364907; Mon, 01 Jul 2013 10:22:44 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Mon, 1 Jul 2013 10:22:24 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <> <> <> <>
From: Iñaki Baz Castillo <>
Date: Mon, 01 Jul 2013 19:22:24 +0200
Message-ID: <>
To: Ted Hardie <>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQne5+voTR/3kBlj49MT3EYXks0m66EyDokrq8TnS5e30lvKIn70y3x3gPK0Qs0jAPx6o0AD
Cc: "" <>
Subject: Re: [rtcweb] New Draft - WebRTC JS Object API Model
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: Mon, 01 Jul 2013 17:22:50 -0000

2013/7/1 Ted Hardie <>:
>> Ted, the media can be *perfectly* sent in-the-wire with any custom
>> format the web developer builts (JSON, XML, plain SDP or whatever).
> I'm sorry, I think I must misunderstand you.  You are planning to take media
> from a source  and encode it using json, xml, or SDP and send that over the
> wire?  Or you mean the media *signalling* can use json, xml, or SDP and go
> over the wire?

Of course, I mean "the media signaling". But that is not just about
"in-the-wire". Current WebRTC specs mandate that the information unit
exchanged between the JS app and the WebRTC stack must be a SDP blob.

What I mean is:

- The JS app uses the WebRTC API to retrieve a JS Object (or Objects)
with transport and media info.

- The JS app serializes such a information in any custom way defined
by the website developer (this can be a JSON body, XML, SDP! or

- The JS app sends the information to the remote peer.

- The JS app of the remote peer decodes the information (since it is a
JS app designed by the same domain/website) and extracts all the
transport/media fields.

- The JS app of the remote peer creates a local PC and makes calls to
API methods of PC for passing those transport/media fields.

- ...and remove O/A mandate.

But honestly, all of this is really well described and exposed in the draft:

>> The receiver JS app parses the information (i.e. converts from JSON to
>> an Object), extracts the media/transport fields and pass them to the
>> PeerConnection via API methods.
>> It is really so hard? this is how WWW works (in contrast to how SIP
>> works).
> As has been repeatedly mentioned, you have a peer communication here that
> has to be implemented by the browser.  That means the downloaded javascript
> application must tell a browser what transports it needs so that it can
> create the appropriate connections.  If it is using RTP/UDP, it ends up
> needing to tell the browser what enough detail to construct the RTP/UPD
> streams.  What payload format, for example, is needed.  As I said before,
> that means that having no standard format across the API between the JS
> application and the browser has very poor scaling characteristics.  You
> might replace SDP as the interface between them, but not specifying anything
> there doesn't seem to work, at least in my personal opinion.

I invite you to read the draft which describes how your concerns can
be perfectly accomplished without mandating SDP or any other format:

Best regards.

Iñaki Baz Castillo