Re: [rtcweb] Why requiring pre-announcement of SSRCs is a problem for conferencing ( Was: New Version Notification for draft-uberti-rtcweb-plan-00.txt )

Emil Ivov <emcho@jitsi.org> Thu, 16 May 2013 19:22 UTC

Return-Path: <emil@sip-communicator.org>
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 A69B121F8F87 for <rtcweb@ietfa.amsl.com>; Thu, 16 May 2013 12:22:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.616
X-Spam-Level:
X-Spam-Status: No, score=-1.616 tagged_above=-999 required=5 tests=[AWL=-0.983, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, SARE_FWDLOOK=1.666]
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 pMZOCcIIlVj7 for <rtcweb@ietfa.amsl.com>; Thu, 16 May 2013 12:22:39 -0700 (PDT)
Received: from mail-bk0-x233.google.com (mail-bk0-x233.google.com [IPv6:2a00:1450:4008:c01::233]) by ietfa.amsl.com (Postfix) with ESMTP id 3905E21F8E84 for <rtcweb@ietf.org>; Thu, 16 May 2013 12:22:37 -0700 (PDT)
Received: by mail-bk0-f51.google.com with SMTP id ji2so1959505bkc.10 for <rtcweb@ietf.org>; Thu, 16 May 2013 12:22:32 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:message-id:date:from:organization:user-agent :mime-version:to:cc:subject:references:in-reply-to:content-type :content-transfer-encoding:x-gm-message-state; bh=ktwVXOhbOznufnEgR1znA7SmGquJhXZLJjOqVjv017Q=; b=Jq+bP38QcExgNDR8dh2+ejimY+zFoi2YXPoiQDf0RxvvYDe1F7W3FMKTz80vG06g6K aRB8mb0FIQ6zL29QbktyYChlBlB8rhnJ3IrHAGVVF1kVK/lwp+gqha7Dwl7unmdqbSUO oaBOFxXuaIaPCONCNoIJtYRG2MslPf80gfLpRVFljP/OqnWQoWp/ifor+Z/JRX2FghIc RC7+6ZvkdFgSf1B2/fIPnBbsxFAHIMgRY/EWH2qm6GGPSyVxQrlfvQFBcBmr9vT6xNCc 6rEUqFPw2yjrZs2eKgqnYlpdIpEZgjblKy6L2q7Tnzjkdy0yMJEFmQz7p9ifBKZ7T4m0 BJoQ==
X-Received: by 10.204.200.71 with SMTP id ev7mr2988669bkb.27.1368732151195; Thu, 16 May 2013 12:22:31 -0700 (PDT)
Received: from camionet.local ([79.100.215.70]) by mx.google.com with ESMTPSA id x5sm2410683bkh.15.2013.05.16.12.22.29 for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 16 May 2013 12:22:30 -0700 (PDT)
Message-ID: <519531F6.1010201@jitsi.org>
Date: Thu, 16 May 2013 22:22:30 +0300
From: Emil Ivov <emcho@jitsi.org>
Organization: Jitsi
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130328 Thunderbird/17.0.5
MIME-Version: 1.0
To: Stefan Håkansson LK <stefan.lk.hakansson@ericsson.com>
References: <20130503054601.4639.64651.idtracker@ietfa.amsl.com>, <CALe60zAi_Lx3QFCbBQ5aPNkgorJAff0E79jkpbQX1Qt3wf2bzg@mail.gmail.com>, <CAOJ7v-1Wk6u7XiYrNVmoqr5Jisu2WRvZpte7hQTOiP8YHUc6hg@mail.gmail.com>, <008701ce4b21$a0997aa0$e1cc6fe0$@gmail.com>, <BLU169-W108D56DF61B85814543873C93BA0@phx.gbl>, <518AAAF2.5000207@alum.mit.edu>, <CA+9kkMBw4+kXAv6qLCcmGLwMxAqR6P-Tk8dm-ardv_jihHx0Hw@mail.gmail.com>, <9E563BDA-C336-4FB8-B11A-A2DC40C672C1@iii.ca>, <CA+9kkMC-NnF+VugBOZNhY4-Cz1tqJA44WSF9dg45g4GCWxkh-g@mail.gmail.com>, <518D6C76.5060606@alum.mit.edu>, <CAHBDyN6xYor-XWnLEkufoQPYrDc+KurrM0m3HBTqLXqNkPtDkQ@mail.gmail.com> <BLU169-W82D3FCC3246D6D878FA44E93A00@phx.gbl> <5191F948.3040402@ericsson.com> <51920280.3080308@jitsi.org> <519223A0.1040908@ericsson.com> <5192947F.90206@jitsi.org> <1447FA0C20ED5147A1AA0EF02890A64B1C2CCE9A@ESESSMB209.ericsson.se>
In-Reply-To: <1447FA0C20ED5147A1AA0EF02890A64B1C2CCE9A@ESESSMB209.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQkz595Lcz7hQoOqwhzyR7S+LUpcDpBZg20kK1G6XiUrY0WPYTMpYJsWqYnssgrTV12wM2V3
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Why requiring pre-announcement of SSRCs is a problem for conferencing ( Was: New Version Notification for draft-uberti-rtcweb-plan-00.txt )
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: Thu, 16 May 2013 19:22:50 -0000

On 16.05.13, 12:45, Stefan Håkansson LK wrote:
> On 5/14/13 9:46 PM, Emil Ivov wrote:
>> Hey Stefan,
>>
>> On 14.05.13, 14:44, Stefan Håkansson LK wrote:
>>>>> SSRCs - this would be SDP
>>>>
>>>> Again, including SSRCs in SDP O/A is tricky in conferencing scenarios.
>>>
>>> Here seems to be something that I have missed. That there are existing
>>> implementations that do not signal SSRC is fine, and in most cases there
>>> would be only one audio and one video SSRC used anyway. And rtcweb (and
>>> Clue?) should be able to interoperate (but perhaps your web app need to
>>> be designed in a specific way).
>>>
>>> But if we design something forward looking, that can handle many
>>> streams, that can handle layered codecs and FEC data, signaling SSRCs
>>> seems like a must to me.
>>>
>>> But I have missed that this is problematic in conferencing scenarios,
>>> could you tell me why (and I probably should know :) )?
>>
>> The issue that I am referring to (I describe this in an earlier mail to
>> Harald here http://goo.gl/M8NbQ ) is that of a conference based on an
>> RTP translator. It's basically what we do in Jitsi Videobridge.
>>
>> Let's say that I am a WebRTC app that can act as a conference focus and
>> that has access to an RTP translator somewhere. I'd like to organise a
>> conference with 10 people (you and I among them).
>>
>> I ask the RTP translator to allocate 10 ports for me and then I start
>> calling participants.
>>
>> You are the first one that I am going to join into this new call.
>>
>> At this point, the only SSRC(s) that I could possibly give you are those
>> that I am going to use. I won't be able to tell you anything for the
>> eight other participants. For all I know, some or all of these
>> participants could turn out to be RTP translators themselves and there
>> could be a number of SSRCs behind each of them too.
>>
>> The very logical and easy thing that your webapp could do here is not to
>> care and simply render each and every SSRC that you get. Most apps are
>> going to be perfectly happy with that.
>>
>> If, on the other hand you needed me to re-offer you every time a new
>> participant joins in order to work properly, then things would easily
>> get quite messy even if everyone is using WebRTC.
>>
>> Then, note that some of the participants can be simple SIP endpoints
>> (that's why we bothered with SDP in the first place right?) so the only
>> way I can get their SSRCs is with some extra signalling between me and
>> the RTP translator. This is not a problem per se, but it can only happen
>> after the SIP participants have joined the call and started streaming
>> data, that has reached the translator. And even then they will have no
>> MSIDs.
>>
>> All in all, we would be enforcing some very laborious signalling when
>> it is absolutely unnecessary.
> 
> Thanks, I then understand the use-case you're envisioning.
> 
> I think it could work under certain conditions, but as soon as there are 
> repair flows, enhancement layers or simulcast involved, there is a need 
> anyway to somehow signal what each SSRC represents.

I don't think anyone is arguing against this.

> Then it is another 
> question if it happens via SDP or via RTP header extensions or some 
> other means.
> 
> There was a discussion at the Stockholm rtcweb interim on what 
> topologies that would be supported, but I fail to remember if this case 
> was included or excluded.

I couldn't find the discussion (in what WG did it happen?) but
topologies based on RTP translators of one sort or another seem to be
the default way of handling video conferencing these days so I don't see
how we could possibly rule them out.

> It also seems to me that people have quite different views in the 
> discussion.

Of course, where would the fun be otherwise? :)

> One view seems to be that SDP exchanges should be used even 
> for things like pause/resume, resolution changes, 

Right! That's the wrong view ;). We made two important choices in this
working group:

a) we will not impose a signalling protocol, and
b) we will use SDP O/A to make it easier to talk to legacy apps/devices.

Let's not try to compensate for the former by hijacking the latter.

> another that we should 
> avoid SDP exchanges even when people join/leave a conference.

Even? I'd argue that this is _the_ place where avoiding SDP O/A is most
important!

Emil

-- 
https://jitsi.org