Re: [rtcweb] API options for supporting fork with ROAP (Re: SDP Offer/Answer draft-jennings-rtcweb-signaling)

Iñaki Baz Castillo <ibc@aliax.net> Tue, 18 October 2011 10:24 UTC

Return-Path: <ibc@aliax.net>
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 BF4B321F8B21 for <rtcweb@ietfa.amsl.com>; Tue, 18 Oct 2011 03:24:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.627
X-Spam-Level:
X-Spam-Status: No, score=-2.627 tagged_above=-999 required=5 tests=[AWL=0.050, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
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 72U2dlwlABwO for <rtcweb@ietfa.amsl.com>; Tue, 18 Oct 2011 03:24:42 -0700 (PDT)
Received: from mail-vx0-f172.google.com (mail-vx0-f172.google.com [209.85.220.172]) by ietfa.amsl.com (Postfix) with ESMTP id E01B421F8B2E for <rtcweb@ietf.org>; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
Received: by vcbfo1 with SMTP id fo1so415021vcb.31 for <rtcweb@ietf.org>; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.184.103 with SMTP id et7mr1689874vdc.35.1318933481301; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
Received: by 10.220.118.143 with HTTP; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
In-Reply-To: <4E9D43D2.9010804@alvestrand.no>
References: <15B0E3AD-3086-499A-8E79-7AE58B3376C4@cisco.com> <CAD5OKxvE77Fia1hVRhdmqnfsOExpdJq=J2VMwtsfB_7ztEYtLA@mail.gmail.com> <4E9D43D2.9010804@alvestrand.no>
Date: Tue, 18 Oct 2011 12:24:41 +0200
Message-ID: <CALiegfnaE4OX6QHkkr1k5+Ux2WUOixB+4=e52_+gpphM4HKi6w@mail.gmail.com>
From: =?UTF-8?Q?I=C3=B1aki_Baz_Castillo?= <ibc@aliax.net>
To: Harald Alvestrand <harald@alvestrand.no>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Cc: Jonathan Rosenberg <jonathan.rosenberg@skype.net>, rtcweb@ietf.org, public-webrtc@w3.org
Subject: Re: [rtcweb] API options for supporting fork with ROAP (Re: SDP Offer/Answer draft-jennings-rtcweb-signaling)
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, 18 Oct 2011 10:24:42 -0000

2011/10/18 Harald Alvestrand <harald@alvestrand.no>;:
> I and some people from Ericsson had a discussion about forking the other day
> (the ability to send out one request and have it generate multiple
> PeerConnections on the response).
>
> Options include:
>
> - Sending a request with no content for which state must be kept, creating
> new PeerConnection objects on answer that can handle an answer without
> generating an offer first, and then renegotiating stuff that needs state
> subsequently

> - Creating a new "PeerConnectionFactoryWithOffer" object that holds the
> state of the request, but has the ability to mint several PeerConnections on
> responses

> - Throwing away the initial PeerConnection, munge the incoming Answer to
> look like an Offer, create a PeerConnection from it, and throw away the
> resulting Answer

> - Create the ability to create a PeerConnection from an Offer + an Answer,
> together with the ability to create an Offer without creating a
> PeerConnection (this is a variant of the Factory method)

> - Do something different.....


Hi Harald, if I'm right the problem arises when the RTCweb client
generates a SDP/ROAP offer, sends it to the proxy/server and receives
more than one SDP/ROAP answer. The problem is that, currently, the
PeerConnection object just expects a single answer, am I right?

The above options 1 and 3 require the RTCweb client to generate an
"INVITE" (let me name it INVITE) with no SDP/ROAP, which IMHO limits
too much some possible scenarios. In SIP world, sending an empty
INVITE means that the receiver could offer in the 200 OK response a
SDP offer with codecs not supported by the caller, so the caller must
send ACK and later a BYE. That's commonly ugly so I discourage its
usage for RTCweb.

Said that, I strongly like your option 2 "Creating a new
PeerConnectionFactoryWithOffer". If I understand it properly, when a
RTCweb environment allows media forking, the RTCweb client should
create a PeerConnectionFactoryWithOffer object rather than a
PeerConnection. Then it sends the offer over the wire. Upon receipt of
each response with different ROAP/SDP answer, the object would
internally generate different PeerConnection objects (but the state of
all of them are governed by the PeerConnectionFactoryWithOffer
object). Am I right?


Regards.



-- 
Iñaki Baz Castillo
<ibc@aliax.net>;