1. 安装janus
apt install janus
高版本的Ubuntu已经可以直接安装了,不要编译那么麻烦了
2. 安装nginx
janus 是后端,需要nginx或者其他等提供前端页面的服务器,此外因为这里并没有正式的证书,只能用自签名的证书用于https。
前端必须是https
3. janus的源码
apt install janus的源码安装了之后,要么自己写demo,要么直接用源码里面的前端页面。html,jquery写的,花点时间应该也能修修改改。这里是直接复用源码里面的例子
4. coturn
穿透用来着,如果是局域网部署的,没有影响,如果部署到阿里云这样的,需要这个来做NAT穿透。实际测试来看,有些网络穿透不了。
5.配置
ngnix的配置文件
# user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
user root;
events {
worker_connections 4096;
# multi_accept on;
}
http {
server{
listen 80;
server_name web_dist;
location /{
root /opt/janus/share/janus/html;
index index.html index.htm;
}
}
server {
ssl on;
listen 443 ssl;
server_name localhost;
root /opt/janus/share/janus/html;
underscores_in_headers on;
ssl_certificate "/root/cert.pem";
ssl_certificate_key "/root/key.pem";
location / {
}
location /janus/ {
proxy_pass http://api_server/janus/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto https;
}
location /ws {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
upstream api_server{
server 0.0.0.0:8088;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server 0.0.0.0:8188;
}
}
注意这里的pem文件,以及代理。主要是把https的请求反射到https上。否则的话证书问题会报错。localtion的路径选择源码下载后的html目录。
到这里应该能看到janus的demo首页了。但是因为后端其实apt 安装过也在监听了。
janus的配置
填写自己的sturn地址,这里没打算跑服务器的流量,所以turn没开。默认janus安装后,https好像没打开,需要自己修改配置文件在janus.transport.http.cfg文件中(/etc/janus)
到这里重启janus (service janus restart),然后通过netstat -tuln查看8088,8089端口是否在监听状态。如果再监听,到这里基本都ready了。后面就是把前端和后端挂上即可。
前端页面修改
目前下载的代码,导航条会把start按钮给覆盖住,导致无法点击start按钮。先修改下前端页面。我这里只打算搞个videocall。所以直接改对应的页面
注意这里的navbar.html和上层目录是两个。选择合适的文件修改。
到这里start按钮出来了,但是点击默认会报错,有可能是证书ssl,等错误。因为默认的代码,https是会请求8089的https请求的。可以在videocall.js里面把server变量打出来看看。
我们到settings.js文件中,把server给修改下
注意这里没了端口,这里会用到nginx的反向代理。最后会把请求给8088。(这里为什么不直接给http发请求呢? 因为我们的页面是https,这里用http会报错,所以要用反向代理)
最后
这里选择高级,访问
随便注册个名字,然后用手机打开手机网络,这里看能不能穿透,不用和测试机一样的网络环境。
然后手机端注册一个888
然后call就可以了
成功,这样就部署了一个自己的私人视频电话服务了。
最终的测试地址
https://47.103.66.95/demos/videocall.html
注意证书警告,选择继续