Re: [MMUSIC] Offer/Answer PT Questions - text proposal

Colin Perkins <csp@csperkins.org> Fri, 26 February 2016 16:04 UTC

Return-Path: <csp@csperkins.org>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0DC261AC3C7 for <mmusic@ietfa.amsl.com>; Fri, 26 Feb 2016 08:04:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 c5BCeGKEG9Cr for <mmusic@ietfa.amsl.com>; Fri, 26 Feb 2016 08:04:14 -0800 (PST)
Received: from balrog.mythic-beasts.com (balrog.mythic-beasts.com [IPv6:2a00:1098:0:82:1000:0:2:1]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A02671AC3C5 for <mmusic@ietf.org>; Fri, 26 Feb 2016 08:04:14 -0800 (PST)
Received: from [130.209.247.112] (port=52435 helo=mangole.dcs.gla.ac.uk) by balrog.mythic-beasts.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from <csp@csperkins.org>) id 1aZKsE-0004sM-4E; Fri, 26 Feb 2016 16:04:10 +0000
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Colin Perkins <csp@csperkins.org>
In-Reply-To: <56D074F4.2080401@alum.mit.edu>
Date: Fri, 26 Feb 2016 16:04:08 +0000
Content-Transfer-Encoding: quoted-printable
Message-Id: <2A2E7C19-3106-4A7D-B533-8A7267A9BAD4@csperkins.org>
References: <7594FB04B1934943A5C02806D1A2204B37E425AB@ESESSMB209.ericsson.se> <CBDE14F9-B68C-4471-9E24-0D7EA7821795@csperkins.org> <56CF9400.2020002@alum.mit.edu> <FDDE79D2-43D4-4382-92B4-4E22FFFEA8AC@csperkins.org> <56D074F4.2080401@alum.mit.edu>
To: Paul Kyzivat <pkyzivat@alum.mit.edu>
X-Mailer: Apple Mail (2.3112)
X-BlackCat-Spam-Score: -28
X-Mythic-Debug: Threshold = On =
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/-OsUCpvKqHCra_dRv1yFwI5kkxM>
Cc: mmusic@ietf.org
Subject: Re: [MMUSIC] Offer/Answer PT Questions - text proposal
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Feb 2016 16:04:22 -0000

> On 26 Feb 2016, at 15:53, Paul Kyzivat <pkyzivat@alum.mit.edu> wrote:
> 
> Colin,
> 
> Thanks for the clarifications. My knowledge of RTP is scant. (I'm gradually learning through osmosis.)
> 
> More inline.
> 
> On 2/26/16 4:39 AM, Colin Perkins wrote:
>>> On 25 Feb 2016, at 23:53, Paul Kyzivat <pkyzivat@alum.mit.edu> wrote:
>>> 
>>> On 2/25/16 6:19 PM, Colin Perkins wrote:
>>>> Hi,
>>>> 
>>>>> On 25 Feb 2016, at 14:17, Christer Holmberg <christer.holmberg@ericsson.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I put together some text:
>>>>> 
>>>>> "The scope of a mapping from a particular dynamic payload type number to a codec
>>>>> (or codec configuration) is for a given RTP media flow direction within a session.
>>>> 
>>>> I think this conflicts with various RTP-related RFCs and drafts, although whether this conflict causes practical problems is unclear. RFC 3551 indicates that the binding between RTP payload type and RTP payload format is per RTP session, not per sender within an RTP session:
>>>> 
>>>>    mechanisms for defining dynamic payload type bindings have been
>>>>    specified in the Session Description Protocol (SDP) and in other
>>>>    protocols such as ITU-T Recommendation H.323/H.245.  These mechanisms
>>>>    associate the registered name of the encoding/payload format, along
>>>>    with any additional required parameters, such as the RTP timestamp
>>>>    clock rate and number of channels, with a payload type number.  This
>>>>    association is effective only for the duration of the RTP session in
>>>>    which the dynamic payload type binding is made.  This association
>>>>    applies only to the RTP session for which it is made, thus the
>>>>    numbers can be re-used for different encodings in different sessions
>>>>    so the number space limitation is avoided.
>>>> 
>>>> (note: reuse in different sessions, not different participants within a session) and:
>>> 
>>> Does a sendrecv m-line established via O/A create one or two RTP sessions?
>> 
>> One, since RTP sessions are defined by shared SSRC space, not directionality of media.
> 
> OK. I thought that would be the answer, but was just checking.
> 
>>> If one, then it seems this conflicts with 3264 allowing the two ends to use different PTs for the same codec configuration.
>> 
>> That depends exactly what 3264 allows: if the two ends use different payload types to refer to the same codec, that’s okay; but if the two ends use the same payload type to refer to different codecs, that problematic.
> 
> OK. That helps clarify what needs to be done.
> 
> So it means that we have to say that the appearance of a PT in an offer or answer binds it to the corresponding codec configuration for the duration of the RTP session. An answerer can still choose to use a different PT for the same codec configuration. But he can’t use a PT that has already been bound.

Yes.

> Can we require a sender to honor the preference of the recipient in this regard? (For two-participant sessions - the kind we are usually setting up with O/A.)

That’s one for the signalling to decide.

> But an important point to this is that this binding is scoped by the RTP session, not the SIP (or O/A) session. So when the RTP session changes (because the addr/port changes at one of the ends) then old bindings no longer need to be preserved.
> 
> And *that* solves the 3pcc problem, since in the 3pcc cases that matter the RTP session will change.

Perhaps, but remember that an RTP session is defined by a shared SSRC space, not by the addresses or ports used, so it depends how 3PCC moves the addresses. 

> As a side question, how do the predefined PTs fit into this? My guess is that the predefined PTs are *not* implicitly bound. They still must be bound by appearing in an offer or answer. And then they are only bound to their default codec configuration if there is no explicit rtpmap for the PT.

The use is defined by the signalled RTP profile. If an RTP/AVP-derived profile is used, the text in RFC 3551 applies:

   This profile reserves payload type numbers in the range 96-127
   exclusively for dynamic assignment.  Applications SHOULD first use
   values in this range for dynamic payload types.  Those applications
   which need to define more than 32 dynamic payload types MAY bind
   codes below 96, in which case it is RECOMMENDED that unassigned
   payload type numbers be used first.  However, the statically assigned
   payload types are default bindings and MAY be dynamically bound to
   new encodings if needed.  Redefining payload types below 96 may cause
   incorrect operation if an attempt is made to join a session without
   obtaining session description information that defines the dynamic
   payload types.

i.e., the fact that the m= line says RTP/AVP implies that the default static payload type mappings are valid, unless over-ridden by an a=rtpmap: line.

> ISTM this is starting to be clarified. But I think it is going to take quite a bit of careful writing to properly specify this.

Right.

Cheers,
Colin




-- 
Colin Perkins
https://csperkins.org/