When connecting jitsi to an XMPP call service behind a nat, I only get
around a 50%
success rate. Looking into it, I noticed that jitsi always accepts the
(which defines the local route) but sometimes ignores the second candidate
defines the stun route).
It looks like TransportManagerGTalkImpl.startConnectivityEstablishment()
checks if component.getRemoteCandidateCount() is at least 1, then proceeds
allow connectivity establishment. However In my case, if the threshold is
set to 2,
then ICE is successful all of the time and the call proceeds.
The comment above the loop seems to indicate that this is what is expected:
* Once again because the ICE Agent does not support adding
* candidates after the connectivity establishment has been
* and because multiple transport-info JingleIQs may be used to
* the whole set of transport candidates from the remote peer
* local peer, do not really start the connectivity
* until we have at least two remote candidates (i.e. local and
* stun) per ICE Component.
However, the threshold is only set to 1 for some reason. Is this a bug or
set this way for some other reason?