Re: [MMUSIC] draft-ivov-mmusic-trickle-ice-sip-00

Paul Kyzivat <pkyzivat@alum.mit.edu> Thu, 25 July 2013 23:26 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 EF21421F89A5 for <mmusic@ietfa.amsl.com>; Thu, 25 Jul 2013 16:26:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.267
X-Spam-Level:
X-Spam-Status: No, score=0.267 tagged_above=-999 required=5 tests=[AWL=-0.496, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, J_CHICKENPOX_13=0.6, J_CHICKENPOX_19=0.6, RDNS_NONE=0.1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P2tCAo2JTDP1 for <mmusic@ietfa.amsl.com>; Thu, 25 Jul 2013 16:26:31 -0700 (PDT)
Received: from qmta09.westchester.pa.mail.comcast.net (qmta09.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:96]) by ietfa.amsl.com (Postfix) with ESMTP id D4F3B21F8925 for <mmusic@ietf.org>; Thu, 25 Jul 2013 16:26:19 -0700 (PDT)
Received: from omta08.westchester.pa.mail.comcast.net ([76.96.62.12]) by qmta09.westchester.pa.mail.comcast.net with comcast id 4mXC1m0040Fqzac59nSKrn; Thu, 25 Jul 2013 23:26:19 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta08.westchester.pa.mail.comcast.net with comcast id 4nSK1m00B3ZTu2S3UnSKLm; Thu, 25 Jul 2013 23:26:19 +0000
Message-ID: <51F1B41A.3000700@alum.mit.edu>
Date: Thu, 25 Jul 2013 19:26:18 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130620 Thunderbird/17.0.7
MIME-Version: 1.0
To: Emil Ivov <emcho@jitsi.org>
References: <51F15BC0.2000401@alum.mit.edu> <7594FB04B1934943A5C02806D1A2204B1C408F15@ESESSMB209.ericsson.se> <51F17512.8090700@jitsi.org> <51F184E8.40406@alum.mit.edu> <51F18DA9.1080509@jitsi.org> <51F19C9A.3040706@alum.mit.edu> <51F1A77F.10608@jitsi.org>
In-Reply-To: <51F1A77F.10608@jitsi.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1374794779; bh=DS9WEvOC4gXL8Z0WNSfBIfV5sDb1a4IdAh9qtP1Nwo4=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=PUoVz258KuSPQVEsuOJnb81vDm5sCueM7r97tUMwSVFtSTiksL2B9e8rKEivJJHK3 jHC4X7gxAN/FDt/N0SlxndsJU0NqGnlm85KAsw+fH3HE7CEhOl1c7wjbNBjtRunskJ Javpso8WLXrmE23ysOCYh2wG+H35XvX3Y/9f0xfi3e3KqNWacbQQIQx4ISgV3x7CUs vrwdxLNe9bjEzdepskWFn5htWlymNPyB2+T/v7yHXLcL0srURyS3n9BFWnyY6Gj2mj 7bJ3lN6q63TCyu6bYBBwLlyjb9UNboK27IfAxCJGnci1PwnGDFxknHwyL2byXIxAIk 7r5TyY3Ei1K0g==
Cc: IETF MMUSIC WG <mmusic@ietf.org>, Christer Holmberg <christer.holmberg@ericsson.com>
Subject: Re: [MMUSIC] draft-ivov-mmusic-trickle-ice-sip-00
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, 25 Jul 2013 23:26:36 -0000

Emil,

On 7/25/13 6:32 PM, Emil Ivov wrote:
> Hey Paul,
>
> On 25.07.13, 23:46, Paul Kyzivat wrote:
>> On 7/25/13 4:42 PM, Emil Ivov wrote:
>>
>>>>>> On 25.07.13, 19:09, Paul Kyzivat wrote:
>>>>>>
>>>>>> Section 4 says that trickled candidates are transported as INFO
>>>>>> payloads
>>>>>> containing SDP formatted according to ivov-mmusic-trickle-ice. But
>>>>>> AFAICT that draft doesn't specify this.
>>>>>
>>>>> Well, it just borrows the format from 5245 and says that this is
>>>>> how you
>>>>> represent trickled candidates.
>>>>
>>>> But all of that assumes a full SDP body.
>>>
>>> I don't see how the syntax of an "a=candidate" line depends on the full
>>> SDP body, so I don't see the problem with just pointing there. Again, I
>>> mean this only about syntax.
>>
>> My point is that 5245 never suggests that ICE will be represented in SDP
>> in anything but a full SDP body.
>>
>> If you said that you were proposing to send subsets of SDP as described
>> in 5245, that would make some sense.
>
> The section that deals with this is 9.1
>
> http://tools.ietf.org/html/draft-ivov-mmusic-trickle-ice-00#section-9.1
>
> The intention is exactly what you describe above.

Maybe you intended that. But I don't find sufficient words in the doc to 
determine what you mean. The words that seem to pertain to this are:

    Given that such lines do not provide a relationship between the
    candidate and the m line that it relates to, signalling protocols
    using trickle ICE MUST establish that relation themselves.  This can
    be done in one of two ways: using the m-line index, or an MID
    [RFC3388].  The m-line index is a zero-based index, referring to the
    Nth m-line in the SDP.  The MID uses "media stream identification",
    as defined in [RFC3388], to identify the m-line.

So I'm supposed to infer that you are proposing to use a subset of SDP 
from that???

Also, what does "signalling protocols using trickle ICE MUST establish 
that relation themselves" *mean*? Does it mean that you intend the INFO 
message containing the trickle ice info in its body to specify the 
m-line somewhere other than in the same body???

I would expect that the body you send would include something to do 
this. If you use mid, then the syntax to do so already exists, sort of. 
If you use m-line index, then it doesn't.

>> (As long as you specify how to
>> select the subset.)
>
> The subset is an "a=candidate" line. I don't think select is the right
> word here though. You just encode an ICE candidate, as you would encode
> it for an SDP offer or answer.
>
>>>>>> Also the example in this section
>>>>>> shows an info payload that contains only a subset of SDP, and doesn't
>>>>>> conform to mime type application/sdp.
>>>>>
>>>>> Yup, should be application/sdpfrag.
>>>>
>>>> Well, AFAIK there is currently no such mime type. So its necessary to
>>>> define it.
>>>
>>> This is the point of the draft I pasted above:
>>> http://tools.ietf.org/html/draft-ivov-dispatch-sdpfrag-00
>>>
>>> Of course, it does need more work (by the way, help there is more than
>>> welcome so if you want to join just let me know).
>>
>> Oh, duh. That slipped right by me. But of course it is incomplete.
>>
>> I could help, once I understand what it needs to say.
>
> Great!
>
>> The first decision is:
>
> Did you miss something here?

I forget. It doesn't matter.

>>>> And while you could define a generic one, you have some specific
>>>> requirements about what this needs to contain, so you might want to
>>>> define application/trickle-ice-sdp with all the requisite rules.
>>>
>>> The original idea (which I believe came from Adam) was that this could
>>> be avoided in a way similar to how application/sipfrag does it. I
>>> basically specifies syntax (as a SIP subset) and leaves semantics to
>>> specs that are using it, like for example 3515
>>>
>>> Do you see any reason why this couldn't work here?
>>
>> Its a choice. In the case of sipfrag, IIRC it was defined for use with
>> 3515. In that it isn't crucial what is in it. So it works there.
>>
>> In your case what goes in it is more critical. It can still be defined
>> this way. But it will take some care to get it right.
>>
>> The main thing is that it be done somewhere!
>
> Agreed!
>
>> Can an INFO trickle ICE candidates for more than one m-line?
>
> Yes.
>
>> If so, it gets messy. Consider a full SDP:
>>
>> ...
>> m=...
>> a=mid:1
>> a=candidate:...
>> ...
>> m=...
>> a=candidate:...
>> a=mid:2
>> a=candidate:...
>>
>> (AFAIK the above is entirely legal.)
>>
>> Now consider a sipfrag for trickle from the above:
>>
>> a=mid:1
>> a=candidate:...
>> a=candidate:...
>> a=mid:2
>> a=candidate:...
>>
>> Now, which candidates go with which m-line? So, I think your sdpfrag
>> needs special constraints that don't apply to ICE in full SDP.
>
> I think the problem with the above is that you are trying to present it
> as an extract from some pre-existing offer or answer, while it isn't.
>
> When you are trickling you find yourself in a situation where you have
> one or more newly learned candidates. You want to send those to the
> remote agent.
>
> To do this you group them by stream (as in "m=" line). For each group
> you start by creating an "a=mid:x" attribute that matches the one from
> the "m=" line that created the stream. You then create and append
> "a=candidate" lines for every candidate in that group.
>
> That's it.

I thought that is what you had in mind.

But you have said you want to use application/sdpfrag, which means it 
should be viewed as a subset of a full SDP. And that is especially so if 
you intend to reference m-lines in an SDP, but don't want to include 
them. And you haven't defined any new ordering rules for lines other 
than what exist for SDP. And SDP allows the ordering I show above, which 
doesn't work for you.

I'll also mention that I think you need to explicitly reference the SDP 
offer or answer that this trickle updates. Probably by replicating the 
o-line from that SDP.

So there are some significant syntax rules that need to be followed 
here. I would expect something like:

- must start with o-line of the SDP it is updating
- has one or more "media sections"
- each media section begins with an a:mid line, referencing
   a mid defined in the referenced SDP
- each a:mid line is followed by one or more a:candidate lines
...

If going that way, then I think it is better to define a mime type that 
consists of exactly this syntax, with some extensibility hooks.

	Thanks,
	Paul

> The receiving peer does the opposite: it parses the "a=mid:x" line, it
> finds the stream object that it refers to, then parses all the
> candidates and adds them there.
>
> Does this make sense?
>
> Emil
>
>
>>
>>     Thanks,
>>     Paul
>>
>>> Emil
>>>
>>>>>> Section 5.6 again references the trickle-ice draft (section 4) for
>>>>>> definition of the body of the info message, but that section of that
>>>>>> draft doesn't contain any such definition.
>>>>>
>>>>> Will need to fix.
>>>>>
>>>>>> Aside from that, it occurs to me that trickle-ice, and for that
>>>>>> matter
>>>>>> ice in sip even without trickle, is a good candidate for
>>>>>> preconditions.
>>>>>> The use of preconditions could eliminate the need for half trickle.
>>>>>> This
>>>>>> would of course require a new precondition type, but that is doable.
>>>>>
>>>>> Hmmm ... that's a good point!
>>>>>
>>>>>> By using preconditions, you can establish the dialog without alerting
>>>>>> the callee. Then the alert can be deferred until at least one
>>>>>> workable
>>>>>> path has been detected.
>>>>>>
>>>>>> (But I suppose the hate for preconditions is so great that this is
>>>>>> not
>>>>>> to be considered.)
>>>>>
>>>>> Well, it doesn't have to be mandatory ...
>>>>>
>>>>> Emil
>>>>>
>>>>>>
>>>>>>            Thanks,
>>>>>>            Paul
>>>>>> _______________________________________________
>>>>>> mmusic mailing list
>>>>>> mmusic@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/mmusic
>>>>>
>>>>
>>>> .
>>>>
>>>
>>
>>
>