implement finish_initial_candidates method
Submitted by Fabrice Bellet
Assigned to Telepathy bugs list
Description
This patch modifies the way candidates are sent in jingle transport for the ICE udp protocol: IMO the candidates should be sent in a single batch after all local candidates have been collected. This is important for the ICE connection checking algorithm to work because it assumes that all local (and remote) candidates have been exchanged before starting the stun requests. Proper ordering of pair to be checked depends on this.
Currently, candidates for ICE are sent to the peer as soon as they are collected, one per callback. And the connection check on the peer consequently begins with a partial list of remote candidates. The rest of the remote candidates usually arrive much later, with a delay caused by the transit via the xmpp server.
This patch implements the finish_initial_candidates method, and uses it in wocky-jingle-transport-iceudp, to call send_candidates() just one time, after all initial local candidates have been collected. It makes the ice algorithm to converge much more quickly.
Version: git master