Services “Practical open source design and delivery.”

Collabora is the leading source of expertise in libnice, a NAT traversal library implementing the RFC draft for Interactive Connectivity Establishement (ICE). One of the main hurdles with the NAT infrastructures used widely on the Internet today is to establish direct connection between two users. This is essential for tasks like VoIP, file transfers and collaborative applications. Libnice solves this problem by implementing the ICE methodology.

Development History

Collabora developer Dafydd Harries started the libnice project in 2006 to create the first open source library implementing the ICE specification. Libnice quickly evolved into a multi-standard-compatible library capable of replacing Google's libjingle library.

Youness Alaoui, a software developer at Collabora, is the current maintainer of libnice. He has refactored the library to provide both STUN and ICE APIs. Collabora developers made the library compatible with libjingle's ICE specification, as well as ICE Draft 19, MSN 8.x and WLM 2009 ICE specifications. Collabora also enhanced libnice to support proxies and TURN relays.

As part of our work on libnice, Collabara added igd support to the GUPnP project.

Users

On the Maemo platform, Farstream now makes use of libnice, replacing Google's libjingle. The aMSN project also uses libnice for audio and video conferencing, thanks to its MSN 8.x and WLM 2009 compatibility modes.

Future development

Libnice is a stable product that ensures that a peer-to-peer connections can always be established between two parties. Future versions of libnice will feature ICE-TCP support, and a reliable mode using TCP over UDP which is essential for file transfers and collaborative applications.

More information

A more detailed description of libnice is in Youness Alaoui's presentation slides from the Gran Canaria Desktop Summit 2009. To read API documentation, download releases, or read the Libnice mailing list, refer to the project wiki. The source tree includes a TODO file, in case you want to get involved in the development of this library, or learn more about its future.

Developer biography

Youness Alaoui

Youness Alaoui

Youness Alaoui is the lead developer on libnice and its current maintainer. He lives in Montréal, Canada. His work at Collabora concentrates on libnice, but includes development for the Farstream and papyon projects as well.