The SCTP data channel is deprecated by jitsi, so right now it is recommended to use WebSocket on the videobridge.
Sudo Privileges
Before starting, we will make sure that we have no permission issue on the configuration.
sudo su
Config on JVB Server
Jitsi videobridge config
Open file the videobridge configuration file
nano /etc/jitsi/videobridge/sip-communicator.properties
Modify this configuration
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri
And then add these lines:
org.jitsi.videobridge.STATISTICS_TRANSPORT=colibri
org.jitsi.videobridge.rest.jetty.port=9090
org.jitsi.videobridge.rest.COLIBRI_WS_DISABLE=false
org.jitsi.videobridge.rest.COLIBRI_WS_TLS=true
org.jitsi.videobridge.rest.COLIBRI_WS_DOMAIN=<your.jvb.domain>:443
org.jitsi.videobridge.rest.COLIBRI_WS_SERVER_ID=<jvb-id>
The jetty port can be different than 9090
, but don’t use 8080. Because it is already used by jvb statistics API. <jvb-id>
is a unique string that marks your jvb, it can be anything like jvb-1
, media-1
, or even a hash like acdnc76yi23cjen9g38jkdjm3azq
. But note that it will be used in the Nginx configuration below.
Install NGINX
apt-get update
apt-get install nginx
Config NGINX
Create a file for handling WebSocket
nano /etc/nginx/sites-available/videobridge
Copy & paste this config
server {
listen 443 ssl;
server_name <your.jvb.domain>;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_certificate /path/to/<your.jvb.domain>.crt;
ssl_certificate_key /path/to/<your.jvb.domain>.key;
location ~ ^/colibri-ws/<jvb-id>/(.*) {
proxy_pass http://127.0.0.1:9090/colibri-ws/<jvb-id>/$1$is_args$args;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
tcp_nodelay on;
}
}
Don’t forget to adjust the <your jvb domain>
, <jvb-id>
& SSL certificate.
Create link and reload NGINX
ln -s /etc/nginx/sites-available/videobridge.conf /etc/nginx/sites-enabled/
nginx -t
service nginx reload
Restart Videobridge
systemctl restart jitsi-videobridge2
Check service
To ensure the WebSocket is on, check jvb log
grep 'wss:' /var/log/jitsi/jvb.log
You should see that your WebSocket URL is live.
Check the listening port on the server, make sure 443
and 9090
is listening:
netstat -ntplu
Lastly, check from the browser that nothing is blocking the jvb WebSocket:
https://<your jvb domain>/colibri-ws/<jvb id>/
You will get the error 405
from the jetty, that is fine. If you don’t get the 405
error, then your configuration is still not correct.
Config on Main Server
Jitsi Meet Config
Open client configuration at /etc/jitsi/meet/<domain>-config.js
and add or uncomment this configuration:
openBridgeChannel: 'websocket',