Re: [rtcweb] PRANSWER is unusable for serial forking
Christer Holmberg <christer.holmberg@ericsson.com> Sat, 13 October 2012 09:51 UTC
Return-Path: <christer.holmberg@ericsson.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 6F0DF21F8513 for <rtcweb@ietfa.amsl.com>; Sat, 13 Oct 2012 02:51:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.123
X-Spam-Level:
X-Spam-Status: No, score=-6.123 tagged_above=-999 required=5 tests=[AWL=0.126, BAYES_00=-2.599, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MJUbf-v5N1cK for <rtcweb@ietfa.amsl.com>; Sat, 13 Oct 2012 02:51:06 -0700 (PDT)
Received: from mailgw2.ericsson.se (mailgw2.ericsson.se [193.180.251.37]) by ietfa.amsl.com (Postfix) with ESMTP id 3D44921F843E for <rtcweb@ietf.org>; Sat, 13 Oct 2012 02:51:05 -0700 (PDT)
X-AuditID: c1b4fb25-b7f956d0000011c3-7b-50793985c71a
Received: from esessmw0247.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw2.ericsson.se (Symantec Mail Security) with SMTP id E5.7D.04547.58939705; Sat, 13 Oct 2012 11:51:01 +0200 (CEST)
Received: from ESESSCMS0356.eemea.ericsson.se ([169.254.1.243]) by esessmw0247.eemea.ericsson.se ([153.88.115.93]) with mapi; Sat, 13 Oct 2012 11:51:01 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: "Cullen Jennings (fluffy)" <fluffy@cisco.com>
Date: Sat, 13 Oct 2012 11:51:00 +0200
Thread-Topic: [rtcweb] PRANSWER is unusable for serial forking
Thread-Index: AQHNqOnc3QfmtiokskqSBC02DG7AB5e27xpu
Message-ID: <7F2072F1E0DE894DA4B517B93C6A0585340BAFAA90@ESESSCMS0356.eemea.ericsson.se>
References: <CAD5OKxuOVgcKY_PBLXHeT_cyqJU9sExDWmP1M5u3-87cMQWtVA@mail.gmail.com> <7F2072F1E0DE894DA4B517B93C6A0585340BAD087C@ESESSCMS0356.eemea.ericsson.se>, <C5E08FE080ACFD4DAE31E4BDBF944EB111888AF6@xmb-aln-x02.cisco.com>
In-Reply-To: <C5E08FE080ACFD4DAE31E4BDBF944EB111888AF6@xmb-aln-x02.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFLMWRmVeSWpSXmKPExsUyM+JvrW6rZWWAwfp3shYdk9ksPqz/wWgx 48JUZou1/9rZHVg8pvzeyOqxZMlPJo/L5z8yetyaUhDAEsVlk5Kak1mWWqRvl8CV8WL2E7aC HpWKOZuusDYwTpPsYuTkkBAwkfjRf4cNwhaTuHBvPZDNxSEkcIpR4su9ScwQzkJGiW03HgA5 HBxsAhYS3f+0QRpEBAwlmvbMYwKxmQVyJR7sXssOYrMIqEp83nqUFcQWFrCVaHw7gwmi3k5i wod97CBjRASMJC5vygUJ8wqESzStnwK16j6jxNV7HWC9nAK+Eq/XT2cGsRmBjvt+ag3ULnGJ W0/mM0EcLSCxZM95ZghbVOLl43+sEPWiEnfa1zNC1OtILNj9iQ3C1pZYtvA1M8RiQYmTM5+w TGAUm4Vk7CwkLbOQtMxC0rKAkWUVo3BuYmZOermRXmpRZnJxcX6eXnHqJkZgfB3c8lt1B+Od cyKHGKU5WJTEea237vEXEkhPLEnNTk0tSC2KLyrNSS0+xMjEwSnVwMgcxHlLPvZ59rv196bs +MwynTeY06ln1parnGZntzGV/A23PP25m3Mfe2jY+voA3n+PPu8S2qG8h79Nc92N/TcZ1Hq3 2u1es69v0kEGxuO7nOxY+5rbTssdXFLQmd78c1vwr8J31578yNnmwHAq4MSKsAIvHkabFVz/ 3xi1tugcmrz6+YvPVycqsRRnJBpqMRcVJwIAhfAD2n0CAAA=
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] PRANSWER is unusable for serial forking
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: Sat, 13 Oct 2012 09:51:07 -0000
Hi Cullen, >> I THINK Roman is talking about the following flow: >> >> >> BROWSER JS APP FORKING PROXY SIP UA 1 SIP UA 2 >> >> ------- OFFER ---------------> >> ----- INVITE (OFFER 1) ---------> >> ----- INVITE (OFFER 1) ---------> >> ----- INVITE (OFFER 1) ----------------------------------------------------> >> <----180 (ANSWER 1a) ---------- >> <----180 (ANSWER 1a) ---------- >> <----PRANSWER ----------- >> <----UPDATE (OFFER 2) -------- >> <----UPDATE (OFFER 2) --------- >> <----???? -------------------- >> <----200 (ANSWER 1b) ------------------------------------------------------ >> <----200 (ANSWER 1b) ---------- >> <----ANSWER --------------- >> >> > > That's not a call flow that is legal for use of update. From section 5.1 of of RFC 3311 has > > o If the UPDATE is being sent before completion of the initial > INVITE transaction, and the initial INVITE contained an offer, > the UPDATE can contain an offer if the callee generated an > answer in a reliable provisional response, and the caller has > received answers to any other offers it sent in either PRACK or > UPDATE, and has generated answers for any offers it received in > an UPDATE from the callee. > > If the answer from UA1 is going to do updates before the invite transaction complete, it needs to do that with 100rel / PRACK. Note the diagram should also show an the 200 response to the update is going to cary an answer. I agree. I appologize for making too many assumptions. The 180 IS sent reliably, there IS a PRACK, and there IS a response to the UPDATE. > So if you made all these changes, lets talk about how you would solve this problem in the JS App. > > Fundamentally what is happening here is the call signaling is setting up two session - this is parallel media forking and parallel signaling forking. We could even make it more simply by removing the forking part, ie there is a reliable 180, follwed by an UPDATE. But, for now, let's continue with the flow above... (I have added some numbering to your text below) >1. One fork to UA1, and one to UA2. Yes. >2. The JS App needs to pick which one it is going to choose to have a media session with. Yes. >3. Let's say it choose UA1, then it would map the Answer 1a to an Answer, the Offer2 to an offer. Here comes the issue: According to jsep-02, when Offer2 comes the JSEP O/A state machine is in the "pranswer" state, where a new offer is not accepted. And, yes, we could fix that by accepting a new offer at that point. But, to which state would be then go? >4. If it was going to choose UA2, it would not pass the answer down to the browser at all and would instead wait till it Answer 1b and pass that down. Sure. >5. If you think it should simultaneously have a media session with both UA1 and UA2, then things are more complicated. I realize that at the time it gets ANSWER 1a, it does not know it will later get ANSWR 1b so that make it hard to choose UA2. I am assuming serial forking. Once the answer from UA2 has been provided to the browser, I don't care if the media session with UA1 goes away. But, again, my main issue at this point is not about media - it's about how the offers and answers between the JS app and the UAs are mapped to JSEP offer/pranswer/answer. > Parallel forking with early media and secure media is a hard problem in SIP as we know from the HERFP discussion. I'm unaware of real world problem that are solved well with > SIP and require parallel forking and thus my focus has been on making sure we solve serial forking. No disagreement from my side there :) > I'm perfectly happy if we *also* solve parallel forking but I don't care too much as long a early media serial forking scenarios work because theses do happen all the time. At the moment, JSEP-02 does talk about cloning. I don't know whether you suggest that to be removed, but if it stays it would work also for serial forking. Regards, Christer
- [rtcweb] PRANSWER is unusable for serial forking Roman Shpount
- Re: [rtcweb] PRANSWER is unusable for serial fork… Christer Holmberg
- Re: [rtcweb] PRANSWER is unusable for serial fork… Iñaki Baz Castillo
- Re: [rtcweb] PRANSWER is unusable for serial fork… Cullen Jennings (fluffy)
- Re: [rtcweb] PRANSWER is unusable for serial fork… Christer Holmberg
- Re: [rtcweb] PRANSWER is unusable for serial fork… Christer Holmberg
- Re: [rtcweb] PRANSWER is unusable for serial fork… Cullen Jennings (fluffy)