[Nice] Gracefull fallback, renegotiations?

Olivier Crête olivier.crete at collabora.co.uk
Fri Jun 20 11:19:18 PDT 2008


On Tue, 2008-05-06 at 12:27 -0400, Olivier Crête wrote:
> On Tue, 2008-05-06 at 18:16 +0300, mikhail.zabaluev at nokia.com wrote:
> > Hi,
> > 
> > >-----Original Message-----
> > >From: nice-bounces at lists.freedesktop.org 
> > >[mailto:nice-bounces at lists.freedesktop.org] On Behalf Of ext 
> > >Olivier Crête
> > >Sent: Tuesday, May 06, 2008 6:00 PM
> > >To: nice at lists.freedesktop.org
> > >Subject: Re: [Nice] Gracefull fallback, renegotiations?
> > >
> > >
> > >On Tue, 2008-05-06 at 17:53 +0300, Kai.Vehmanen at nokia.com wrote:
> > >> On 06 May 2008,  Olivier Crête wrote:
> > >> >Well, to be able to give libnice the address on the m= line, 
> > >> >you have to create a "non-ice" candidate which libnice won't 
> > >> >be able to differentiate from an ice candidate and will start 
> > >> >doing connchecks on.
> > >> 
> > >> ... aa, that's a good point. So yes, some STUN checks will be 
> > >> sent by current libnice code (between calling 
> > >nice_agent_set_remote_candidates()
> > >> and nice_nice_agent_set_selected_pair()).
> > >> 
> > >> So we need to add a new function to disable ICE processing (and
> > >> update design.txt). In practise, any sane RTP implementation
> > >> should gracefully handle invalid RTP packets (like a STUN packet).
> > >> But yes, this should be fixed.
> > >
> > >What about setting the candidates directly in set_selected_pair()
> > >instead of passing foundations (something like
> > >set_selected_candidates() ?
> > 
> > Actually, you need only one candidate (per socket) for fallback.
> > And the new function could be named nice_agent_fall_back(remote_cand) or something to reflect
> > that no ICE checks will be ever sent via this socket.
> 
> Well, you need one per component, so it would have to be
> nice_agent_fallback(agent, streamid, componentid, remote_cand), but you
> also need to select the local candidates I guess. I'm not really certain
> what a nice, simple api would be.

What if you have IPv6 and IPv4 local candidates or candidates on
different interfaces, I guess in this case you'd need to select the
local candidate too..

Maybe we should allow set_selected_pair() first (and same the name of
the candidates) and then set the remote candidates and if they match,
not do connectivity checks, but start sending immediately. Would that
sound good?

-- 
Olivier Crête
olivier.crete at collabora.co.uk
Collabora Ltd
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://lists.freedesktop.org/archives/nice/attachments/20080620/81f3d3da/attachment.pgp 


More information about the Nice mailing list