[rtcweb] Use of offer / answer semantics

Cullen Jennings <fluffy@cisco.com> Tue, 06 September 2011 14:44 UTC

Return-Path: <fluffy@cisco.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74E7F21F8ADC for <rtcweb@ietfa.amsl.com>; Tue, 6 Sep 2011 07:44:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.311
X-Spam-Level:
X-Spam-Status: No, score=-103.311 tagged_above=-999 required=5 tests=[AWL=-0.712, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hdShcv6vyooB for <rtcweb@ietfa.amsl.com>; Tue, 6 Sep 2011 07:44:36 -0700 (PDT)
Received: from mtv-iport-1.cisco.com (mtv-iport-1.cisco.com [173.36.130.12]) by ietfa.amsl.com (Postfix) with ESMTP id E404521F8AD3 for <rtcweb@ietf.org>; Tue, 6 Sep 2011 07:44:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=fluffy@cisco.com; l=3382; q=dns/txt; s=iport; t=1315320383; x=1316529983; h=from:content-transfer-encoding:subject:date:message-id: to:mime-version; bh=bKa7VmQv7caUCxKRzKQaFZWW5xzUTIlpP9Y7bmltpwY=; b=cT8hzHUHfOHAmY06kAyU9E6vLKy8uDdJNV8hijg9+SCH/xDoyDiAmR4z vnLinjTiNC9u2BXdF11aE6+zf6cBhh/50rAqgo2X3cS+tXv2zoPvO12PH pyUflENV8581YUhzuty5TZMVJjrlGYfmS3Sk85Dt3aENaNIlac2v/a15L A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvwEAGExZk6rRDoI/2dsb2JhbABCqAF4gV8BJ4IyoQiBIwGfFoYKYASHa4tDhQ+MHQ
X-IronPort-AV: E=Sophos;i="4.68,338,1312156800"; d="scan'208";a="433087"
Received: from mtv-core-3.cisco.com ([171.68.58.8]) by mtv-iport-1.cisco.com with ESMTP; 06 Sep 2011 14:46:21 +0000
Received: from [192.168.4.100] (sjc-fluffy-8914.cisco.com [10.20.249.165]) by mtv-core-3.cisco.com (8.14.3/8.14.3) with ESMTP id p86Ejed1004800 for <rtcweb@ietf.org>; Tue, 6 Sep 2011 14:46:21 GMT
From: Cullen Jennings <fluffy@cisco.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 06 Sep 2011 08:46:21 -0600
Message-Id: <DB0C463A-FF5F-4C15-B2B4-E81B7DF92351@cisco.com>
To: rtcweb@ietf.org
Mime-Version: 1.0 (Apple Message framework v1084)
X-Mailer: Apple Mail (2.1084)
Subject: [rtcweb] Use of offer / answer semantics
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Sep 2011 14:44:37 -0000

In my roll as an individual contributor, I want to propose some text that I think we can get rough consensus on around that helps specify which parts of the signaling issues we agree on and which we don't. 

At the last meeting, my read of the the room was there was a fair amount of agreement in the room that offer / answer semantics  with SDP are what we want to use. I don't think there was was broad agreement on if one should use SIP or not, or for that matter jingle. If we can nail down this decisions as the direction the WG is going, it will really help make progress. What I would like to do is propose some following principles in the text below. If we have agreement on these, then they would go into the overview document and help guide the design of other documents. I want to highlight that none of the principles below imply that we would need to use SIP in the browsers - the principals would all work fine if we there was signaling gateway in the web server that converged SIP to whatever proprietary HTML / JS  / HTTP that the applications wanted to use between the browser and the web server. 



1) The media negotiations will be done using the same SDP offer/answer semantics that are used in SIP. 

2) It will be possible to gateway between legacy SIP devices that support ICE and appropriate RTP / SDP mechanisms and codecs without using a media gateway. A signaling gateway to convert between the signaling on the web side to the SIP signaling may be needed. 

3) When a new codec is specified, and the SPD for the new codec is specified in the MMUSIC WG, no other standardization would should be required for it to be possible to use that in the web browsers. Adding a new codecs which might have new SDP parameters should not change the APIs between the browser and javascript application. As soon as the browsers support the new codec, old applications written before the codecs was specified should automatically be able to use the new codec where appropriate with no changes to the JS applications. 


People  has looked at alternatives to all these in a fair amount of detail. For example, we have considered alternatives to the SDP offer / answer such as the advertisement proposal draft (draft-peterson-sipcore-advprop-01) and discussed that several times in the WG. The primary issues identified with this was concerns over mapping this to legacy SDP. Similarly people have considered a replacement for SDP in the SDPng work which was eventually abandoned due to the difficulty of having a incentive for implementations to migrate from SDP to SDPng. 

We have also considered just sending audio and video directly over something like DTLS and not suing RTP. The WG has clearly rejected this due to a variety of reasons - the desire not to to have the operating expense of media gateway and reduction in quality of experience is obviously a high priority goal for the designs of the RTP multiplexing draft. 

The JS API is being developed by W3C but when proposing APIs that should violate the third principal, such as the the API in section 4 of draft-jennings-rtcweb-api-00, it is clear that many people that are more from the browser and web application world do not want such an API.