Services “Practical open source design and delivery.”

Connecting a device to the Internet brings a lot of possibilities, but also a lot of challenges. For features such as video calling, file transfer and similar, being able to connect through both professional and home router firewalls in a transparent manner is critical. Collabora is the leading source of expertise in libnice, a NAT traversal library implementing the RFC draft for Interactive Connectivity Establishment (ICE).

Why libnice?

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 in a small and efficient C library.

How can Collabora help you with libnice?

Our engineering team can help you integrate and test libnice for your device. The biggest challenge with technologies such as NAT traversal is dealing with the huge amount of devices out there, many which doesn't implement the relevant standards in a 100% correct manner. Collabora have been deploying libnice into real world devices for a long while and can help you ensure that your device works smoothly in real world scenarios.

Some background on Collabora and libnice

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.

Software developers at Collabora, Youness Alaoui and Olivier Crête, later refactored the library to provide both STUN and ICE APIs. Collabora 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, Collabora added IGD support to the GUPnP project, which is the leading implementation of the UPnP specification for linux and Unix systems.

More information

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

Olivier Crête

Olivier Crête

Olivier Crête has degrees in software engineering, including one from École Polytechnique de Montréal. He lives in Montréal, Canada, and is the lead developer and designer for the Farstream audio/video conferencing framework. In his work for Collabora, he concentrates mainly on Farstream.