README.md
Docker Hub | GitHub Container Registry | Quay.io
coturn is a free open source implementation of TURN and STUN Server. The TURN Server is a VoIP media traffic NAT traversal server and gateway.
Linux distros may have a version of coturn which you can install by
apt install coturn
turnserver --log-file stdout
Or run coturn using docker container:
docker run -d -p 3478:3478 -p 3478:3478/udp -p 5349:5349 -p 5349:5349/udp -p 49152-65535:49152-65535/udp coturn/coturn
See more details about using docker container Docker Readme
coturn requires following dependencies to be installed first
Optional
git clone [email protected]:coturn/coturn.git
cd coturn
./configure
make
STUN specs:
--rfc3489-compatibility; scheduled for removal in the next major release — see
docs/rfc3489-deprecation.md)MESSAGE-INTEGRITY are ignored, repeated attributes are
first-wins, and ERROR-CODE reason phrases are declared without their padding. Its authentication additions
are not implemented - MESSAGE-INTEGRITY-SHA256, PASSWORD-ALGORITHMS, PASSWORD-ALGORITHM, USERHASH
and the nonce cookie are all absent, so an RFC 8489 client falls back to that spec's MD5 key derivation with
SHA-1 MESSAGE-INTEGRITY, which RFC 8489 permits.TURN specs:
ADDITIONAL-ADDRESS-FAMILY, ADDRESS-ERROR-CODE, the 440/443/508
error codes) and the 0x4000-0x4FFF channel-number range. ICMP relaying (Section 11.5, the ICMP attribute)
is not implemented: an unreachable peer produces silence rather than a Data indication.ICE and related specs:
The implementation fully supports the following client-to-TURN-server protocols:
--dtls is given.Relay protocols:
User databases (for user repository, with passwords or keys, if authentication is required):
Management interfaces:
Monitoring:
Message integrity digest algorithms:
TURN authentication mechanisms:
Performance and Load Balancing:
When used as a part of an ICE solution, for VoIP connectivity, this TURN server can handle thousands simultaneous calls per CPU (when TURN protocol is used) or tens of thousands calls when only STUN protocol is used. For virtually unlimited scalability a load balancing scheme can be used. The load balancing can be implemented with the following tools (either one or a combination of them):
Traffic bandwidth limitation and congestion avoidance algorithms implemented.
Target platforms:
This project can be successfully used on other *NIX platforms, too, but that is not officially supported.
The implementation is supposed to be simple, easy to install and configure. The project focuses on performance, scalability and simplicity. The aim is to provide an enterprise-grade TURN solution.
To achieve high performance and scalability, the TURN server is implemented with the following features: