Re: [rtcweb] Another consideration about signaling

Neil Stratford <> Tue, 11 October 2011 10:04 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4D18721F8D61 for <>; Tue, 11 Oct 2011 03:04:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Ez578uG+vAa1 for <>; Tue, 11 Oct 2011 03:04:52 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 5604221F8D5C for <>; Tue, 11 Oct 2011 03:04:51 -0700 (PDT)
Received: by iaby26 with SMTP id y26so10375796iab.31 for <>; Tue, 11 Oct 2011 03:04:51 -0700 (PDT)
MIME-Version: 1.0
Received: by with SMTP id 33mr7403827ibo.87.1318327491488; Tue, 11 Oct 2011 03:04:51 -0700 (PDT)
Received: by with HTTP; Tue, 11 Oct 2011 03:04:51 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <>
Date: Tue, 11 Oct 2011 11:04:51 +0100
X-Google-Sender-Auth: oVEbLqduuCB6ugIWpb-6d8a1FxA
Message-ID: <>
From: Neil Stratford <>
To: Ted Hardie <>
Content-Type: multipart/alternative; boundary=00151773de8ed3ee2b04af030988
Subject: Re: [rtcweb] Another consideration about signaling
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: Tue, 11 Oct 2011 10:04:53 -0000

On Mon, Oct 10, 2011 at 7:51 PM, Ted Hardie <> wrote:

> Taking off my various hats, I have to say I don't agree.   We're putting
> together a system here in which a downloaded application must talk to the
> server from which it is downloaded, the local system into which it is
> downloaded, and the other endpoints with whom it wants to trade flows.  If
> we decline to put any constraint at all on the signaling that goes between
> the downdloaded system and the server, we are, in essence, forcing the API
> between the downloaded code and the local environment to support any
> possible signaling.  Since it is the local environment that will manage
> codecs and emit RTP flows, that's a rough ask--especially if it has to
> support signaling that might have radically different semantics.

At the core of any RTC endpoint is an API to manage codecs and emit RTP,
they are the fundamental building blocks and in my view should be exposed to
javascript. Attempts to impose the semantics of a given signalling protocol
on the API will cause unnecessary complication and limit the ability to

If we agreed on a semantic approach (e.g. solicit/propose or offer/answer),
> then the syntactic difference would be, I admit, largely a matter of taste.
> I would see no real reason not to have a baseline syntax, but I would
> probably agree to it being pseudo code of some sort.  But if we have no
> agreed on *semantics* for the signaling, then the API between the downloaded
> code and the  local system is unbounded.  That doesn't tend to make for
> stable systems or interoperability.

I believe that interoperability should be reduced to the media stream -
there should be no requirement that signalling from two different vendors
would need to interoperate unless they choose to do so.

> If you must gateway between systems (something I agree is not job one),
> unbounded semantics would also imply arbitrary complexity in the gateways.
> Again, not good for stability or deployability.

If vendors wish to interoperate with a common signalling protocol such as
SIP then they will design their protocols with semantics that make that an
easy task. The key difference between rtcweb and traditional RTC is that we
have the flexibility of the javascript execution engine and we can change
the signalling protocol from one page to another, or even one call to the
next. If you want to make a SIP call, then use SIP.js, if you want to call
another browser within the same web application, then use whatever
signalling is most appropriate for the application.

> I am, personally, far from convinced that having no constraints on the
> signaling is worth imposing unbounded complexity on the Javascrip/Browser
> API and any gateway systems, as well as circumscribing our security
> choices.  It may seem to be a dazzling amount of freedom, but it is only one
> part of the system, and it ought to play well with others.

I agree that we need to ensure that the API can support the signalling
protocols that we want it to, but I don't think that we should limit the API
in any way so that it can only support those protocols unless there are very
good reasons to do so.