Re: [rtcweb] Usecase & architecture: Browser application with separate webserver & voipserver

Matthew Kaufman <> Tue, 06 September 2011 18:32 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id F03B121F8CB1 for <>; Tue, 6 Sep 2011 11:32:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.585
X-Spam-Status: No, score=-4.585 tagged_above=-999 required=5 tests=[AWL=2.013, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Ifc2AweXrELf for <>; Tue, 6 Sep 2011 11:32:03 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 4F57F21F8CA6 for <>; Tue, 6 Sep 2011 11:32:03 -0700 (PDT)
Received: from (localhost []) by (Postfix) with ESMTP id CFBC416F5; Tue, 6 Sep 2011 20:33:49 +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; s=mx; bh=WpG4EDC6u67pTABVzuKLMOH8BZk=; b=VJnwoQ9jf Iq0SbWMjSP5YP8UefwaE9L8LzJGxIWqEhfCC827dc+kPh44ezXnLf61LQ6spVKkq iMIJclNEIV+ryZ5X17m3uxY1tqTXt0zZm8XDLRie3CWmm60BKbIddB6u4vJDmww3 Ja+6Zc9n9pDK0DFRZGS/KhzHWO23mTQWXw=
DomainKey-Signature: a=rsa-sha1; c=nofws;; h=message-id:date:from :mime-version:to:cc:subject:references:in-reply-to:content-type; q=dns; s=mx; b=ORe8O6C9Z6eWzxiyrt8v8lnMcQ22fKKZGd2x3tF1wR5tZKd0 2e1ATnL2Z8GWNvRVItWSAumtV1t4irNac9BPUNQ5cX4Eyh4SlmaAK9AQqAcF6API AQHU/zojh3xMmSvTRrskEiUjeBU2FFOgIAq17jJHksbtJZ/sYZkK9lvCABQ=
Received: from ( []) by (Postfix) with ESMTP id CDA377F6; Tue, 6 Sep 2011 20:33:49 +0200 (CEST)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 99FAB35073C4; Tue, 6 Sep 2011 20:33:49 +0200 (CEST)
X-Virus-Scanned: amavisd-new at
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id eQh+ZzCVmJEy; Tue, 6 Sep 2011 20:33:45 +0200 (CEST)
Received: from Matthew-Kaufman-Air.local ( []) by (Postfix) with ESMTPSA id 840063506EB9; Tue, 6 Sep 2011 20:33:43 +0200 (CEST)
Message-ID: <>
Date: Tue, 06 Sep 2011 11:33:41 -0700
From: Matthew Kaufman <>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:6.0.1) Gecko/20110830 Thunderbird/6.0.1
MIME-Version: 1.0
To: Ravindran Parthasarathi <>
References: <>, <> <BLU152-W72696F07F16816B1B267593100@phx.gbl> <> <> <>
In-Reply-To: <>
Content-Type: multipart/alternative; boundary="------------090408000308000509050404"
Subject: Re: [rtcweb] Usecase & architecture: Browser application with separate webserver & voipserver
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, 06 Sep 2011 18:32:08 -0000

On 9/6/11 11:06 AM, Ravindran Parthasarathi wrote:
> Matthew,
> Please read inline.
> Thanks
> Partha
> *From:*Matthew Kaufman []
> *Sent:* Tuesday, September 06, 2011 9:07 AM
> *To:* Ravindran Parthasarathi
> *Cc:* Bernard Aboba;;
> *Subject:* Re: [rtcweb] Usecase & architecture: Browser application 
> with separate webserver & voipserver
> On 9/5/2011 12:16 PM, Ravindran Parthasarathi wrote:
> Bernard,
> Sorry for the delay reply.
> There is a huge difference between tunneling the protocol and 
> converting the protocol from one format to another. The tunneling 
> works well only in case the destination support the tunneled data 
> without negotiation. It will be bad assumption in case the standard 
> does not defined so.  For example,
> Browser A supports Jingle (XMPP for real-time data) and encapsulates 
> the data in HTTP and send it to webserver1
> That isn't how it works. Browser A supports WebRTC. Do you mean 
> browser A is running Javascript that implements Jingle or something 
> similar for its signaling (over HTTP and/or Websockets) to its 
> associated web server?
> */[Partha]Browser A supports WebRTC Javascript API which is mapped to 
> Jingle. Browser A is not required to have native support of Jingle. I 
> guess that we mean the same thing./*

Sounds like we mean the same thing.

> RTCwebserver1 tunnel jingle data in SIP and sends it to RTCwebserver2
> Federation between webserver1 and webserver2 is up to the operators of 
> those sites. Presumably SIP is a good (but not only) choice for 
> federation. Many sites won't have a desire or need to federate.
> */[Partha] Here is the problem, it is expected that webserver1 has to 
> converts its proprietary stuff into SIP or other equivalent. So, 
> RTCweb to SIP gateway is mandated in your proposed architecture for 
> the basic dialog between two users in two webservers. It will be tough 
> for each webserver developer to create the proprietary protocol and 
> mapping. Instead, the basic SIP functionality provided in browser will 
> make sure the basic call works between any users across webserver 
> without limiting the innovative application build by individual 
> webservers./*

Disagree. It is expected that webserver1 usually *doesn't* convert its 
proprietary stuff into SIP. That only happens when you want to federate 
with another service that uses SIP.

If it is "tough" to create a mapping between your proprietary stuff and 
SIP then perhaps you didn't design your proprietary stuff properly... 
that isn't my problem however.

Basic SIP functionality provided in the browser would likely limit the 
API in ways that block innovation.

> RTCwebserver2 does not support Jingle towards browser but it support 
> some other variant of HTTP based metadata to the browser.
> Do you mean that webserver2 and its clients are running compatible 
> code that exchanges signaling via a mechanism other than Jingle? 
> That's fine, and up to the operator of that site.
> My question is how webserver2 do perform the interop correctly in case 
> Jingle is not mandated as metadata standard mechanism. Please let me 
> know your opinion here.
> Every site that wishes to federate with others will need to choose a 
> signaling protocol that is agreed between them.
> */[Partha] it is bad network design because SIP is well accepted in 
> real-time applications (telecom or unified communication) and also 
> there is no need of contract with each site (company) and implement 
> their protocol to interop with them./*

SIP is well accepted in *some* real-time applications. I would note that 
the most popular real-time applications don't actually use SIP.

And yet there is SIP, for when you wish to interop without lengthy 
contract or discussion. The best of both worlds.

> My understanding was that RTCwebserver1 may use some proprietary 
> mechanism (may be jingle) to communicate between browser and webserver 
> which will be converted into RFC 3261 SIP at webserver1 and forwarded 
> to RTCwebserver2. RTCWebserver2 converts back SIP to its own 
> proprietary metadata to communicate with browser. This mechanism works 
> well but still better mechanism exists.
> That understanding appears to be correct. This is exactly the same as 
> "Hotmail talks some proprietary protocol over HTTP between its 
> HTML/Javascript client and its servers which is then converted to SMTP 
> for sending to Gmail, where Gmail talks a different proprietary 
> protocol over HTTP between its HTML/Javascript client and its 
> servers." It appears to have resulted in some significant innovations 
> in the email service space, while still allowing federation between 
> domains using a standard protocol.
> */[Partha] This paradigm will not exactly fit for real-time 
> communication because there is a need of communication between browser 
> to browser apart from webserver to webserver communication. Still I 
> could not under the reason why SIP will stop the innovation whereas 
> HTTP will allow./*

Because SIP requires standards activities before adding any useful 
functionality. I'll point to one of my favorites here: bridged line 
appearances. Despite lots of effort to fix this, there still isn't a way 
to do this reliably. And yet, if I created a web application using HTTP 
signaling and Javascript APIs on a web browser that provides a 
*platform* and not just a "phone", I could create a system in which 
bridged line appearances work well if I so desired with just a little 
bit of programming.

> If you think this is a bad idea, provide an alternative we might discuss.
> */[Partha] I'm thinking of the solution which is in line of 
> draft-cbran-rtcweb-protocols-00. Browser is intelligent entity which 
> makes real-time communication with other browser using SIP. The 
> configuration data required for browser SIP client is received through 
> Javascript and/or received metadata from webserver using HTTP 
> connection. Making SIP as a protocol for real-time communication will 
> make sure that browser not only communicates with another browser but 
> also ensure that it works with existing SIP implementation. It was my 
> original usecase wherein browser directly communicates with 
> VoIP-server. VoIP server may communicates with browser which does not 
> matter for the originating browser./*

So you want the browser to be a phone, and not a platform for innovation 
in the area of real-time applications. It is already a platform for 
innovation in many other areas, why limit it here?

Matthew Kaufman