Re: [MMUSIC] Query: payload type collision with offer/answer

"Charles Eckel (eckelcu)" <eckelcu@cisco.com> Thu, 10 January 2013 23:47 UTC

Return-Path: <eckelcu@cisco.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4C17621F84DC for <mmusic@ietfa.amsl.com>; Thu, 10 Jan 2013 15:47:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.675
X-Spam-Level:
X-Spam-Status: No, score=-8.675 tagged_above=-999 required=5 tests=[AWL=1.324, BAYES_00=-2.599, J_CHICKENPOX_15=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y2H+0e5URcAG for <mmusic@ietfa.amsl.com>; Thu, 10 Jan 2013 15:47:48 -0800 (PST)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) by ietfa.amsl.com (Postfix) with ESMTP id 2852A21F8461 for <mmusic@ietf.org>; Thu, 10 Jan 2013 15:47:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6468; q=dns/txt; s=iport; t=1357861662; x=1359071262; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=2dIkjxj4Q66KvRhgFNOrvEdaqvtyRXiAQBqXbsKraQA=; b=OvpmVtg0Kuvejor1cinE4mOMBEmjpXvLLgsErfIFxxjM7vIEnfVu6Oz2 1HedS39Qtwy1ittC1BOrRUKk0eZ9ijCIKwjjuxglG/ETFlTpLO6/pDSse IpWqo4hVgQTIOa1umNJgPoqaxWanXGiVbar9oYcunhEszHu94XKK5Ef8v I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgEFAN5R71CtJXG+/2dsb2JhbABEvXUWc4IeAQEBAwEBAQE3NAsFBwQCAQgOAwQBAQEKFAkHJwsUCQgCBA4FCIgLBQEMtGUEkD5hA6ZTgnWBZgc3
X-IronPort-AV: E=Sophos;i="4.84,447,1355097600"; d="scan'208";a="161172442"
Received: from rcdn-core2-3.cisco.com ([173.37.113.190]) by rcdn-iport-8.cisco.com with ESMTP; 10 Jan 2013 23:47:41 +0000
Received: from xhc-rcd-x13.cisco.com (xhc-rcd-x13.cisco.com [173.37.183.87]) by rcdn-core2-3.cisco.com (8.14.5/8.14.5) with ESMTP id r0ANlfL0025819 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Thu, 10 Jan 2013 23:47:41 GMT
Received: from xmb-aln-x08.cisco.com ([169.254.3.224]) by xhc-rcd-x13.cisco.com ([173.37.183.87]) with mapi id 14.02.0318.004; Thu, 10 Jan 2013 17:47:41 -0600
From: "Charles Eckel (eckelcu)" <eckelcu@cisco.com>
To: Emil Ivov <emcho@jitsi.org>
Thread-Topic: [MMUSIC] Query: payload type collision with offer/answer
Thread-Index: AQHN74t0zrd89LSrqUC7n2O8JcktGJhDOf3g
Date: Thu, 10 Jan 2013 23:47:40 +0000
Message-ID: <92B7E61ADAC1BB4F941F943788C0882804728A0B@xmb-aln-x08.cisco.com>
References: <50EDC40F.3010501@alvestrand.no> <1.77712513fa3f074cccef@cisco.com><50EDF490.4000101@alvestrand.no> <50EE0139.8000909@jitsi.org><1.3841c28e488bfa397d5b@cisco.com> <1.96f025c482c091c166cc@jitsi.org>
In-Reply-To: <1.96f025c482c091c166cc@jitsi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [171.68.16.69]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] Query: payload type collision with offer/answer
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Thu, 10 Jan 2013 23:47:49 -0000

> -----Original Message-----
> From: mmusic-bounces@ietf.org [mailto:mmusic-bounces@ietf.org] On
> Behalf Of Emil Ivov
> Sent: Thursday, January 10, 2013 3:37 PM
> To: Charles Eckel (eckelcu)
> Cc: mmusic
> Subject: Re: [MMUSIC] Query: payload type collision with offer/answer
> 
> 
> 
> 
> On Jan 11, 2013 12:23 AM, "Charles Eckel (eckelcu)" <eckelcu@cisco.com>
> wrote:
> >
> > Please see inline.
> >
> > > -----Original Message-----
> > > From: mmusic-bounces@ietf.org [mailto:mmusic-bounces@ietf.org] On
> > > Behalf Of Emil Ivov
> > > Sent: Wednesday, January 09, 2013 3:46 PM
> > > To: Harald Alvestrand
> > > Cc: mmusic@ietf.org
> > > Subject: Re: [MMUSIC] Query: payload type collision with offer/answer
> > >
> > >
> > >
> > > On 09.01.13, 23:52, Harald Alvestrand wrote:
> > > > On 01/09/2013 10:01 PM, Charles Eckel (eckelcu) wrote:
> > > >> Please see inline.
> > > >>
> > > >>> -----Original Message-----
> > > >>> From: mmusic-bounces@ietf.org [mailto:mmusic-bounces@ietforg]
> On
> > > >>> Behalf Of Harald Alvestrand
> > > >>> Sent: Wednesday, January 09, 2013 11:25 AM
> > > >>> To: mmusic@ietf.org
> > > >>> Subject: [MMUSIC] Query: payload type collision with offer/answer
> > > >>>
> > > >>> Hello,
> > > >>> I have encountered an issue, and I'm not sure it's an issue or not. SDP
> > > >>> wisdom is sought.
> > > >>>
> > > >>> Suppose two entities exchange the following offer/answer:
> > > >>>
> > > >>> offer from X:
> > > >>>
> > > >>> m=video 97
> > > >>> a=rtpmap:97 foo
> > > >>>
> > > >>> answer from Y:
> > > >>>
> > > >>> m=video 98
> > > >>> a=rtpmap:98 foo
> > > >>>
> > > >>> It's clear from RFC 3264 that now X must send codec foo with payload
> > > >>> type 98, and Y must send codec foo with payload type 97. That's not
> the
> > > >>> question.
> > > >>>
> > > >>> But suppose these are the offer and answer:
> > > >>>
> > > >>> offer from X:
> > > >>>
> > > >>> m=video 97 98
> > > >>> a=rtpmap:97 foo
> > > >>> a=rtpmap:98 bar
> > > >>>
> > > >>> answer from Y:
> > > >>>
> > > >>> m=video 97 98
> > > >>> a=rtpmap:97 bar
> > > >>> a=rtpmap:98 foo
> > > >>>
> > > >>> That is, the payload types collide.
> > > >>>
> > > >>> It would be possible to write code so that X sends foo with 98 and bar
> > > >>> with 97, while Y sends foo with 97 and bar with 98. But is it
> > > >> conformant
> > > >>> with the specs to do so?
> > > >>>
> > > >>> And if this has a clear answer - which paragraph of which RFC makes
> > > >> this
> > > >>> clear?
> > > >>> (Yes, this discussion is triggered from a real world problem.)
> > > >>
> > > >> It is recommended to avoid such mismatches when possible, but
> doing so
> > > >> may not always be possible. The examples you mention are
> conformant.
> > > >> The following text from section 5.1 addresses this:
> > > >>
> > > >> For sendrecv RTP
> > > >> streams, the payload type numbers indicate the value of the payload
> > > >> type field the offerer expects to receive, and would prefer to send.
> > > >> However, for sendonly and sendrecv streams, the answer might
> indicate
> > > >> different payload type numbers for the same codecs, in which case,
> > > >> the offerer MUST send with the payload type numbers from the
> answer.
> > > >>
> > > >> Different payload type numbers may be needed in each direction
> > > >> because of interoperability concerns with H.323.
> > > > I was reading that text, and it clearly says which ones to use if the
> > > > payload types are different, but I don't think they clearly address the
> > > > situation with using the same payload type for two different codecs in
> > > > different directions.
> > > >
> > > > In a multicast or transport relay scenario, this would clearly be
> > > > untenable, since third parties would not be able to send streams that
> > > > would be interpreted correctly by the two conflicting endpoints, but in
> > > > a two-party conversation, it's possible to make this work.
> > > > I just don't know if it's worth the effort to make it so.
> > >
> > > Well there's also section 8.3.2 in 3264. The section is about updating
> > > offers but it seems like the text explicitly prohibits remapping payload
> > > types in any scenarios:
> > >
> > > However, in the
> > > case of RTP, the mapping from a particular dynamic payload type
> > > number to a particular codec within that media stream MUST NOT change
> > > for the duration of a session. For example, if A generates an offer
> > > with G.711 assigned to dynamic payload type number 46, payload type
> > > number 46 MUST refer to G.711 from that point forward in any offers
> > > or answers for that media stream within the session. However, it is
> > > acceptable for multiple payload type numbers to be mapped to the same
> > > codec, so that an updated offer could also use payload type number 72
> > > for G.711.
> >
> > I viewed this as being a requirement for all offers or answers sent by
> > A to B, but not necessarily the corresponding answer and offers from
> > B to A.
> 
> Well, it does say: "from that point forward in _any_ offers or answers"
> 
> > Otherwise, it seems to conflict with the text in section 5.1.
> 
> Mmm ... which part of 5.1?

This part:

   However, for sendonly and sendrecv streams, the answer might indicate
   different payload type numbers for the same codecs, in which case,
   the offerer MUST send with the payload type numbers from the answer.

      Different payload type numbers may be needed in each direction
      because of interoperability concerns with H.323.
 
Cheers,
Charles

> To me it just seems like a completion (admittedly, somewhat out of place).
> 
> > That said, I can certainly see where someone else may interpret it
> > differently.
> 
> Agreed. Definitely 3264bis material.
> 
> Cheers,
> Emil
> 
> --sent from my mobile
> >
> > Cheers,
> > Charles
> >
> > > Cheers,
> > > Emil
> > >
> > >
> > > --
> > > https://jitsi.org
> > > _______________________________________________
> > > mmusic mailing list
> > > mmusic@ietf.org
> > > https://www.ietf.org/mailman/listinfo/mmusic
> > _______________________________________________
> > mmusic mailing list
> > mmusic@ietf.org
> > https://www.ietf.org/mailman/listinfo/mmusic
>