[Nice] SIP forking?
Rémi Denis-Courmont
remi.denis-courmont at nokia.com
Mon Jun 23 06:25:33 PDT 2008
Le Thursday 19 June 2008 22:22:47 ext Olivier Crête, vous avez écrit :
> I'm in the process of fixing the candidate-setting API in Farsight2. One
> issue where I am not certain how to proceed is SIP forking, since
> libnice doesn't support it yet.
>
> I guess one would have to set more than one set of remote candidates and
> do connectivity checks with them before selecting the set that will be
> picked?
Yeah. In theory. This gets really nasty, though. As far as I can tell, you
would need to map incoming STUN connectivity checks to forked branch based
solely on the USERNAME, since the source IP/port might not even match any
known remote candidate. And then you duplicate the role handling state, the
timers, everything...
I wonder how to cope with a mix of ICE-capable branches and non-ICE-capable
branches as well...
> Or would be call set_remote_candidates() with one set of candidates...
> and then if its not the one that's chosen, do a ICE restart and re-set
> the candidates from the chosen partner?
Not simple, but at least much more simple.
> Do we know if other ICE implementation do it and how they do it?
Last time I checked the only other usable ICE implementation was pjsip. I
don't know how they cope with this, if at all though.
--
Rémi Denis-Courmont
Maemo Software, Nokia Devices R&D
More information about the Nice
mailing list