Re: [MMUSIC] Bundle offer with different ports - where to expect media?

Paul Kyzivat <> Tue, 21 May 2013 17:58 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 8AC2421F977A for <>; Tue, 21 May 2013 10:58:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.018
X-Spam-Status: No, score=-0.018 tagged_above=-999 required=5 tests=[AWL=-0.181, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, J_CHICKENPOX_14=0.6, RDNS_NONE=0.1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id tecMszJKOFxS for <>; Tue, 21 May 2013 10:57:56 -0700 (PDT)
Received: from ( [IPv6:2001:558:fe14:43:76:96:62:24]) by (Postfix) with ESMTP id D99FE21F963A for <>; Tue, 21 May 2013 10:57:45 -0700 (PDT)
Received: from ([]) by with comcast id eanb1l0050cZkys51hxlqJ; Tue, 21 May 2013 17:57:45 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([]) by with comcast id ehxk1l0103ZTu2S3WhxkK6; Tue, 21 May 2013 17:57:45 +0000
Message-ID: <>
Date: Tue, 21 May 2013 13:57:44 -0400
From: Paul Kyzivat <>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: Emil Ivov <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=q20121106; t=1369159065; bh=7r/wX/L2vYOGXgHEoUmJenWMkPM1HPnS1T/Y/Sk6k3w=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=Y12fbQSVQfIYYznHMQ04bJFQRChOOS+fSQb10Js2pVdYKLt3fP2m9A1dWWr3ULtui RP2+FdM8Znn8tLui7hAuEcBt9ABcm2wetW8/qQNC7PdPnvLSxMN+WxjjDySN9LQq5c 72AsxgC8dgpvxZRMixAi/OQ+i796vhdAg6PCEiLuiGTY0m49xwM5LWdNonV8asjOXn 8s4fQ0yZKK8iIBMmyZVdKeIIwJUFKRx1EoSG8Fy43Lb9A/4Bly8UWXBboG5r5qwtKY 4uFnU7G6aZEN7alpbkPULRScPtbz33t/LnxjXBPOCEiZ2j9XDFSB1ChUaSiFKtniyD jFDeInZ4Sn8dQ==
Cc: mmusic <>, Christer Holmberg <>
Subject: Re: [MMUSIC] Bundle offer with different ports - where to expect media?
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 21 May 2013 17:58:05 -0000

On 5/21/13 4:45 AM, Emil Ivov wrote:
> Hey Paul,
> On 20.05.13, 18:09, Paul Kyzivat wrote:
>> On 5/20/13 10:51 AM, Emil Ivov wrote:
>>> Hey Christer,
>>> On 20.05.13, 17:16, Christer Holmberg wrote:
>>>> Hi,
>>>>>>> What happens when the offerer knows the answerer has bundle
>>>>>>> support, sends all m-lines with the same port, then the
>>>>>>> answerer splits the first line away from the bundle? Would the
>>>>>>> answerer still send everything to the same port?
>>>>>> We discussed this week,
>>>>> Yes, sorry, I didn't follow this closely.
>>>>>> and the outcome (at least my read of it :) was that the answerer
>>>>>> is not allowed to split any m- lines away from the bundle in this
>>>>>> case. Instead the answerer will have to send a new offer for the
>>>>>> split, allowing new ports to be negotiated at both ends.
>>>>> OK, so shouldn't the same thing happen in the case with different
>>>>> ports?
>>>> I suggested that it should never be allowed to split an m- line from
>>>> a bundle group in an answer, but others had other opinions.
>>> I don't see how we could allow it in one case and disallow it in the
>>> other. The only difference between the two cases is how informed the
>>> offerer is about the answerers bundle support capabilities and I don't
>>> really understand why this would influence the decision to allow
>>> splitting bundles one way or the other.
>> It is a different case because the same port *can't* both be used as the
>> bundle port and a port for an unbundled m-line.
> Why not? Obviously the offerer was prepared to demultiplex traffic
> there. Why wouldn't it be able to continue doing so even if the answerer
> would prefer to receive it separately?

The point of wanting the one line unbundled is so that it can be 
*received* on a different address/port. Perhaps there is a separate 
device or process that will be supporting that one, that must be reached 
at its own addr/port.

Unless you expect that this would have a common addr/port on the 
offering side and different addr/ports on the answering side. But we 
investigated that approach early in the bundle discussions, and gave it up.

> Note that I am not defending such an approach. I'd much prefer that
> splitting is only allowed when re-offering.
>>>> HOWEVER, it would still not help in the case where the 1st m- line is
>>>> rejected.
>>> Well, how about looking at it this way: the offerer specifies a bundle
>>> port in the first m=line. This also happens to be the port for the first
>>> media line but the two are different things and just happen to have the
>>> same value for reasons related to syntax and convenience.
>>> A bundle supporting answerer should understand this. After receiving the
>>> offer that answerer has learned the bundle port number. Rejecting the
>>> first m=line in the answer does not change this.
>> There are many reasons that an answerer may reject an m-line.
>> It is *possible* that it is rejecting it because it has a problem with
>> the address (c=) for the m-line in the offer. If so, then if you insist
>> on using it as the bundle address, even if the m-line is refused, then
>> there is no way for the answerer to refuse it.
>> (*Why* it would have a problem is an open question. Maybe its IPv6 and
>> the answerer can't use it, or maybe its an FQDN and it can't be
>> resolved. I realize this is unlikely. But making the assumption that the
>> address must be acceptable to the answerer is IMO not a good idea.)
> Aha! That's a good point.
> Still, the thing that I don't quite understand is: if the answerer has a
> problem with the c= line, how could that problem only apply to the first
> m= line and not to the entire bundle?

Presumably this would only happen if the c= for were not all the same in 
the offer. Certainly that is possible. When allocating "ports" for each 
m-line one might also end up with different addresses.

>>> Of course the answer would come with the first m=line having a 0 port
>>> but the offerer would then just learn the bundle port number at the
>>> first m=line with a non-zero port.
>> I presume you must have a motivation for wanting to go this way.
>> Are you thinking this will simplify the implementation?
> No. The implementation is going to be slightly more complicated indeed
> because instead of having one bundle demuxing socket and two regular
> ones (well ... if rtcp demuxing counts as regular) you would have three
> of them. I don't think this would be particularly horrifying in terms of
> complexity though.
> Still, I think being consistent about the ports where one could get
> multiplexed data is a good thing, and it could help (humans) when
> analysing traffic and debugging network issues.

Consistency is good. But isn't it just as consistent to say that the 
first *accepted* m-line defines the bundle addr/port as it is to say 
that the first offered m-line?