kurento服务器的安装,请参考:ubuntu kurento 媒体服务器安装。
coturn是作为一个STUN/TURN来使用,其中STUN是用于P2P,而TURN是用于中继转发,用来穿透虚拟网络架构用的。主要用在云服务器上面。如果有实体物理服务器,coturn是不用装的。
用的是阿里云专有网络,外网ip是没有网卡的。通过ifconfig是看不到外网ip的。
1,安装coturn
# apt-get install coturn
2,openssl生成证书
# openssl req -x509 -newkey rsa:2048 -keyout /etc/kurento/sslkey/turn_server_pkey.pem -out /etc/kurento/sslkey/turn_server_cert.pem -days 99999 -nodes
3,添加coturn用户
# turnadmin -A -u mytest -p 12345678 -r mytest # turnadmin -k -u mytest -p 12345678 -r mytest >> /etc/kurento/coturn/turnuserdb.conf # turnadmin -L //小l查看普通用户 mytest[mytest]
大A是管理员,小a是普通用户,k根据用户名、密码、realm算出密钥。
4,配置turnserver.conf
# cat /etc/turnserver.conf | awk '{gsub(/^ +#/,"#",$0);if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}' listening-port=3478 listening-ip=192.168.11.138 //局域网IP external-ip=47.xxx.xxx.18 //外网ip min-port=40000 max-port=60000 Verbose fingerprint lt-cred-mech user=mytest:12345678 //用户名和密码 userdb=/etc/kurento/coturn/turnuserdb.conf realm=mytest //域,可自定义 cert=/etc/kurento/sslkey/turn_server_cert.pem pkey=/etc/kurento/sslkey/turn_server_pkey.pem no-loopback-peers no-multicast-peers no-tcp no-tls no-cli
网上配置五花八门,很多坑。有的完全是反方向。还是以官方的为准,安装完后,turnserver.conf里面的配置都是有说明的。
5,开启coturn
# cat /etc/default/coturn # # Uncomment it if you want to have the turnserver running as # an automatic system service daemon # TURNSERVER_ENABLED=1 //去掉前面的注释
6,启动并测试coturn
# /etc/init.d/coturn start # netstat -upnl |grep turn udp 0 0 192.168.11.138:3478 0.0.0.0:* 6579/turnserver udp 0 0 192.168.11.138:3478 0.0.0.0:* 6579/turnserver udp 0 0 192.168.11.138:5349 0.0.0.0:* 6579/turnserver udp 0 0 192.168.11.138:5349 0.0.0.0:* 6579/turnserver
7,登录到阿里云后,开放3478端口
8,验证coturn服务器
# turnutils_uclient -S -v -u mytest -w 12345678 -i /etc/kurento/sslkey/turn_server_cert.pem -k /etc/kurento/sslkey/turn_server_pkey.pem 47.xx.xx.18 -y
中间过程很长,就截取了部分,如果最后出来以下内容说明,配置,认证成功。
如果出现incoming packet message processed, error 401: Unauthorized,说明配置,认证失败,检查用户名,密码,证书。
也可以用第三方验证,coturn是否安装成功
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
9,kurento,配置coturn
# cat /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini | awk '{gsub(/^ +;/,";",$0);if($0 !~ /^$/ && $0 !~ /^;/) {print $0}}' turnURL=mytest:12345678@47.xxx.xx.18:3478?transport=udp
注意上面的udp,tcp配置的时候,被我禁了。重启一下kurento就可以使用了。
10,测试kurento
下载地址:https://github.com/Kurento/kurento-tutorial-node
# apt-get remove nodejs # curl -sL https://deb.nodesource.com/setup_8.x | sudo bash - # apt-get install nodejs # npm install npm -g # cd 解压路径/kurento-tutorial-node/kurento-one2one-call # npm install # npm start > kurento-one2one-call@6.7.3-dev start /root/kurento-tutorial-node/kurento-one2one-call > node server.js Kurento Tutorial started Open https://kurento.xxx.com:8443/ with a WebRTC capable browser
这样就可以和别人视频了。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/1946.html
启动的时候,一直会有如下的警告
0: WARNING: cannot find certificate file: /etc/turn_server_cert.pem (1)
0: WARNING: cannot start TLS and DTLS listeners because certificate file is not set properly
0: WARNING: cannot find private key file: /etc/turn_server_pkey.pem (1)
0: WARNING: cannot start TLS and DTLS listeners because private key file is not set properly
检查过配置 也没有问题 路径也都正确 文件的权限也已经设置成777
然后启动之后 出现了401
不知道大佬有没有遇见这种问题
或者有什么建议
万分感谢!
提示的已经很清楚了,证书地址不对。vi /etc/turn_server_cert.pem 看一下
按您说的这个做了配置,用 https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ 测试不成功呀,你在文章中的 turnadmin -k -u mytest -p 12345678 -r mytest >> /etc/kurento/coturn/turnuserdb.conf 这个是做什么用的呢?在trickle-ice 里 credential 该如何填写呢?
请问,我用https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ 测试,出现incoming packet message processed, error 401: Unauthorized 的错误,要怎么解决呢?
老是报这个错误
KurentoServerException: Error adding candidate (Code:40401, Type:null, Data: {"type":"ICE_ADD_CANDIDATE_ERROR"})