Re: [rtcweb] Proposal for PeerConnection cloning

Roman Shpount <roman@telurix.com> Tue, 08 May 2012 01:36 UTC

Return-Path: <roman@telurix.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 BFB3721F85CE for <rtcweb@ietfa.amsl.com>; Mon, 7 May 2012 18:36:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.881
X-Spam-Level:
X-Spam-Status: No, score=-2.881 tagged_above=-999 required=5 tests=[AWL=0.095, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
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 tnMTWuKUD5K0 for <rtcweb@ietfa.amsl.com>; Mon, 7 May 2012 18:36:41 -0700 (PDT)
Received: from mail-we0-f172.google.com (mail-we0-f172.google.com [74.125.82.172]) by ietfa.amsl.com (Postfix) with ESMTP id 0E47521F8534 for <rtcweb@ietf.org>; Mon, 7 May 2012 18:36:40 -0700 (PDT)
Received: by werf13 with SMTP id f13so2985631wer.31 for <rtcweb@ietf.org>; Mon, 07 May 2012 18:36:40 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=4jsy66Tramj+suDc7wpyVglgit+ic9Mdn40rDm7p+o4=; b=JMPo13MpF2P4RlbM0RF6cRGMf4aJq/0EnlcSkfMX7n4mgKaN8Ct21e0vY5bMPCIQ0d d/WyUqPOr3SoHtvOdwTPLM8gNjexXem0UMqRYxvnmf+57PYFXF2eR8MNCtBSkTOpcKJI wkP9cVm+yUEuTW7XRfqBzI3s24JO1ct5TE26hdxjroTFNkgNiT44ZyISmRDNGbIIqIyu Rz4mOJ7PSYQqO0gkpdGtCTnsXEv7cFviYPb3VFxhfIh8Q7/Ah7DxKfB5P8Z9sg1HNKPM eoWVL3WNnsYKOYzIHY+5ekytLjhPQnqDDXiMUkQsr/5T5Qz7YVKkSwbB9TsOqZtxa56k aQTw==
Received: by 10.180.86.194 with SMTP id r2mr32861092wiz.15.1336441000173; Mon, 07 May 2012 18:36:40 -0700 (PDT)
Received: from mail-bk0-f44.google.com (mail-bk0-f44.google.com [209.85.214.44]) by mx.google.com with ESMTPS id u9sm25680379wix.0.2012.05.07.18.36.38 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 07 May 2012 18:36:38 -0700 (PDT)
Received: by bkty8 with SMTP id y8so5052860bkt.31 for <rtcweb@ietf.org>; Mon, 07 May 2012 18:36:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.205.134.6 with SMTP id ia6mr976435bkc.51.1336440997639; Mon, 07 May 2012 18:36:37 -0700 (PDT)
Received: by 10.205.117.146 with HTTP; Mon, 7 May 2012 18:36:37 -0700 (PDT)
In-Reply-To: <6F428EFD2B8C2F49A2FB1317291A76C11364EC0859@USNAVSXCHMBSA1.ndc.alcatel-lucent.com>
References: <6F428EFD2B8C2F49A2FB1317291A76C11364EC028C@USNAVSXCHMBSA1.ndc.alcatel-lucent.com> <4FA83F6D.9040308@alvestrand.no> <6F428EFD2B8C2F49A2FB1317291A76C11364EC0859@USNAVSXCHMBSA1.ndc.alcatel-lucent.com>
Date: Mon, 07 May 2012 21:36:37 -0400
Message-ID: <CAD5OKxsLLPquzWwNSJCUnysD6-KT8FfnM4=N7PjhZkWLunZ2Xw@mail.gmail.com>
From: Roman Shpount <roman@telurix.com>
To: "Ejzak, Richard P (Richard)" <richard.ejzak@alcatel-lucent.com>
Content-Type: multipart/alternative; boundary="000e0ce0d862ed747e04bf7c6ae0"
X-Gm-Message-State: ALoCoQk4y8JHMUxxjitMKwLvckmDJ0pl/CRWcdUNFDwuL25tBohRob7fb82nn4RKDe294YPMNHYY
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
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: Tue, 08 May 2012 01:36:43 -0000

One question I have is when should TURN allocations be released? TURN would
not be used for 99% of PeerConnections but it cannot be released until it
is guaranteed that the offer that used this TURN candidate would not be
used to create any more PeerConnections. We would need a separate method to
release the TURN candidates, which can be complicated by the fact that you
can have several offers for a given peerconnection in progress, each with
its own TURN candidates that can have overlapping lifetimes.

I would actually think that the model where an offer object is created and
each PeerConnection is created  using the offer object and the answer would
be cleaner.

One way to implement this, is to define a factory object is used to create
offers. SDP is extracted from an offer object. Once answer is received, a
method in the offer object is used to create the PeerConnection. Once no
more answers are expected offer object should be released.

The other option, that would be less disruptive to the curretn API,  is
that instead of cloning peerconnection method, a method that returns
reference to the current offer is used. A cloned peerconnection can be
created using this offer. Once final answer is processed by the
peerconnection, offer object is released by it. If multiple answers are
expected, offer object can be retrieved using the get offer method and
stored separately until the moment when answers for this particular offer a
no longer expected.
_____________
Roman Shpount