/libnice

An implementation of the IETF’s Interactive Connectivity Establishment (ICE) standard — this is an official read-only mirror of the upstream repository at https://gitlab.freedesktop.org/libnice/libnice/. File issues there and create pull requests there too instead of here.

Primary LanguageCOtherNOASSERTION

Nice: GLib ICE library
======================

Copyright
---------

 (C) 2006-2020 Collabora Ltd.
 (C) 2006-2011 Nokia Corporation

License
-------

See the file COPYING

SPDX-License-Identifier: LGPL-2.1-or-later OR  MPL-1.1

Requirements
------------

 glib >= 2.54
 pkg-config
 gnutls >= 2.12.0 or OpenSSL
 gupnp-igd >= 0.1.2 (optional)
 gstreamer-0.10 (optional)
 gstreamer-1.0 (optional)

Build instructions
------------------

libnice uses the Meson Build System: https://mesonbuild.com

To build on Linux and Mac, you only need to type the usual commands :

  meson builddir
  ninja -C builddir
  ninja -C builddir test (or "meson test -C builddir" for more control)
  sudo ninja -C builddir install

See https://mesonbuild.com/Quick-guide.html#compiling-a-meson-project
for more details and how to install the Meson build system.

Structure
---------

 agent/   - ICE agent
 docs/    - Design and API documentation
 gst/     - Gstreamer elements
 nice/    - libnice library
 random/  - random number generation
 socket/  - Socket abstraction layer
 stun/    - STUN implementation
 tests/   - Unit tests

Relevant standards
------------------

These standards are relevant to nice's current implementation.

ICE
  https://tools.ietf.org/html/rfc5245 (old)
  https://tools.ietf.org/html/rfc8445
STUN
  https://tools.ietf.org/html/rfc3489 (old)
  https://tools.ietf.org/html/rfc5389
STUN Consent Freshness RFC
  https://tools.ietf.org/html/rfc7675
TURN 
  https://tools.ietf.org/html/rfc5766
RTP
  https://tools.ietf.org/html/rfc3550
ICE-TCP RFC
  https://tools.ietf.org/html/rfc6544
Trickle ICE
   https://tools.ietf.org/html/draft-ietf-ice-trickle-21
XMPP Jingle ICE transport
  https://www.xmpp.org/extensions/xep-0176.html

In future, nice may additionally support the following standards.

NAT-PMP
  http://files.dns-sd.org/draft-cheshire-nat-pmp.txt