[Telepathy] list of S-E changes needed for ICE-10

Kai Vehmanen kvehmanen at eca.cx
Wed Sep 13 06:40:36 PDT 2006


Hi,

On Wed, 6 Sep 2006, Rob Taylor wrote:

>> * Unlike in JEP-176, ICE-10 has strict rules when an endpoint can
>>   send media (finding a valid candidate pair is not sufficient). A second
> Yeah, the second round is certainly something that's SIP specific - as
> stated in ICE-10, this round is required so the m/c line has the correct
> values to support legacy infrastructure. I'd hope for updates to JEP-176
> we can drop that.

true, although similar needs (adding passive on path components that need 
to know which candidate-pair was selected) might turn up for Jabber as 
well some time in the future (there has been a clear market demand for 
these devices in SIP). Also the second o-a round has the benefit of 
avoiding unnecessary swapping between different network paths for RTP 
traffic that can cause trouble to jitter buffers (nasty if happens 
systematically during every call).

> I'm a little confused about what's insufficient about using
> NewActiveCandidatePair, though :/ (apart from it currently being
> unimplemented...)

The In-Use-Candidate concept is somewhat different:

- you need to set one when initiating a session (i.e. when information
   about remote candidates is not yet available)
- ICE mechanism has come up with an "active" pair of candidates that
   are different from the current "In use" candidate pair

And the semantics of SetActiveCandidatePair need to be carefully defined. 
>From ICE POV, this call does not make sense as it's the ICE engine that 
finds a candidate pair - not a set up possible pair, but one pair (this is 
where the preferences come into play).

So I'd interpret SetActiveCandidatePair as a kind of forced override 
method, but it's not obvious what the semantics are. My vote would go for 
defining SetActiveCandidatePair as a "disable ICE and just use these 
transports" method (not to be used unless the stream-engine client wants 
to stop using ICE).

>> * The priority scheme has changed radically and the pref values are now
>>   represented as 32+bit integers. The TP interface currently uses a double
> I was actually thinking about changing it from a double to an INT64 (or
> INT32 if the problem of >32bit long prefs is fixed)

It's now going to be a INT64, which might cause some headaches as a double 
has less significant bits we can use.

>> * API for S-E to report new discovered remote candidates (peer derived).
> Yep, this wasn't added to the current spec we just weren't sure whether
> it was staying or not =)

I also was expecting this to go away, but still seems to be there. There 
is a race condition related to the two-rounds-of-offer-answer that seems 
unsolvable without the remote-candidates attribute (see sect A.8 of 
draft-ietf-mmusic-ice-10.txt).

>> * OPEN: whether the 'frozen' candidate attribute needs to be exposed
>>   to S-E API -- probably not.
> yeah, I think candidate types can pretty much stay within the ICE
> implementation - it doesn't seem to be needed in any signalling.

True. Although the type info (not 'frozen', but native 
derived/server-reflexive, or relayed information is useful in case the 
clients wants to override the ICE process with SetActiveCandidatePair).

-- 
  under work: Sofia-SIP at http://sofia-sip.sf.net


More information about the Telepathy mailing list