[Jingle] open issue: removing candidates

Justin Karneges justin at affinix.com
Wed May 13 23:11:00 CDT 2009


On Tuesday 12 May 2009 05:18:12 Olivier Crête wrote:
> On Mon, 2009-05-11 at 22:23 -0700, Justin Uberti wrote:
> > The generation attribute is used for when ICE connectivity fails on
> > all candidates, and a new set of candidates is needed. In this the
> > client allocates a new set of candidates, and the candidates from the
> > older generation are to be discarded upon receipt of a candidate from
> > a newer generation. This would be useful in the case mentioned above
> > where you get a new IP while the call is active.
>
> This looks awfully like an ICE restart.. Except that in that case,
> instead of changing the generation, you change the credentials (see
> ICE-19 9.2.1.1).

Indeed.  9.1.1.1 has a list of "MUST" cases for when you should restart ICE, 
however an IP address change (or a general network connectivity change) is 
not one of them.  Instead, the purpose of ICE restarts seems to be more about 
redirecting media mid-stream (read: SIP madness).

But, I think it could work for recovering from IP/network changes too.

> Also, if your IP address has changed, the XMPP connection is also gone.

Yep, you'd need to reconnect to XMPP first in order to perform the restart.

Moving forward, I think one of two things should happen:

  1) Remove the currently-documented transport-replace + generation attribute 
approach, so that ICE "restarting" is not possible at all in the context of 
XMPP.

  2) Document how to perform restarting clearly, be sure to call it "ICE 
restarts" for consistency with the ICE draft, and strongly consider using the 
ICE approach (change user/pass, rather than introducing a generation 
attribute).

-Justin


More information about the Jingle mailing list