Re: [rtcweb] Agenda requests for Atlanta meeting

"Parthasarathi R" <> Wed, 10 October 2012 19:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A80E621F85A3 for <>; Wed, 10 Oct 2012 12:52:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.135
X-Spam-Status: No, score=-0.135 tagged_above=-999 required=5 tests=[AWL=-1.659, BAYES_00=-2.599, FB_NO_MORE_OFFER=3.189, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_53=0.6]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id g8mlqHjgsc6i for <>; Wed, 10 Oct 2012 12:52:26 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id AB82221F85A2 for <>; Wed, 10 Oct 2012 12:52:26 -0700 (PDT)
Received: from userPC (unknown []) (Authenticated sender: by (Postfix) with ESMTPA id C939C3E1143; Wed, 10 Oct 2012 19:52:11 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120823; t=1349898735; bh=yL1sibAFa8P2MGh4Xu1bNXnnIk8X91ruRW972QR5UCQ=; h=From:To:Cc:References:In-Reply-To:Subject:Date:Message-ID: MIME-Version:Content-Type:Content-Transfer-Encoding; b=eWkTE1FI0jzFGyHjrP4DMudenllidBGCGpjSUPtJm9Fy2mLnF1YRmbYR1GaTN0epe nAl8/ncNmwWiBeDNK93SfcR9rTbW89t1OsQFXEtqtUwdUSKoUZZq/XB6Aaq4yxGY/E hWOBxR2fCZDRQF2TTOeO31Xl7LRWaDTw58XERdio=
From: Parthasarathi R <>
To: "'Cullen Jennings (fluffy)'" <>, 'Christer Holmberg' <>
References: <> <> <> <> <> <>, <> <> <>
In-Reply-To: <>
Date: Thu, 11 Oct 2012 01:21:58 +0530
Message-ID: <000b01cda720$bd5097a0$37f1c6e0$>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 12.0
Content-Language: en-us
X-CTCH-Spam: Unknown
X-CTCH-VOD: Unknown
X-CTCH-RefID: str=0001.0A020207.5075D1EF.015B, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
Subject: Re: [rtcweb] Agenda requests for Atlanta meeting
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: Wed, 10 Oct 2012 19:52:27 -0000


As signaling is moved to JS (application layer), Offer-answer in JSEP has to
be generic enough. The underlying assumption in PRANSWER state is that
webserver knows whether the received SDP from remote is PRANSWER or final
ANSWER. Unfortunately, Webserver may not able to tell whether the receive in
lot of real time deployment which is an open issue now. UPDATE offer after
18x answer from remote is the typical example where PRANSWER state breaks.
The real-time usage of SIP UPDATE offer is to update the existing answer in
18x in the same dialog. Early dialog UPDATE callflow is well deployment
because of PSTN remote ringback (18x) from media server and then UPDATE with
SDP to update the media information of remote endpoing and then, call
connect (200 ok) from actual endpoint. The same PSTN callflow shall be
achieved by serial forking as well. Please note that the final answer or not
is not based on browser or originating SIP UA but it is based on the
intermediate SIP entities. 

>From RTCWeb perspective, The new OFFER is possible to be received in browser
as per RFC 3264 after the first answer is received. PRANSWER is the new
state in JSEP wherein JSEP is the extension of RFC 3264. It will be good in
case you explain how browser in PRANSWER has to handle new OFFER from the
remote side. 

Please include me in case any phone discussion if you are planning.


-----Original Message-----
From: [] On Behalf Of
Cullen Jennings (fluffy)
Sent: Wednesday, October 10, 2012 1:35 AM
To: Christer Holmberg
Subject: Re: [rtcweb] Agenda requests for Atlanta meeting

On Oct 9, 2012, at 12:04 , Christer Holmberg

> Hi,
>>> I have not seen any reason to relax 3264 yet but if something comes up,
agree we should carefully look at the cases. I think we can just do straight
up 3264.
>> RFC 3264 doesn't describe PRANSWER.  The concept is entirely absent.
>>  The offerer MAY immediately cease listening for media formats that
>>  were listed in the initial offer, but not present in the answer.
>> "the" answer.
> I agree with Martin. 3264 O/A is always per dialog, and forking is
supported by generating multiple dialogs. JSEP, OTOH, in order to support
forking with a single "dialog" (peerConnection local descriptor), now
defines O/A as offer+any number of pranswers + answer.
> So, we would e.g. have to define what happens if a new offer is received
from the remote side while the browser is in pranswer-received state (see my
call flow in another reply).

3264, SDP, 3261, and related documents are dealing with a bunch of things
including what happens at media plane and signaling plane. 

I'll note that though O/A is per dialog, there is only one O shared across
multiple legs and when you create the O you don't know how many dialogs
there will be. So from the media point of view (covered more in SDP spec
than 3264) there is one O with a bunch of A. From signaling point of view
there are a bunch of O/A pairs). 

The dialog is SIP signaling concept not a media plane level concept. We
moved the signaling part out of the browser and into the JS. But the media
part is still in the browser. So as 3264 says, after the offer is
constructed, we have to be willing to receive media for all the codec type
in the offer. When we get the answer 3264 makes it clear that one MAY stop
receiving the codecs that were in the offer but not selected in the answer.
However, this can not be done until the signaling layer is sure that no more
offers will be honored. Since that signalling part of Offer/Answer is in the
JS, the API need to to have a way to signal what the MAY part should do and
that is the PRANSWER vs ANSWER. 

People keep trying to make this some complex weird argument invoking the SIP
deities of the past and quoting incomprehensible phrases from various RFC
caved in stone but the bottom line in the code is very simple to understand.
When creating the offer you alloced some resources ( like a port to receive
video on ). When you get an answer that does not use that resource, you need
to tell the media stack if it should free the resources or not. O/A has
situation where you need to keep the resources available (like there are
more dialogs coming) and situation where you need to free the resource.
Since we split the signalling out of the browser and left the media in the
browser, we need be able to allow the JS that is dealing with signaling to
tell the browser when to free the resource. 

rtcweb mailing list