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 Keys(根據Stun和Turn Standards的要求)
轉向身份驗證機制:
“經典”長期憑證機制;
轉動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,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