STUN (Session Traversal Utilities for NAT) and TURN (Traversal Using Relays
around NAT) are protocols that can be used to provide NAT traversal for VoIP
and WebRTC. This package provides a VoIP media traffic NAT traversal server
and gateway.
.
Supported RFCs:
TURN specs:
* RFC 5766 - base TURN specs;
* RFC 6062 - TCP relaying TURN extension;
* RFC 6156 - IPv6 extension for TURN;
* RFC 7635 - OAuth third-party TURN/STUN authorization;
* DTLS support as client protocol
http://tools.ietf.org/html/draft-petithuguenin-tram-turn-dtls-00
* Mobile ICE (MICE) support
http://tools.ietf.org/html/draft-wing-tram-turn-mobility-03
* TURN ORIGIN specs for multi-tenant servers
http://tools.ietf.org/html/draft-johnston-tram-stun-origin-02
* TURN Bandwidth draft specs
http://tools.ietf.org/html/draft-thomson-tram-turn-bandwidth-00
* SSODA (dual allocation) draft specs
http://tools.ietf.org/html/draft-martinsen-tram-ssoda-00
.
STUN specs:
* RFC 3489 - obsolete "classic" STUN specs;
* RFC 5389 - base "new" STUN specs;
* RFC 5769 - test vectors for STUN protocol testing;
* RFC 5780 - NAT behavior discovery support.
.
The implementation fully supports UDP, TCP, TLS, and DTLS as protocols between
the TURN client and the TURN server. Both UDP and TCP relaying are supported.
.
SQLite, MySQL, PostgreSQL and Redis are supported for the user
repository (if authentication is required).
The long-term credentials mechanism is supported.
For WebRTC applications,
the TURN server REST API for time-limited
secret-based authentication is implemented.
The third-party authentication
specs (OAuth-based) are supported, too.
.
Load balancing can be implemented either by DNS round-robin mechanism, or with
the external networking tools, or by
the built-in ALTERNATE-SERVER mechanism.
.
The implementation is intended to be simple to install and configure.
The project focuses on performance, scalability, and simplicity.
The aim is to provide an enterprise-grade TURN solution.