Re: [rtcweb] Proposal for PeerConnection cloning

"Ejzak, Richard P (Richard)" <richard.ejzak@alcatel-lucent.com> Mon, 07 May 2012 12:31 UTC

Return-Path: <richard.ejzak@alcatel-lucent.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 2FADD21F85D4 for <rtcweb@ietfa.amsl.com>; Mon, 7 May 2012 05:31:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.87
X-Spam-Level:
X-Spam-Status: No, score=-8.87 tagged_above=-999 required=5 tests=[AWL=1.129, BAYES_00=-2.599, J_CHICKENPOX_33=0.6, RCVD_IN_DNSWL_HI=-8]
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 atZc6M-pL2tF for <rtcweb@ietfa.amsl.com>; Mon, 7 May 2012 05:31:56 -0700 (PDT)
Received: from ihemail1.lucent.com (ihemail1.lucent.com [135.245.0.33]) by ietfa.amsl.com (Postfix) with ESMTP id 6256D21F85AF for <rtcweb@ietf.org>; Mon, 7 May 2012 05:31:56 -0700 (PDT)
Received: from usnavsmail1.ndc.alcatel-lucent.com (usnavsmail1.ndc.alcatel-lucent.com [135.3.39.9]) by ihemail1.lucent.com (8.13.8/IER-o) with ESMTP id q47CVnLY014864 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 7 May 2012 07:31:49 -0500 (CDT)
Received: from USNAVSXCHHUB03.ndc.alcatel-lucent.com (usnavsxchhub03.ndc.alcatel-lucent.com [135.3.39.112]) by usnavsmail1.ndc.alcatel-lucent.com (8.14.3/8.14.3/GMO) with ESMTP id q47CVmcw008530 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT); Mon, 7 May 2012 07:31:48 -0500
Received: from USNAVSXCHMBSA1.ndc.alcatel-lucent.com ([135.3.39.127]) by USNAVSXCHHUB03.ndc.alcatel-lucent.com ([135.3.39.112]) with mapi; Mon, 7 May 2012 07:31:48 -0500
From: "Ejzak, Richard P (Richard)" <richard.ejzak@alcatel-lucent.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>, Randell Jesup <randell-ietf@jesup.org>, "rtcweb@ietf.org" <rtcweb@ietf.org>
Date: Mon, 07 May 2012 07:31:46 -0500
Thread-Topic: [rtcweb] Proposal for PeerConnection cloning
Thread-Index: Ac0sJEaKMJOs9oEHT4WtRJmOhKxv1gAG2KQAAAKMcYA=
Message-ID: <6F428EFD2B8C2F49A2FB1317291A76C11364EC0377@USNAVSXCHMBSA1.ndc.alcatel-lucent.com>
References: <6F428EFD2B8C2F49A2FB1317291A76C11364EC028C@USNAVSXCHMBSA1.ndc.alcatel-lucent.com> <7F2072F1E0DE894DA4B517B93C6A05852C44001342@ESESSCMS0356.eemea.ericsson.se> <6F428EFD2B8C2F49A2FB1317291A76C11364EC0293@USNAVSXCHMBSA1.ndc.alcatel-lucent.com> <4FA75E92.2050007@jesup.org> <7F2072F1E0DE894DA4B517B93C6A05852C4435E11F@ESESSCMS0356.eemea.ericsson.se> <4FA7715B.40505@jesup.org> <7F2072F1E0DE894DA4B517B93C6A05852C4435E180@ESESSCMS0356.eemea.ericsson.se> <4FA77B77.1020806@jesup.org> <7F2072F1E0DE894DA4B517B93C6A05852C4435E3D1@ESESSCMS0356.eemea.ericsson.se>
In-Reply-To: <7F2072F1E0DE894DA4B517B93C6A05852C4435E3D1@ESESSCMS0356.eemea.ericsson.se>
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-Scanned-By: MIMEDefang 2.57 on 135.245.2.33
X-Scanned-By: MIMEDefang 2.64 on 135.3.39.9
Subject: Re: [rtcweb] Proposal for PeerConnection cloning
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: Mon, 07 May 2012 12:31:57 -0000

Hi Christer,
As I mentioned in a previous response to you, you cannot mandate that clones be cleared out once a final ANSWER is applied since that prevents you from applying independent offer/answer sequences to each clone (as required in some SIP scenarios).  The optional "cleanup" indicator you propose to associate with final ANSWER will not work in the case where a final ANSWER has already been applied to a clone to allow another offer/answer sequence on that clone before a final "winner" is selected.  I would prefer to just clean up the "losers" manually or create a new method for this.

There is at least one ERROR that I found in my proposal.  I forgot that the clone will continue to need to be able to report PEER-REFLEXIVE candidates after the cloning operation, since this occurs after ICE exits the ICE_GATHERING state (this should be made clearer in the JSEP text).  So the CPC still needs the IceCallback.

The SIP example in JSEP is also missing the 2nd offer/answer needed by ICE to update the default candidates.  How is the application triggered to generate this offer?

BR, Richard

-----Original Message-----
From: rtcweb-bounces@ietf.org [mailto:rtcweb-bounces@ietf.org] On Behalf Of Christer Holmberg
Sent: Monday, May 07, 2012 5:58 AM
To: Randell Jesup; rtcweb@ietf.org
Subject: Re: [rtcweb] Proposal for PeerConnection cloning

Hi,

>>>>> If you want to support the usecase I suggested, where a single 
>>>>> offer can result in parallel forking, but where you don't want to 
>>>>> lock down to a single answerer: then you obviously need to support 
>>>>> forking, and likely you need/want to support it irrespective of the 'final' state of the original PeerConnection.  You *can* require cloning before the final answer is applied, though I would argue that you don't gain much by doing so.
>>>>>
>>>>> So this is the usecase: you send a single offer (say to a 
>>>>> conference server controller, or to a game server) and you get a 
>>>>> separate answer from each other endpoint, such as in a mesh 
>>>>> conference, or who are in the same 'area' of the game, or in hearing (at that moment) in a VR environment.  You might get these answers well after the initial answer or burst of answers.
>>>> Yes. And, my idea would be that each of those answers are provided to the browser as PRE_ANSWERS.
>>>>
>>>> Then, at some point, you decide that you are not going to accept any more answers, and you provide an ANSWER to one of the (C)PCs, which will release all other associated (C)PCs.
>>> Sorry, I think you missed the point: the application wants to end up 
>>> with N connected, active PeerConnections, not one.  This is a mesh 
>>> conference (for example), not a central-mixer conference.  And for added fun, we don't necessarily know there won't be more coming later, perhaps much later (but that's a possibly-separable feature).
>> Speaking in SIP terms, I don't think it is possible to implement mesh conference that way, because clients will normally, once they've received one 200 OK, ACK+BYE any
>> additional ones. Or, a forking proxy will CANCEL all other forked legs once a 200 OK has been forwarded on one of them.
>
> Why would SIP come into this?  Yes, classic PSTN telecom is focused on endpoint to one other connection, and any form of more complex arrangement is 
> implemented with a mixing server or equivalent, and thus SIP flows are designed with that assumption in mind.  However, we are NOT constrained to mirror 
> SIP, and we should be able to build applications that go beyond what SIP makes easy to do.
>
> I gave some direct use-cases we've talked about since the beginning or near: Mesh conferencing, multiplayer games - where parallel forking 
> (without collapse to a single session/connection) is desirable/useful.  If there's an equally-usable way to implement those cases avoiding cloning, please
> detail that.  I think cloning makes initiation of these sorts of mesh connections much simpler.

I didn't say you can't do it with CPC, I simply said that you would have issues if doing it with SIP. But, of course you can use whatever protocol on the wire.

Maybe there could be an API parameter to indicate, when a final answer is provided to the browser, whether it should do a CPC "clean-up". It would make life easier for the JS App developers in non-mesh-conf cases.

Regards,

Christer

_______________________________________________
rtcweb mailing list
rtcweb@ietf.org
https://www.ietf.org/mailman/listinfo/rtcweb