Docker Hub | GitHub Container Registry | Quay.io
Coturn - это бесплатная реализация с открытым исходным кодом сервера Turn и Stun. Сервер поворота - это сервер и шлюз Voip Media Traffic Serversal.
Linux Distros может иметь версию Coturn, которую вы можете установить
apt install coturn turnserver --log-file stdout
Или запустить Coturn, используя контейнер Docker:
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
Смотрите более подробную информацию об использовании Docker Container Docker Readme
КОТУН ТРЕБОЕТ
Libevent2
Необязательный
OpenSSL (для поддержки TLS и DTLS, авторизованный оглушитель и поворот)
libmicrohttp и prometheus-client-c (интерфейс Prometheus)
Mysql (пользовательская база данных)
Hierdis (пользовательская база данных, мониторинг)
SQLite (пользовательская база данных)
Postgresql (база данных пользователей)
git clone [email protected]: coturn/coturn.gitcd coturn ./configure делать
Огромные характеристики:
RFC 3489 - "Classic" STUN
RFC 5389 - базовые "новые" оглушительные характеристики
RFC 5769 - Тестовые векторы для тестирования протокола оглушения
RFC 5780 - Поддержка обнаружения поведения NAT
RFC 7443 - поддержка ALPN для STUN & Turn
RFC 7635 - OAUTH Threaty Turn Turn/STUN разрешение
Поверните спецификации:
RFC 5766 - Спецификации базового поворота
RFC 6062 - Расширение ретрансляции TCP
RFC 6156 - расширение IPv6 для поворота
RFC 7443 - поддержка ALPN для STUN & Turn
RFC 7635 - OAUTH Threaty Turn Turn/STUN разрешение
Поддержка DTLS (http://tools.ietf.org/html/draft-petithuguenin-tram-turn-dtls-00)
Поддержка мобильного льда (мыши) (http://tools.ietf.org/html/draft-wing-tram-turn-mobility-02)
Поверните API REST (http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00)
Поле происхождения в свою очередь (сервер мультитенантного поворота) (https://tools.ietf.org/html/draft-ietf-tram-stun-origin-06)
Поверните спецификации черновиков полосы пропускания (http://tools.ietf.org/html/draft-thomson-tram-turn-bandwidth-01)
Turn-bis (с двойным распределением) Проекты DRACT (http://tools.ietf.org/html/draft-ietf-tram-turnbis-04)
Лед и связанные с ними характеристики:
RFC 5245 - лед
RFC 5768 - ICE -SIP
RFC 6336 - Реестр Ice -Iana
RFC 6544 - ICE -TCP
RFC 5928 - Механизм разрешения поворота
Реализация полностью поддерживает следующие протоколы сервера клиента:
UDP (за RFC 5766)
TCP (на RFC 5766 и RFC 6062)
TLS (на RFC 5766 и RFC 6062): включая TLS1.3; ECDHE поддерживается.
Dtls1.0 и dtls1.2 (http://tools.ietf.org/html/draft-petithuguenin-tram-turn-dtls-00)
SCTP (экспериментальная реализация).
Протоколы реле:
UDP (за RFC 5766)
TCP (на RFC 6062)
Базы данных пользователей (для репозитория пользователя, с паролями или ключами, если требуется аутентификация):
SQLite
Mysql
Postgresql
Редис
Mongodb
Интерфейсы управления:
Telnet CLI
Https interface
Мониторинг:
Redis можно использовать для хранения и уведомления о статистике и статистике
Интерфейс Prometheus (недоступен на Apt Package)
Алгоритмы дигеста на целостности сообщений:
HMAC-SHA1, с клавишами MD5-хэш-клавиш (как того требует Stun and Turn Standards)
Поверните механизмы аутентификации:
«Классический» механизм долгосрочных полномочий;
Поверните API REST (модификация долгосрочного механизма, для ограниченной времени секретной аутентификации, для приложений WEBRTC: http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00) ;
экспериментальный сторонний вариант авторизации клиента на основе OAuth;
Производительность и баланс нагрузки:
При использовании в качестве части льда, для подключения к VoIP этот сервер поворота может обрабатывать тысячи одновременных вызовов на процессор (когда используется протокол поворота) или десятки тысяч вызовов, когда используется только оглушенный протокол. Для практически неограниченной масштабируемости можно использовать схему балансировки нагрузки. Балансировка нагрузки может быть реализована следующими инструментами (один или их комбинация):
DNS SRV на основе балансировки нагрузки;
встроенный механизм альтернативного сервера 300 (требует 300 поддержки ответа от клиента Turn);
СЕВЕТА-БАЛАНСЕР СЕРЕР.
Реализуемые алгоритмы ограничения полосы пропускания трафика и предотвращения перегрузки.
Целевые платформы:
Linux (Debian, Ubuntu, Mint, Centos, Fedora, Redhat, Amazon Linux, Arch Linux, OpenSuse)
BSD (FreeBSD, NetBSD, OpenBSD, Dragonflybsd)
Solaris 11
Mac OS X.
Cygwin (для целей НИОКР в непроизводстве)
Windows (родные, например, MSVC Toolchain)
Этот проект может быть успешно использован на других платформах *NIX
, но это официально не поддерживается.
Предполагается, что реализация должна быть простой, простой в установке и настройке. Проект фокусируется на производительности, масштабируемости и простоте. Цель состоит в том, чтобы обеспечить решение поворота предприятия.
Для достижения высокой производительности и масштабируемости сервер поворота реализуется со следующими функциями:
Высокопроизводительная сеть промышленной промышленности используется двигатель LibeVent2 LibeVent2
Конфигурируемая модель многопоточности, реализованная для полного использования доступных ресурсов ЦП (если ОС позволяет многопоточно)
Можно настроить несколько адресов прослушивания и реле
Эффективная модель памяти используется
Код проекта Turn может использоваться в пользовательской проприетарной сетевой среде. В коде сервера Turn используется абстрактная сеть API. Только пара файлов в проекте должна быть переписана для подключения сервера Turn в проприетарную среду. С помощью этого проекта предоставляется только реализация для стандартной сети Unix Setwork/IO, но пользователь может реализовать любую другую среду. Код сервера Turn был первоначально разработан для высокопроизводительной корпоративной среды, а затем принят для API Unix Networking API
Сервер Turn работает как процесс пространства пользователя, не навязывая каких -либо специальных требований в системе
Домашняя страница проекта: https://coturn.github.io/
Репозиторий: https://github.com/coturn/coturn/
Трекер выпуска: https://github.com/coturn/coturn/issues
Группа Google: https://groups.google.com/forum/#!forum/turn-server-project-rfc5766-turn-server