Video streaming 在Ubuntu for WebRTC上安装TURN服务器

Video streaming 在Ubuntu for WebRTC上安装TURN服务器,video-streaming,html5-video,webrtc,rfc5766turnserver,coturn,Video Streaming,Html5 Video,Webrtc,Rfc5766turnserver,Coturn,如何在我的ubuntu 12.04上安装TURN服务器?你们能分享教程吗?我读了这个教程:。但我不明白的是,如何在我的ubuntu 12.04上安装我自己的TURN服务器 我正在使用下面的代码创建rtpeerconnection const pc_config={“iceServers”:[{“url”:“stun:stun.l.google.com:19302”}, {“url”:“turn:my_username@”,“credential:“my_password”}]}; const p

如何在我的ubuntu 12.04上安装TURN服务器?你们能分享教程吗?我读了这个教程:。但我不明白的是,如何在我的ubuntu 12.04上安装我自己的TURN服务器

我正在使用下面的代码创建
rtpeerconnection

const pc_config={“iceServers”:[{“url”:“stun:stun.l.google.com:19302”},
{“url”:“turn:my_username@”,“credential:“my_password”}]};
const pc_new=新的WebKitRTPeerConnection(pc_配置);
我想填充上面代码的参数,以使用不同的网络

当我想安装turn服务器时,我得到

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package resiprocate-turn-server

我使用了
apt-get-install-resiprocate-turn服务器
。我也使用了这个教程

我认为指南有点过时了

看看这个谷歌开源TURN服务器。
安装非常简单,工作非常好。

它很容易安装在linux机器上,而不是在其他操作系统上尝试

简单方法:

如果你说不,我想要最新的尖端技术,你可以从他们的网站下载源代码,自己安装,例如:

sudo-i#如果您已经处于管理模式,则忽略
apt get update&&apt get install libssl dev libevent dev libhiredis dev make-y#安装依赖项
wget-O turn.tar.gzhttp://turnserver.open-sys.org/downloads/v4.5.0.3/turnserver-4.5.0.3.tar.gz     #下载源tar
tar-zxvf turn.tar.gz#解压缩
光盘服务器-*
/配置
制作和制作安装(&M)
运行TURN服务器的示例命令:

sudo turnserver -a -o -v -n  --no-dtls --no-tls -u test:test -r "someRealm"
命令说明:

  • -a-使用长期凭证机制
  • -o-将服务器进程作为守护进程运行
  • -v-“中等”详细模式
  • -n-没有配置文件
  • --无dtls-不启动dtls侦听器
  • --无tls-不启动tls侦听器
  • -u-要使用的用户凭据
  • -r-要使用的默认域,需要使用TURN REST API
查看此项了解更多详细信息和配置

现在,您可以在WebRTC应用程序中使用TURN服务器:

var peerConnectionConfig = {
  iceServers: [{
    urls: YOUR_IP:3478,
    username: 'test',
    password: 'test'
  }]
}

转向服务器安装

根据您的服务器更改包

wget http://turnserver.open-sys.org/downloads/v3.2.4.4/turnserver-3.2.4.4-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

tar -zxvf turnserver-3.2.4.4-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

wget http://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

tar -zxvf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable/

./configure

make && make install

dpkg -i rfc5766-turn-server_3.2.4.4-1_amd64.deb

cd /etc/

vi turnserver.conf
添加以下内容以打开server.conf

listening-device=eth0
listening-ip=YOUR_IP_HERE
listening-port=3478
userdb=turnuserdb.conf
relay-device=eth0
realm=YOUR_REALM_IP_HERE
lt-cred-mech
log-file=/var/log/turnserver.log
 vi turnuserdb.conf
在turnuserdb.conf上添加用户名和密码

listening-device=eth0
listening-ip=YOUR_IP_HERE
listening-port=3478
userdb=turnuserdb.conf
relay-device=eth0
realm=YOUR_REALM_IP_HERE
lt-cred-mech
log-file=/var/log/turnserver.log
 vi turnuserdb.conf
按以下格式

testuser:pass0wrd
要启动Turn服务器,请执行以下操作:

sh /data/start_turn_server.sh
要添加新回合用户,请执行以下操作:

sh /data/ addTurnUser.sh
要查看Turn服务器是否正在运行,请执行以下操作:

ps aux | grep –I turn

如果TURN server正常运行,上述命令应将一些进程列为turnserver。

此链接将提供有关TURN server安装和配置的所有详细信息


这家伙有很好的WebRtc演示库。

在你的ubuntu服务器上,设置、配置并运行。对于基本设置,请执行以下操作:

#设置
sudo apt get install——假设是coturn
#配置并运行
USERNAME=“一些用户名”
PASSWORD=“一些密码”
端口=3478
#-n:仅使用命令行参数,不使用配置文件
sudoturnserver\
-n\
--冗长的\
--中尉信用机械师\
--用户$USERNAME:$PASSWORD\
--领域“某个领域”\
--没有DTL\
--无tls\
--侦听端口$port
添加
--daemon
以使其在后台运行。 有关
turnserver
的选项列表,请参阅,并查看是否要将其与
-c CONFIGFILE
一起使用,而不是像上面那样使用
-n
并在命令行上传递所有选项

在Google Chrome中,在安全来源的任何页面(例如stackoverflow.com)上,要检查它是否工作,请在开发人员控制台中运行以下命令:

功能检查TurnServer(turnConfig,超时){
返回新承诺(功能(解决、拒绝){
setTimeout(函数(){
如果(承诺人解决)返回;
决议(假);
promisersolved=真;
},超时| | 5000);
var promiseResolved=false
,myPeerConnection=window.rtpeerconnection | | | window.mozrtpeerconnection | | | window.webkirtpeerconnection//与firefox和chrome的兼容性
,pc=new myPeerConnection({iceServers:[turnConfig]})
,noop=function(){};
pc.createDataChannel(“”;//创建虚假数据通道
pc.createOffer(功能(sdp){
如果(sdp.sdp.indexOf('typ relay')>-1{//有时sdp包含ice候选项。。。
promisersolved=真;
决心(正确);
}
pc.setLocalDescription(sdp、noop、noop);
},noop);//创建报价并设置本地描述
pc.onicecandidate=函数(ice){//侦听候选事件
如果(promisersolved | | | | |!ice.candidate | |!ice.candidate.candidate | |!(ice.candidate.candidate.indexOf('typ relay')>-1))返回;
promisersolved=真;
决心(正确);
};
});   
}
const USERNAME=“一些用户名”
const PASSWORD=“一些密码”
常数端口=3478
const IP=“10.11.0.115”//您必须更改此选项
console.log('TURN server reachable on TCP?',等待checkTURNServer({
url:`turn:${IP}:${PORT}?传输=tcp`,
用户名:用户名,
凭证:密码,
}))
log('TURN server ACCABLE on UDP?',等待checkTURNServer({
url:`turn:${IP}:${PORT}?传输=udp`,
用户名:用户名,
凭证:密码,
}))
你应该

TURN server reachable on TCP? true
TURN server reachable on UDP? true

这表明在实际尝试安装一个简单的turn服务器时所做的努力很小……是否可以使用TCP?或者它只适用于UDP。是的,它可以只与TCP一起工作,但担心性能可能会变差。谢谢您提供了很棒的解决方案。我在mozilla firefox上遇到此错误
未捕获异常:buildPeerConnection失败,调用未完成
我正在使用easyRTC。你能帮我吗?要跳过IPv6问题,请输入服务器IP。这对我来说非常有用:
turnserver-L-a-o-f-n——没有DTL——没有tls-u用户名:password-r yourdomain.com
我在一个EC2实例中遵循了这个过程,找到了