Re: [rtcweb] Forking & Early Media - Was Re: Minimal SDP negotiation mechanism

"Ravindran Parthasarathi" <> Wed, 21 September 2011 02:09 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id F12FA21F89BA for <>; Tue, 20 Sep 2011 19:09:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.21
X-Spam-Status: No, score=-2.21 tagged_above=-999 required=5 tests=[AWL=-0.211, BAYES_00=-2.599, J_CHICKENPOX_52=0.6]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 8o3He121I20s for <>; Tue, 20 Sep 2011 19:09:07 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 65C3121F851F for <>; Tue, 20 Sep 2011 19:08:53 -0700 (PDT)
Received: from ( []) by (8.14.3/8.14.3) with ESMTP id p8L2Bm3V002054; Tue, 20 Sep 2011 22:11:48 -0400
Received: from ([]) by with Microsoft SMTPSVC(6.0.3790.4675); Tue, 20 Sep 2011 22:11:17 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Wed, 21 Sep 2011 07:41:08 +0530
Message-ID: <>
In-Reply-To: <>
Thread-Topic: [rtcweb] Forking & Early Media - Was Re: Minimal SDP negotiation mechanism
Thread-Index: AQHMd+W4GbLdjZqw9U+hWOGtS5YVCZVXDZYg
References: <><><><><><><><> <>
From: Ravindran Parthasarathi <>
To: Hadriel Kaplan <>, Cullen Jennings <>
X-OriginalArrivalTime: 21 Sep 2011 02:11:17.0363 (UTC) FILETIME=[BF1F3430:01CC7803]
Subject: Re: [rtcweb] Forking & Early Media - Was Re: Minimal SDP negotiation mechanism
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, 21 Sep 2011 02:09:12 -0000

Forking in SIP does not apply in the literal sense to lot of SIP
applications (ISDN-SIP gateway, End-point which can't perform mixing).
In case of ISDN-SIP gateway, SIP callleg has to handle all forked
dialogs till 200 OK is received from anyone of the UAS and reject all
other dialogs with CANCEL, the media plane update is depend upon the
implementation whether to override the last SDP in media plane in case
mixing is not possible. I'm saying in this mail thread to highlight
forking handling in browser (as a SIP UA application) is not an
exception and it is the decision which has to be taken by any SIP
application development (and not SIP framework) for that matter. 

SIP application forking behavior depends upon RTP model (endpoint or
mixer). In case browser acts only as endpoint, I agree with Cullen that
forking shall be handled by browser without application aware and no
need of API or callback. 

The counter argument may be that my innovative mixing application in
browser is stopped by this API model.  In the generic SIP framework, the
callbacks are provided to handle this situation, default callback
function (browser as endpoint) are provided to reduce the application
awareness. From the API perspective, offer & answer state machine is not
required to be handled in application but we required to know whether
the application prefers which media model whether as end-point or mixer
and let end-point model be default. IMO, it is browser API design which
belongs to W3C. Please correct me here in case this API design is
somehow related to IETF.


>-----Original Message-----
>From: [] On
>Of Hadriel Kaplan
>Sent: Wednesday, September 21, 2011 4:06 AM
>To: Cullen Jennings
>Subject: Re: [rtcweb] Forking & Early Media - Was Re: Minimal SDP
>negotiation mechanism
>On Sep 20, 2011, at 4:07 PM, Cullen Jennings wrote:
>> That said, I think that doing both forking and early media is hard.
>Lets assume we are using a signaling gateway that is not a media
>to translate between a SIP call on one side and whatever is happening
>over on the browser side. The basic issue is the browser initiating the
>communications needs to be able to start receiving multiple RTP streams
>before it even has signaling information to tell it how many it might
>Not really - there will be signaling, because there has to be SDP
>answers even just to get ICE to work before the media starts flowing in
>many NAT cases.  And even in practice in SIP there're usually SDP
>answers in 18x to open "gates", and to get upstream DTMF.  So if the
>concern is just that there's no signaling to tell the browser there are
>multiple RTP streams coming, I think that can be allayed.
>The really hard part is knowing which stream to use/render/send-to,
>imho.  And putting that decision in the gateway isn't good - the best
>decider of that is probably the JS in the browser.
>> To simplify this problem, Cary and my draft proposes not allowing
>forking on the SIP side of the signaling gateway but still allowing
>early media. If you wanted to do do forking in this case, one would
>a SBC that processed media and turned the forked medial legs into one
>media leg.
>Obviously you can request that a request not be forked, using caller-
>prefs, but you can't "not allow" forking on the SIP side.  That would
>make it not SIP.  I know forking is hard, but that's life.  It's not
>appropriate for this WG to make fundamental changes/limitations to the
>SIP protocol, just because some of it's "hard" for a browser.
>rtcweb mailing list