Re: [MMUSIC] Trickle ICE
Emil Ivov <emcho@jitsi.org> Fri, 12 October 2012 19:00 UTC
Return-Path: <emil@sip-communicator.org>
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 C56D221F8750 for <mmusic@ietfa.amsl.com>; Fri, 12 Oct 2012 12:00:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level:
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
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 wtam38OLFrBS for <mmusic@ietfa.amsl.com>; Fri, 12 Oct 2012 12:00:46 -0700 (PDT)
Received: from mail-wg0-f44.google.com (mail-wg0-f44.google.com [74.125.82.44]) by ietfa.amsl.com (Postfix) with ESMTP id 1514E21F8879 for <mmusic@ietf.org>; Fri, 12 Oct 2012 12:00:35 -0700 (PDT)
Received: by mail-wg0-f44.google.com with SMTP id dr13so1737608wgb.13 for <mmusic@ietf.org>; Fri, 12 Oct 2012 12:00:35 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; 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=s7CYsNwbte84yZt65zYcEm/rINyAgkB8X7/waPAX9NI=; b=UtM/dwU0IoA1srTfIRZSi9ShIVMWG9Ep23DgSPe7VWLGSdw7qr1RLXFUHsTHcP8JEg xHN42fYmOGF2jrNlmUPvCB2P6csu2fKofGuHUzNX1OMw6zTKVOjqZ+Ch+9xGkoTsbdBA MFfQR7+BeCiYDISzfDQr0KDpxKwJYCANsAlX9OIKps5/ntFb3MARKreNw+0A80bOIaAO YIMmU1U3WO2TubJewEF1OHLF5QZY2TTxVtkFxBwo9167UbhO/L88RiSLb0HC5KeP4N7z wDxrkcRLcLGkkkng92oKnWrSDix0sy/2h5G7UIglO0/VFLfpv1ZfJK8x36F6nNAqBk+M PlQg==
Received: by 10.216.207.93 with SMTP id m71mr2844797weo.201.1350068435181; Fri, 12 Oct 2012 12:00:35 -0700 (PDT)
Received: from camionet.local ([2a01:e35:2e2c:f600:5c2a:e2a8:a4af:298b]) by mx.google.com with ESMTPS id p4sm5188888wix.0.2012.10.12.12.00.33 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 12 Oct 2012 12:00:33 -0700 (PDT)
Message-ID: <507868D0.8010804@jitsi.org>
Date: Fri, 12 Oct 2012 21:00:32 +0200
From: Emil Ivov <emcho@jitsi.org>
Organization: Jitsi
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:15.0) Gecko/20120907 Thunderbird/15.0.1
MIME-Version: 1.0
To: Lishitao <lishitao@huawei.com>
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> <7F2072F1E0DE894DA4B517B93C6A0585340BE3F450@ESESSCMS0356.eemea.ericsson.se> <50773B73.6060508@jitsi.org> <DA165A8A2929C6429CAB403A76B573A51504EA96@SZXEML510-MBX.china.huawei.com>
In-Reply-To: <DA165A8A2929C6429CAB403A76B573A51504EA96@SZXEML510-MBX.china.huawei.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-Gm-Message-State: ALoCoQnOHArBEtbXGudF1j7QCNkxsxQJjiHejS41gJMEghtCapK03TlcbjGlqOGqxuZXunLIkNWM
Cc: MMUSIC IETF WG <mmusic@ietf.org>, Christer Holmberg <christer.holmberg@ericsson.com>
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: Fri, 12 Oct 2012 19:00:47 -0000
Hey Shitao, On 12.10.12, 04:43, Lishitao wrote: > Hi Emil > >> -----Original Message----- >> From: mmusic-bounces@ietf.org [mailto:mmusic-bounces@ietf.org] On Behalf >> Of Emil Ivov >> Sent: Friday, October 12, 2012 5:35 AM >> To: Christer Holmberg >> Cc: MMUSIC IETF WG >> Subject: Re: [MMUSIC] Trickle ICE >> >> Hey Christer, >> >> On 11.10.12, 21:23, Christer Holmberg wrote: >>> >>> 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, >> >> How does Bob know that there's going to be a "later" ? It's just a >> vanilla ICE agent that assumed it received a full set of candidates, it >> checked them all, all checks failed. >> >> Now, we could rely on Bob not doing anything rash and waiting patiently >> for reINVITEs from Alice in order to get more candidates ... but that >> might be about as risky as relying on empty INVITEs to be handled >> properly by everyone or on OPTIONS to be transmitted end-to-end. >> >> Besides there are other possible failures, like for example the case >> where I get your server reflexive candidates long before you get mine so >> we perform checks out of sync (the case that I also described in my >> other mail to Martin). >> >>> 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. >> >> You mean, because legacy devices don't properly implement 3261 in that >> regard? >> >> That might actually be a good thing. An error response at this point >> would be a good indication that there's no trickle ICE support at the >> remote side. > > In this way , as christer described, it won't save any time in call establishment. I believe Christer was referring to the case where an extra RTT right before trickle ICE negotiation. In this case however we are talking about an extra RTT that happens before a vanilla ICE session and that is not in anyway blocking candidate harvesting, so I don't see how it would be a problem. That said, I already agreed that relying on empty INVITEs has other disadvantages (same as empty INVITEs outside the context of ICE). >>> In addition, there migth be other functions which do not work with >>> empty INVITEs. >> >> OK, I agree. It's a clumsy solution at best. It would be impossible for >> SIP user agents to translate a user request to start an audio, >> audio/video or some other media session (which is the typical rant you >> get for handling empty INVITEs). It was just a thought :) >> >>> And, I am not sure how it would work with JSEP. >> >> You mean, in cases of gatewaying SIP to WebRTC? I suppose it could just >> be translated to some custom signalling that actually does capability >> negotiation and then triggers a remote INVITE ... OK I know, it's a stretch. >>> >>> >>>>>>>> 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. >> >> The OPTIONS request does not need to be sent right before the call. It >> can be done once, upon bootstrap. > > If the callee has already in your contact list, of course you can do that, but if you > call a strange number at the first time, the OPTION request should be sent right > before the call. Yes, good point! Emil > > > /Shitao > >>> 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... >> >> I agree. Not sure what to say other than, I agree that SIP does not have >> good mechanisms for XMPP like negotiation of entity caps but, >> personally, I do believe that finding one would be helpful here. >> >> Maybe we can work on making sure that 3840 (or some other mechanism) >> would better allow for caps to be discovered in advance. >> >> At the very least, if we can't find a way to do this gracefully with >> SIP, we can RECOMMEND it whenever the protocol allows it and try to >> devise a fall back strategy when it does not (e.g. with SIP). >> >>> 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 :) >> >> OK. Agreed. >> >>> 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. >> >> I am not sure I got this. >> >> Cheers, >> Emil >>> >>> >>> Regards, >>> >>> Christer >>> >>> >> _______________________________________________ >> mmusic mailing list >> mmusic@ietf.org >> https://www.ietf.org/mailman/listinfo/mmusic > -- https://jitsi.org
- [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