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

Emil Ivov <> Tue, 21 May 2013 12:15 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 34B1021F96B6 for <>; Tue, 21 May 2013 05:15:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.239
X-Spam-Status: No, score=-2.239 tagged_above=-999 required=5 tests=[AWL=-0.240, BAYES_00=-2.599, J_CHICKENPOX_14=0.6]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OgbxUu+HgnR3 for <>; Tue, 21 May 2013 05:15:28 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4008:c01::229]) by (Postfix) with ESMTP id E657021F9631 for <>; Tue, 21 May 2013 05:15:27 -0700 (PDT)
Received: by with SMTP id jc10so322611bkc.28 for <>; Tue, 21 May 2013 05:15:27 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=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=WT6q0TyEVgTAjNu1MpWeMIMekbzEW7fqe4cnKNAbQgA=; b=DY2xwCPLzFlVGgGf1wUr7IRquE0C1+VCekZppH/LOQbX6er3IpcxSBJAid5fdjbY02 opP5VcWAfCrsgNCAT4dzX7gnTfR6Hri4/5xQLenNSYCwNzHBp1+rVAsHOuOxqx1PrgoK v3Kep09U1VxNlWXOs7uooDWQuhAhrLvyxBx4sNamLu25ULJ/6jVtbHg+tIRxxM+MyVMm f6nT+6cdxWmlIj/vwD/Q2K2I/eErIfDL2CnIXRpgtRtTwU3M6smWL5U9fxc0th8pYl4z rcK/neIWf1bJx9iAFAi5BIypDxVi4pYuKg+Ee+hKr9nG9s5QiGL73r8ccbH0kMTcwUKY 8z/g==
X-Received: by with SMTP id cj5mr1053735bkb.60.1369138526820; Tue, 21 May 2013 05:15:26 -0700 (PDT)
Received: from [] ([]) by with ESMTPSA id tl1sm606902bkb.7.2013. for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 21 May 2013 05:15:25 -0700 (PDT)
Message-ID: <>
Date: Tue, 21 May 2013 15:15:23 +0300
From: Emil Ivov <>
Organization: Jitsi
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: Christer Holmberg <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Gm-Message-State: ALoCoQladSHvfzbC9VHRYQbkARzZw8izIwBkQ6kqUJYnznQc1FgJ1oUFFbwQOh5TneXzY1Wu4n+W
Cc: mmusic <>, Paul Kyzivat <>
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 12:15:29 -0000

Hey Christer,

On 21.05.13, 14:53, 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?
>> Note that I am not defending such an approach. I'd much prefer that splitting is only allowed when re-offering.
> Well, it could maybe work - but that means that the endpoint using the same port would have to include the m- line in the bundle group in subsequent offers/answers - otherwise you break the rule of not being allowed to use the same port number in an m- line :)

Right. Or now that it at that point it could choose a different port
(but again I am not defending this approach).

>>>>> 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?
> It could. The reason we're talking about the first m= line is because it has been suggested that should represent the "bundle port".

What I meant was the following:

Paul expressed a concern that if we were to insist on using the first
port from the rejected m= line, this could cause problems in cases where
that line was rejected exactly because of that port (or the entire c=
address for that line) did not please the answerer.

I suppose this was an argument for using the remaining topmost
address/port as a bundle address (rather than the one that was rejected).

I guess what I don't understand is: what would be the case where an
offerer created an offer such that the address in the topmost m=line was
problematic for the answerer but the one in the second m= line was
different enough so that it wouldn't be and so that it could
successfully become the new bundle address.

How likely would such a case be?


> Regards,
> Christer
>>>>> 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.
> Emil
> --