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

Emil Ivov <> Tue, 21 May 2013 08:45 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2B39821F9722 for <>; Tue, 21 May 2013 01:45:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_14=0.6]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id HUuwCixQSUSA for <>; Tue, 21 May 2013 01:45:51 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4008:c01::22d]) by (Postfix) with ESMTP id F0F9C21F96EA for <>; Tue, 21 May 2013 01:45:50 -0700 (PDT)
Received: by with SMTP id je2so189684bkc.32 for <>; Tue, 21 May 2013 01:45:50 -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=BN1jvr1eeYRs0El0LgcloW/opZ2qaajDFUTJ/DyKDsc=; b=C3TZaaJo8mvabbCSEg7oweWLt7EPLkBzz+yp3RXb+H8o+9M2jaCqDkyj7EBPiJclp0 OZJdwIN9y1QoLsaj4e7aHM+k3NKMd39Q46XO1OG4N9UNWDyv/65ikMZ70OKzV9yeBDsF XUhh8LI7W923urpA+g23gH63pGo8hRbl5x639DuNBVjVdCKQz2+E0EP8hCdHfYlahe/M 2rEIzZqLA1JljtHkdErWlAjpQucAajCLcY/oaNoEDdjbkT6NFlzagfcjSCi9+ICFFL8a 45+yl8JK9wDxhpX7ULFPWaVkIhtC8axoYBZd6XuCP7eX64LvEgWDMvhy/4FHSrAjERP8 zeBA==
X-Received: by with SMTP id hr11mr456416bkc.139.1369125949822; Tue, 21 May 2013 01:45:49 -0700 (PDT)
Received: from [] ([]) by with ESMTPSA id cl14sm296199bkb.6.2013. for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 21 May 2013 01:45:48 -0700 (PDT)
Message-ID: <>
Date: Tue, 21 May 2013 11:45:46 +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: Paul Kyzivat <>
References: <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-Gm-Message-State: ALoCoQlSdZVGYAYgUP/Ra2WG2kIz/eaM3J61Wn9+azkwDAWWKTcjZoNaFs2Vvz4mMQg1Hso21Sv6
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 08:45:52 -0000

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?

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?

>> 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.