Re: [rtcweb] JSEP: Issues with a=ssrc and RTP payload type switching

Harald Alvestrand <harald@alvestrand.no> Mon, 08 June 2015 15:13 UTC

Return-Path: <harald@alvestrand.no>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6CC161B2E8D for <rtcweb@ietfa.amsl.com>; Mon, 8 Jun 2015 08:13:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.61
X-Spam-Level:
X-Spam-Status: No, score=-3.61 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_14=0.6, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1YhEmdZ1U4q9 for <rtcweb@ietfa.amsl.com>; Mon, 8 Jun 2015 08:13:01 -0700 (PDT)
Received: from mork.alvestrand.no (mork.alvestrand.no [158.38.152.117]) by ietfa.amsl.com (Postfix) with ESMTP id 07E9C1B2EC3 for <rtcweb@ietf.org>; Mon, 8 Jun 2015 08:09:13 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mork.alvestrand.no (Postfix) with ESMTP id D55077C0A46; Mon, 8 Jun 2015 17:09:11 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at alvestrand.no
Received: from mork.alvestrand.no ([127.0.0.1]) by localhost (mork.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iGp4mF8b82pC; Mon, 8 Jun 2015 17:09:10 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:f4ab:e7e9:ac4b:ad3e] (unknown [IPv6:2001:470:de0a:27:f4ab:e7e9:ac4b:ad3e]) by mork.alvestrand.no (Postfix) with ESMTPSA id 6D12C7C0A45; Mon, 8 Jun 2015 17:09:10 +0200 (CEST)
Message-ID: <5575B013.3030701@alvestrand.no>
Date: Mon, 08 Jun 2015 17:09:07 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Magnus Westerlund <magnus.westerlund@ericsson.com>, Simon Perreault <sperreault@jive.com>, Roman Shpount <roman@telurix.com>
References: <556EF4F9.1060700@ericsson.com> <556F5E5C.5080600@alvestrand.no> <CAD5OKxs4_hVc-7haF7vik7+PNU33Ox9Jin35tzrPhiaekENLvQ@mail.gmail.com> <557556ED.8050206@ericsson.com> <55755E12.8020201@alvestrand.no> <55756237.6060206@ericsson.com> <5575A364.7060900@jive.com> <5575A9F9.5030504@ericsson.com>
In-Reply-To: <5575A9F9.5030504@ericsson.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/P9fLsxpkwirr3wucIPxCj9JzzNs>
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] JSEP: Issues with a=ssrc and RTP payload type switching
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
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, 08 Jun 2015 15:13:03 -0000

On 06/08/2015 04:43 PM, Magnus Westerlund wrote:
> Simon Perreault skrev den 2015-06-08 16:15:
>> Le 2015-06-08 03:36, Magnus Westerlund a écrit :
>>> Harald Alvestrand skrev den 2015-06-08 11:19:
>>>> Den 08. juni 2015 10:48, skrev Magnus Westerlund:
>>>
>>>>> However, this can't work as RFC 7160 says in Section 4.1:
>>>>>
>>>>>     An RTP Sender with RTCP turned on MUST use a different SSRC
>>>>> for each
>>>>>      different clock rate.  An RTCP BYE MUST be sent and a new
>>>>> SSRC MUST
>>>>>      be used if the clock rate switches back to a value already
>>>>> seen in
>>>>>      the RTP stream.
>>>>>
>>>>> Note the second sentence. One would still have to do a new round of
>>>>> signalling to prime a new SSRC for the previous rate after having
>>>>> switched to be able to switch back to that Payload Type.
>>>>
>>>> Hm. I missed that when reviewing the clock-rate doc.
>>>> So that means one uses up an SSRC for every clock rate switch. That
>>>> seems silly; is it possible that this should be considered an erratum
>>>> for RFC 7160?
>>>
>>> No, it is highly intentional as I remember the discussion.
>>
>> Can you please explain, for those of us with short memories? :)
>
> I went and checked this. This formulation has been present since the
> first versions, and no one has questioned this RFC 2119 worded
> statement. Therefore I consider there to be consensus behind it and
> being intentional.
>
> The motivation I see for this statement is the following. First of all
> I think people have been against considering having stand bye SSRCs
> that are really likely to never be used. I think DTMF is one of these
> exceptions. Having stand by SSRC also have an overhead cost, primarily
> in the result of the number of SSRCs present in the session and their
> consumption of their share of the RTCP bandwidth resources. We also
> have the issue of correctly associating the SSRC to a media source,
> now that there are more than one.
>
> Based on that, (with the assumption that you do PT switching rarely)
> the lower cost is to drop the SSRC after its usage. From that follows
> that one stop using it, and therefore sends BYE, then you really
> should not revive a dead SSRC. Thus, need to create a new one. Simply
> codifying this expectation in the RFC.

This has another implication:

When doing PT switching for comfort noise, you MUST have a CN with the
same clock rate as your normal audio codec.

CN is exactly the type of PT-switching that, if it occurs at all, occurs
very frequently.