Docker Hub | GitHub容器注册表| quay.io
Coturn是转向服务器的免费开源实现。转向服务器是VoIP媒体流量NAT遍历服务器和网关。
Linux发行版可能具有Coturn的版本,您可以通过该版本安装
apt install coturn turnserver --log-file stdout
或使用Docker容器运行Coturn:
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的更多详细信息
Coturn需要首先安装以下依赖项
libevent2
选修的
OPENSSL(支持TLS和DTL,授权Stun并转弯)
libmicrohttp和prometheus-client-c(Prometheus界面)
mySQL(用户数据库)
Hiredis(用户数据库,监视)
SQLITE(用户数据库)
PostgreSQL(用户数据库)
git clone [email protected]:coturn/coturn.gitcd coturn ./configure 制作
Stun Specs:
RFC 3489-“ Classic” Stun
RFC 5389-基本“新”电击规格
RFC 5769-电击协议测试的测试向量
RFC 5780- NAT行为发现支持
RFC 7443- ALPN对电击和转弯的支持
RFC 7635 -OAuth第三方转向/眩晕授权
转向规格:
RFC 5766-基本转向规格
RFC 6062 -TCP继电器转弯扩展
RFC 6156 -IPv6转弯扩展
RFC 7443- ALPN对电击和转弯的支持
RFC 7635 -OAuth第三方转向/眩晕授权
DTLS支持(http://tools.ietf.org/html/draft-petithuguenin-tram-turn-turn-dtls-00)
移动冰(小鼠)支持(http://tools.ietf.org/html/draft-wing-tram-turn-mobility-02)
转到REST API(http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00)
依次的原点字段(多重租户转向服务器)(https://tools.ietf.org/html/draft-ietf-ietf-tram-stun-origin-06)
转向带宽草稿规格(http://tools.ietf.org/html/draft-thomson-tram-turn-turn-bandwidth-01)
转弯(带双分配)选秀规格(http://tools.ietf.org/html/draft-ietf-tram-turnbis-04)
冰和相关规格:
RFC 5245-冰
RFC 5768 - 冰–SIP
RFC 6336 - ICE – AINA注册表
RFC 6544 - ICE – TCP
RFC 5928-转弯解决机制
该实施完全支持以下客户到转变服务器协议:
UDP(每个RFC 5766)
TCP(PER RFC 5766和RFC 6062)
TLS(PER RFC 5766和RFC 6062):包括TLS1.3; ecdhe得到了支持。
dtls1.0和dtls1.2(http://tools.ietf.org/html/draft-petithuguenin-tram-turn-turn-dtls-00)
SCTP(实验实施)。
继电器协议:
UDP(每个RFC 5766)
TCP(PER RFC 6062)
用户数据库(对于用户存储库,使用密码或密钥,如果需要身份验证):
sqlite
mysql
Postgresql
Redis
mongodb
管理接口:
Telnet CLI
HTTPS接口
监视:
REDIS可用于状态和统计存储和通知
Prometheus接口(在APT软件包上不可用)
消息完整性消化算法:
HMAC-SHA1,带有MD5-Hashed键(根据Stun和Turn标准的要求)
转向身份验证机制:
“经典”长期凭证机制;
转动REST API(对基于时间限制的秘密身份验证的长期机制的修改,用于WEBRTC应用程序:http://tools.ietf.org/html/html/draft-uberti-behave-behave-behave-turn-turn-reest-00) ;
实验性第三方OAUTH的客户授权选项;
性能和负载平衡:
当用作ICE解决方案的一部分时,对于VoIP连接性,此回合服务器可以处理每个CPU的数千个呼叫(当使用转弯协议时)或仅使用Stun协议时数以万计的呼叫。对于几乎无限的可扩展性,可以使用负载平衡方案。可以使用以下工具(其中一个或一个组合)来实现负载平衡:
基于DNS SRV的负载平衡;
内置300备用服务器机制(转向客户端需要300个响应支持);
网络负载 - 平均服务器服务器。
交通带宽的限制和拥塞避免算法实施。
目标平台:
Linux(Debian,Ubuntu,Mint,Centos,Fedora,Redhat,Amazon Linux,Arch Linux,OpenSuse)
BSD(FreeBSD,NetBSD,OpenBSD,DragonflyBSD)
Solaris 11
Mac OS X
cygwin(出于非生产研发目的)
Windows(本机,EG,MSVC工具链)
该项目也可以在其他*NIX
平台上成功使用,但这并未得到正式支持。
该实现应该很简单,易于安装和配置。该项目着重于性能,可伸缩性和简单性。目的是提供企业级转弯解决方案。
为了实现高性能和可伸缩性,转向服务器的实现具有以下功能:
使用高性能工业强度网络IO Engine Libevent2
可配置的多线程模型实施,以允许完全使用可用的CPU资源(如果OS允许多线程)
可以配置多个聆听和继电器地址
使用的有效内存模型
转向项目代码可以在自定义专有网络环境中使用。在转向服务器代码中,使用抽象网络API。项目中只有几个文件必须重新编写以将转换服务器插入专有环境。在此项目中,仅提供标准UNIX网络/IO API的实现,但是用户可以实现任何其他环境。转弯服务器代码最初是针对高性能专有公司环境开发的,然后用于UNIX网络API
转向服务器可以作为用户空间过程,而无需对系统施加任何特殊要求
项目主页:https://coturn.github.io/
存储库:https://github.com/coturn/coturn/
问题跟踪器:https://github.com/coturn/coturn/issues
Google Group:https://groups.google.com/forum/#! Forum/turn-server-project-rfc5766-turn-server