Re: [MMUSIC] Trickle ICE
Christer Holmberg <christer.holmberg@ericsson.com> Thu, 11 October 2012 19:23 UTC
Return-Path: <christer.holmberg@ericsson.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 63F3611E80D2 for <mmusic@ietfa.amsl.com>; Thu, 11 Oct 2012 12:23:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.13
X-Spam-Level:
X-Spam-Status: No, score=-6.13 tagged_above=-999 required=5 tests=[AWL=0.119, BAYES_00=-2.599, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_MED=-4]
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 mzHDqrdhZt5V for <mmusic@ietfa.amsl.com>; Thu, 11 Oct 2012 12:23:27 -0700 (PDT)
Received: from mailgw7.ericsson.se (mailgw7.ericsson.se [193.180.251.48]) by ietfa.amsl.com (Postfix) with ESMTP id 6157921F84F1 for <mmusic@ietf.org>; Thu, 11 Oct 2012 12:23:26 -0700 (PDT)
X-AuditID: c1b4fb30-b7f7d6d0000042ea-68-50771ca78598
Received: from esessmw0197.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw7.ericsson.se (Symantec Mail Security) with SMTP id AE.C4.17130.7AC17705; Thu, 11 Oct 2012 21:23:19 +0200 (CEST)
Received: from ESESSCMS0356.eemea.ericsson.se ([169.254.1.243]) by esessmw0197.eemea.ericsson.se ([153.88.115.87]) with mapi; Thu, 11 Oct 2012 21:23:19 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: 'Emil Ivov' <emcho@jitsi.org>
Date: Thu, 11 Oct 2012 21:23:18 +0200
Thread-Topic: [MMUSIC] Trickle ICE
Thread-Index: Ac2nqmmMInWwRMoFTXe0KE38VnvaCgAMlC6A
Message-ID: <7F2072F1E0DE894DA4B517B93C6A0585340BE3F450@ESESSCMS0356.eemea.ericsson.se>
References: <20121010141600.30314.22528.idtracker@ietfa.amsl.com>, <5075864F.3030700@jitsi.org> <7F2072F1E0DE894DA4B517B93C6A0585340BAFAA6E@ESESSCMS0356.eemea.ericsson.se>, <5075FB20.6070408@jitsi.org> <7F2072F1E0DE894DA4B517B93C6A0585340BAFAA74@ESESSCMS0356.eemea.ericsson.se> <5076B8E4.6050307@jitsi.org>
In-Reply-To: <5076B8E4.6050307@jitsi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrOLMWRmVeSWpSXmKPExsUyM+Jvre5ymfIAg4vrDSzW7JzAYjF1+WMW ByaPJUt+Mnn8fxMYwBTFZZOSmpNZllqkb5fAlXF5xj3Ggv+mFbt7frA1MH7V6mLk5JAQMJHo +/qeGcIWk7hwbz1bFyMXh5DAKUaJqW/nM0E4Cxkl2lZcYOxi5OBgE7CQ6P6nDdIgIqAo0fxl MxuIzSygIrHv3g1GEJtFQFVi6uI5YHFhoJpbxzexQdQrSTx/PokVwjaS6JtyhQVkJK9AuMSr qdIQq7YxSVyb9ocJpIZTQFNiUuspsOMYgY77fmoNE8QucYlbT+YzQRwtILFkz3moB0QlXj7+ xwpRLypxp309I0S9jsSC3Z+g7tSWWLbwNVg9r4CgxMmZT1gmMIrNQjJ2FpKWWUhaZiFpWcDI sopRODcxMye93FwvtSgzubg4P0+vOHUTIzByDm75bbCDcdN9sUOM0hwsSuK8eqr7/YUE0hNL UrNTUwtSi+KLSnNSiw8xMnFwSjUwWgnnKG3PNZecekVkV3d/kdqKw7NipOJ7Z5WdYU1u/uIi tF5z9t7sraE3ZhxKFV7S+VzsScu3nfP/x11Ye0egpH9H2eJkm9NhZo/z65qDFZez33454emC i8+WqqzcOpNbVfRj4z3PKjm+eMmnKmu4TE0izbJTvj38rZRnv9gheuXq1T4X/68zUWIpzkg0 1GIuKk4EAAyWHrpqAgAA
Cc: MMUSIC IETF WG <mmusic@ietf.org>
Subject: Re: [MMUSIC] Trickle ICE
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, 11 Oct 2012 19:23:31 -0000
Hi, Q1: Remote endpoint support (SIP): ---------------------------------- >>>> You say that, before the first offer is sent, one SHOULD determine >>>> whether the remote endpoint supports trickle ICE. >>>> >>>> For SIP, you give RFC 3840 as an example. I am not sure how that >>>> will work. Yes, you can use 3840 to request that the offer is sent >>>> to an entity which supports trickle ICE (for that, btw, you will >>>> also need to define an option tag, or something similar), >>> >>> Right, but we were hoping this would happen in a separate spec that >>> details use of trickle ICE with SIP. >>> >>>> but you cannot use it >>>> to determine whether the remote endpoint supports trickle ICE. In >>>> addition, you typically use 3840 at the same time when you send the >>>> initial offer. >>>> >>>> Of course, you could use SIP OPTIONS. >>> >>> Yes, that was the idea. The way 3840 describes it in Section 8. >>> >>>> But, there are a number of issues related to that, and I don't think >>>> we want to define a mechanism which relies on the usage of OPTIONS. >>>> >>>> And, if we simply say that it's "outside the scope of the document", >>> >>> I was just about to say that ;). >>> >>> But, seriously, determining and negotiating caps happens very >>> differently in different signalling protocols, so it doesn't seem >>> reasonable to try and find answers for all of them in the generic >>> trickle ICE spec. >>> >>> XMPP for example, has this part covered pretty well. If we determine >>> that 3840 does not provide a way of doing the same then we can find >>> another way for SIP. >>> >>> Eric had this idea, where a trickle ICE agent would simply fire a >>> first offer that only other trickle ICE agents would accept and that >>> any other SIP endpoint would answer with an error. This would be >>> enough of a check and if it fails the caller can fall back to vanilla ICE. >> >> Sure, but that is not checking for trickle support before sending the >> trickle offer :) > > Yes, the wording may need to be reviewed if we go for this. > >> Also, I guess I still haven't completely understood the backward compatibility issue, but I guess I need to do some more reading. > > We describe these in Section 3 but the main problem is that a vanilla ICE agent that gets a first subset of candidates (that may also be > empty) would declare failure prematurely. The text gives an example where the receiver (Bob) receives a host-candidate-only offer, and start checks which fail. I think it's quite strange if Bob would reject the call at that point. Because, no matter how many candidates the offer contains, there might still be peer reflexive candidates created later, once the offerer (Alice) starts sending the STUN binding requests. So, one would think that Bob at least would wait for those. >>> Another option would be for trickle ICE agents to send empty INVITEs >>> that somehow indicate they will be trickling but contain no actual >>> offer. The offer that the remote side then adds in an OK response (or >>> a provisional one) would clearly indicate whether they support >>> vanilla, trickle, or no ICE at all, so the trickle agent would be >>> able to answer accordingly with the ACK. >> >> I don't think we want to rely on empty INVITEs either, because there are a number of issues related to that. > > Well, it might be worth investigating exactly what they are. The same applies to using OPTIONS and 3840. Well, to start with, empty INVITEs will work very badly with legacy. In addition, there migth be other functions which do not work with empty INVITEs. And, I am not sure how it would work with JSEP. >>>>> we could do the same for BUNDLE, and we wouldn't have issues with >>>>> re-using the same ports in multiple m- lines etc :) >>>> >>>> Well, we are not saying that they should not be addressed at all, or >>>> even now. Just that maybe they shouldn't be addressed by this >>>> specific document. >>> >>> Perhaps we shouldn't say anything about finding out in advance, then. At least not use SHOULD. >>> >>> We CAN describe what may happen if the remote peer does not support trickle ICE, but leave it to that. >> >> What we'd like to avoid is having trickle ICE offers to vanilla ICE agents and then having them fail in a user-perceptible way. >> > Maybe we could modify the "SHOULD verify support" to "SHOULD verify support or provide a mechanism for transparent fallback to vanilla ICE" In my opinion, if one has to do something extra (e.g. send OPTIONS), the whole idea of trickle-ICE goes away, because at the end of the day you won't save any time in call establishment. Now, if the browser is communicating with a ICE terminating gateway, and if the browser performs SIP registration, then the gateway can indicate trickle-ICE during registration. But, in the peer-to-peer case I don't know how it would work. It's not even sure OPTIONS would reach the same remote peer as the INVITE... Q2: Offer/Answer Alignment: --------------------------- >>>> I assume the offers and answer are sent according to the rules in >>>> RFC 3264. >>>> >>>> If so, when you talk about offers and/or answers "being sent at any >>>> point", I think it needs to be clear that it's within the rules of >>>> 3264. >>> >>> Good point! I think the text is indeed a bit unclear in that regard >>> and we might be making some non-stated assumptions about the relation >>> between 3264 Offer/Answer, the actual call answering, and the >>> connectivity checks phase. We'll fix this. >> >> Thanx! :) Q3: Enough is enough: --------------------- >>>> I think it could be useful for the answerer to tell the offerer that >>>> it doesn't want/need any more candidates. >>> >>> Yes, sounds useful. Do you have any specific use cases in mind? >> >> Well, I guess any case where the remote peer knows it has a public IP address (it will most likely be an ICE lite entity). > > Right, but in such cases the offerer would also know that a certain pair has succeeded so if they continue it might be with the purpose of finding a better RTT or a higher priority local candidate. > > I guess what I am trying to say is that a Binding Response is enough of an indication that trickling can stop. If it doesn't then maybe it's for a reason. Maybe it is enough... In any case I think it would be good to document :) Also, at least in cases where the remote peer only provide a host candidate (because it has a public IP address), one should be smart enough to figure out that there most likely will be no better alternative. Regards, Christer
- [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Olle E. Johansson
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Lishitao
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Bernard Aboba
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Olle E. Johansson
- Re: [MMUSIC] Trickle ICE Christer Holmberg