Re: [rtcweb] Media forking solution for SIP interoperability (without a media gateway)

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 31 October 2011 10:01 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 206CC21F8D72 for <rtcweb@ietfa.amsl.com>; Mon, 31 Oct 2011 03:01:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.792
X-Spam-Level:
X-Spam-Status: No, score=-5.792 tagged_above=-999 required=5 tests=[AWL=-0.093, BAYES_00=-2.599, J_CHICKENPOX_34=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-4]
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 nzklnUcSu9M0 for <rtcweb@ietfa.amsl.com>; Mon, 31 Oct 2011 03:01:42 -0700 (PDT)
Received: from mailgw10.se.ericsson.net (mailgw10.se.ericsson.net [193.180.251.61]) by ietfa.amsl.com (Postfix) with ESMTP id 55DD421F8D61 for <rtcweb@ietf.org>; Mon, 31 Oct 2011 03:01:42 -0700 (PDT)
X-AuditID: c1b4fb3d-b7c26ae0000035b9-51-4eae72046ec7
Received: from esessmw0191.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw10.se.ericsson.net (Symantec Mail Security) with SMTP id A9.AB.13753.4027EAE4; Mon, 31 Oct 2011 11:01:41 +0100 (CET)
Received: from ESESSCMS0356.eemea.ericsson.se ([169.254.1.57]) by esessmw0191.eemea.ericsson.se ([153.88.115.84]) with mapi; Mon, 31 Oct 2011 11:01:40 +0100
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Iñaki Baz Castillo <ibc@aliax.net>, Harald Alvestrand <harald@alvestrand.no>
Date: Mon, 31 Oct 2011 11:01:39 +0100
Thread-Topic: [rtcweb] Media forking solution for SIP interoperability (without a media gateway)
Thread-Index: AcyXrn0axVjItdgbQBC2TlCVdzREjwAA9LlA
Message-ID: <7F2072F1E0DE894DA4B517B93C6A058522356F2414@ESESSCMS0356.eemea.ericsson.se>
References: <CALiegfkikmpi55ePUo=AQCQvorv4_6v2ByTCdL=V_=umcCEpUA@mail.gmail.com> <7F2072F1E0DE894DA4B517B93C6A05852235717390@ESESSCMS0356.eemea.ericsson.se> <3BBCA56E-CA6E-4585-8EBB-ED6EDFED789F@cisco.com> <4EADF511.2040403@alvestrand.no> <CALiegfmH7PDDrK60mWhwY=DhUDwvH-pZHdTXrpndWLE1PcGOcw@mail.gmail.com>
In-Reply-To: <CALiegfmH7PDDrK60mWhwY=DhUDwvH-pZHdTXrpndWLE1PcGOcw@mail.gmail.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="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: AAAAAA==
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Media forking solution for SIP interoperability (without a media gateway)
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, 31 Oct 2011 10:01:43 -0000

Hi, 

>> I think having a single PeerConnection object send media to 
>> multiple peers at the same time breaks the model we've been working from.
>>
>> It may be reasonable to give a PeerConnection the ability to switch 
>> from one remote peer to another remote peer (to support 180-like 
>> things), but I don't think it's reasonable to have it 
>> connected to multiple remote peers.
>>
>> So if we support real forking, we'll have to create multiple 
>> PeerConnections to do that.
> 
> AFAIK there are three alternatives here:
> 
> 
> 1) PeerConnection can just communicate with a single peer.
> 
> 2) PeerConnection can just communicate with a single peer but 
> the per can be replaced later (so still we reuse the same 
> local candidates, but ICE+SRTP must be "restarted". This 
> solves serial forking.
> 
> 3) PeerConnection can communicate with multiple peers at the 
> same time. This solves serial and parallel forking.
> 
> 
> In my opinion:
> 
> - Option 1) is very limited.
> 
> - Option 2) is a MUST.
> 
> - Option 3) would be great but it introduces some complexity. 
> Imagine there is parallel forking and the WebRTC client 
> recives 3 SDP's from 3 different peers, and passes all of 
> them to the same PeerConnection. At same point a remote peer 
> stops sending media so we get a callback 
> "peerStopsSendingMedia()" in out PeerConnection. Does it mean 
> that we can close the PeerConnection? not, because we must 
> check whether there are other active peers yet (and there are 
> in this case). So this introduces complexity at JavaScript 
> level. The question is: is this complexity not so hard? can 
> it be limited by some parameter when creating a 
> PeerConnection? I imagine soemthing like:
> 
>    new PeerConnection( capabilities=[], 
> allow_multiple_peers=false/true)

I am not sure whether option 3) uses a single PeerConnection, but one alternative is that we use multiple PC objects, but they all share the local parameters and candidates.

Personally I think option 2) would be ok for most cases, and enough to support in "phase 1".

And, IF someone really wants to support parallel forking, there is always the possibility to create new PC objects, send offers associated with them etc.

Regards,

Christer