Yesterday, I released a new version of Libnice, This is a new major version that has a small API/ABI break from previous versions.
Here are the main changes :
- Added nice_candidate_copy to the public API
- Make stun_timer timeouts configurable (Breaks API and ABI)
- Add compatibility support for MSOC 2007 and MSOC 2007 R2
- Add MS-TURN support for MSOC
- Added and completed TURN RFC 5766 support
- Add a nice_agent_set_port_range API to force a component to use a specific port range
- Fix various bugs and memory leaks
- Improved documentation
The API and ABI break is with the StunTimer usage, so if you use it, you’ll need to do a small change to your code. Because the library version changed, you’ll also need to recompile your applications that link with libnice.
The biggest change in this version is the full support for the recently published RFC 5766 TURN standard (UDP and TCP) as well as the addition of MS Office Communicator compatibility. The API/ABI break introduced in the StunTimer usage is to allow specifying the timeout of STUN retransmissions. The timeout for the STUN and TURN discovery during the candidate gathering phase has also been lowered to 3 seconds now instead of the 9 second timeout that we had before, which should make for a quicker candidate gathering phase and a more responsive UI.
Another interesting change is the addition of the nice_agent_set_port_range API that allows you to specify a range of ports that you want a component to listen to for host candidates. This should help those who use port forwarding with symmetric NATs.
The stun_usage_timer configurable timeout as well as the nice_agent_set_port_range addition were suggested by Tom Kaminski.
The MSOC support was added by Jakub Adam.
The RFC 5766 TURN support was added by Marcus Lundblad and myself.
Other small fixes that were reported on the libnice mailing list were also fixed and included in this version.
Thanks to everyone who contributed in this release and thanks to Collabora and Nokia for sponsoring that work!
A new version of Farsight2 has also been released today (0.0.23) which should work with the new API of this Libnice release.
You can download this new version of Libnice from the usual place.