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

Iñaki Baz Castillo <> Tue, 18 October 2011 10:24 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BF4B321F8B21 for <>; Tue, 18 Oct 2011 03:24:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.627
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 72U2dlwlABwO for <>; Tue, 18 Oct 2011 03:24:42 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id E01B421F8B2E for <>; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
Received: by vcbfo1 with SMTP id fo1so415021vcb.31 for <>; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
MIME-Version: 1.0
Received: by with SMTP id et7mr1689874vdc.35.1318933481301; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
Received: by with HTTP; Tue, 18 Oct 2011 03:24:41 -0700 (PDT)
In-Reply-To: <>
References: <> <> <>
Date: Tue, 18 Oct 2011 12:24:41 +0200
Message-ID: <>
From: Iñaki Baz Castillo <>
To: Harald Alvestrand <>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Cc: Jonathan Rosenberg <>,,
Subject: Re: [rtcweb] API options for supporting fork with ROAP (Re: SDP Offer/Answer draft-jennings-rtcweb-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, 18 Oct 2011 10:24:42 -0000

2011/10/18 Harald Alvestrand <>:
> 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?


Iñaki Baz Castillo