Re: [rtcweb] SDP_PRANSWER followed by SDP_OFFER scenario in JSEP

Harald Alvestrand <harald@alvestrand.no> Wed, 02 May 2012 15:54 UTC

Return-Path: <harald@alvestrand.no>
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 510C911E8086 for <rtcweb@ietfa.amsl.com>; Wed, 2 May 2012 08:54:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.517
X-Spam-Level:
X-Spam-Status: No, score=-110.517 tagged_above=-999 required=5 tests=[AWL=0.081, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
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 SF4bnvQ3ZMs0 for <rtcweb@ietfa.amsl.com>; Wed, 2 May 2012 08:54:03 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 5034321F8582 for <rtcweb@ietf.org>; Wed, 2 May 2012 08:54:03 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id 24FA339E112; Wed, 2 May 2012 17:54:02 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8tT+YFmCsdbe; Wed, 2 May 2012 17:54:01 +0200 (CEST)
Received: from hta-dell.lul.corp.google.com (62-20-124-50.customer.telia.com [62.20.124.50]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id 1AF7039E089; Wed, 2 May 2012 17:54:01 +0200 (CEST)
Message-ID: <4FA15898.1040204@alvestrand.no>
Date: Wed, 02 May 2012 17:54:00 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120412 Thunderbird/11.0.1
MIME-Version: 1.0
To: Roman Shpount <roman@telurix.com>
References: <387F9047F55E8C42850AD6B3A7A03C6C0E23B102@inba-mail01.sonusnet.com> <CA+rAfUMfZBHxAjR0zmwhSxftQbPK0X3sNuxu4UV6bnMvnJ_9xA@mail.gmail.com> <CAOJ7v-3K=NK6zCLr-E-aSHDKVv2hMqnUhZKroX0YoBTo6-nQ+Q@mail.gmail.com> <6F428EFD2B8C2F49A2FB1317291A76C1136029362A@USNAVSXCHMBSA1.ndc.alcatel-lucent.com> <4FA13816.6050003@alvestrand.no> <CAD5OKxsOAeTRdCgj2g4BY8maeG1n9nzCv29g8kaFPVZ4tf8C5w@mail.gmail.com>
In-Reply-To: <CAD5OKxsOAeTRdCgj2g4BY8maeG1n9nzCv29g8kaFPVZ4tf8C5w@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------070403030709010403020700"
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] SDP_PRANSWER followed by SDP_OFFER scenario in JSEP
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: Wed, 02 May 2012 15:54:04 -0000

On 05/02/2012 05:40 PM, Roman Shpount wrote:
>
> On Wed, May 2, 2012 at 9:35 AM, Harald Alvestrand 
> <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote:
>
>     Especially, I am worried about what the state of the
>     peerconnection has to be before it is cloned, what the state of
>     the peerconnection is after it is cloned, which peerconnection
>     owns the various resources allocated (ports are the obvious part
>     of it), and which peerconnection any streams (local or remote)
>     attached to the peerconnection before the clone are attached to
>     after the clone.
>
>
> I thought there was a discussion on this list about using the same set 
> of ports, ICE candidates and turn connection across multiple 
> peerconnections. I am actually curious if there is ever a down side of 
> using the same set of ICE candidates for all the streams within the 
> all peerconnections for a given web session. It should be possible to 
> disambiguate those streams based on remote IP/port and SSRC.
It does mean that the implementation will have to do reference counting 
to know when it can close the port - if one clones the socket and binds 
the clones to different remote ports, I think the OS will take care of 
it on Unix, I'm not sure how it goes for other OSes.

Does someone know what the semantic of bind() is here - whether one 
needs to have an unbound port to fork from in order to bind to different 
remote addresses? I've not tried this myself.

In the case of hardware codecs that must be allocated to a specific 
stream .... if one supports forking, which connection (if any) gets the 
codec? The first one to start using it? What happens to the second one?

>
> The state that must to be replicated with the peerconnection is the 
> latest offer information. It would probably be less disruptive if 
> peerconnection has some sort of clone method instead of using a 
> factory. It should be possible to clone the connection between the 
> time offer is generated and the final answer is received.
I kind of think it's less disruptive to the people who don't want to 
fork stuff if you must instantiate a different object in order to 
support forking. Then implementations that don't support forking can 
simply not offer a constructor for that object.