Hello, when I started the conference, I can see an error in the console that
Steps.
1. I'm entering to zenget.az with JWT
2. I'm entering from another location to the same room with the same JWT to the same conference.
I can see in a console that web-socket failed to connect
VM194 room1:63 (TIME) index.html loaded: 577
Logger.js:154 2023-02-10T15:16:24.303Z [modules/browser/BrowserCapabilities.js] <new <anonymous>>: This appears to be chrome, ver: 109.0.0.0
Logger.js:154 2023-02-10T15:16:24.303Z [modules/statistics/LocalStatsCollector.js] <ui.connectAudioContext>: Connecting audio context
LocalStatsCollector.js:169 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
ui.connectAudioContext @ LocalStatsCollector.js:169
Logger.js:154 2023-02-10T15:16:24.508Z [modules/RTC/RTCUtils.js] <zc>: list of media devices has changed: Array(10)
Logger.js:154 2023-02-10T15:16:24.753Z [features/base/redux] <Object.persistState>: redux state persisted. 04af1ca05346e21f2cd357c0bbf37f12 -> 3a3b76055b6cca4d2a4c6a2946705364
Logger.js:154 2023-02-10T15:16:24.815Z [features/base/media] Start muted:
Logger.js:154 2023-02-10T15:16:24.817Z [features/base/media] Start audio only set to false
Logger.js:154 2023-02-10T15:16:24.817Z [modules/statistics/AnalyticsAdapter.js] <Object.dispose>: Disposing of analytics adapter.
r @ Logger.js:154
Logger.js:154 2023-02-10T15:16:24.818Z [features/analytics] Initialized 0 analytics handlers
Logger.js:154 2023-02-10T15:16:24.890Z [index.web] <HTMLDocument.<anonymous>>: (TIME) document ready: 1207.800000000745
VM193 room1:46 Service worker registered. ServiceWorkerRegistration
lang/languages-ru.json:1 Failed to load resource: the server responded with a status of 404 (Not Found)
lang/countries-ru.json:1 Failed to load resource: the server responded with a status of 404 (Not Found)
Logger.js:154 2023-02-10T15:16:24.966Z [modules/RTC/RTCUtils.js] Audio output device set to default
lang/translation-languages-ru.json:1 Failed to load resource: the server responded with a status of 404 (Not Found)
watermark.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
Logger.js:154 2023-02-10T15:16:25.106Z [features/base/connection] Using service URL wss://zenget.az/xmpp-websocket
Logger.js:154 2023-02-10T15:16:25.108Z [modules/xmpp/xmpp.js] <Ta._initStrophePlugins>: P2P STUN servers: Array(1)
Logger.js:154 2023-02-10T15:16:25.121Z [modules/xmpp/xmpp.js] <Ta.connectionHandler>: (TIME) Strophe connecting: 1437.8999999985099
Logger.js:154 2023-02-10T15:16:25.124Z [modules/RTC/RTCUtils.js] <Qi.<anonymous>>: Got media constraints: {"video":{"height":{"ideal":720,"max":720,"min":240},"facingMode":"user"},"audio":{"autoGainControl":true,"echoCancellation":true,"noiseSuppression":true}}
Logger.js:154 2023-02-10T15:16:25.877Z [modules/xmpp/XmppConnection.js] <er._maybeEnableStreamResume>: Enabling XEP-0198 stream management
Logger.js:154 2023-02-10T15:16:25.878Z [modules/xmpp/XmppConnection.js] <er._maybeStartWSKeepAlive>: WebSocket keep alive interval: 60000ms
Logger.js:154 2023-02-10T15:16:25.879Z [modules/xmpp/strophe.ping.js] <Qs.startInterval>: XMPP pings will be sent every 10000 ms
Logger.js:154 2023-02-10T15:16:25.879Z [modules/xmpp/xmpp.js] <Ta.connectionHandler>: (TIME) Strophe connected: 2196.60000000149
Logger.js:154 2023-02-10T15:16:25.879Z [modules/xmpp/xmpp.js] <Ta.connectionHandler>: My Jabber ID: 845e8712-5846-408a-8bcb-7f36b8bf7555@vs1.zenget.az/RCRXvl1A
Logger.js:154 2023-02-10T15:16:26.594Z [modules/RTC/RTCUtils.js] onUserMediaSuccess
Logger.js:154 2023-02-10T15:16:26.604Z [modules/xmpp/xmpp.js] <Ta.createRoom>: JID 845e8712-5846-408a-8bcb-7f36b8bf7555@vs1.zenget.az/RCRXvl1A using MUC nickname 845e8712
Logger.js:154 2023-02-10T15:16:26.605Z [modules/xmpp/ChatRoom.js] <new Lr>: Joining MUC as room1@conference.vs1.zenget.az/845e8712
Logger.js:154 2023-02-10T15:16:26.605Z [modules/xmpp/moderator.js] <new Dr>: Using xmpp for conference requests.
Logger.js:154 2023-02-10T15:16:26.609Z [modules/statistics/AvgRTPStatsReporter.js] <new ou>: Avg RTP stats will be calculated every 15 samples
Logger.js:154 2023-02-10T15:16:26.609Z [JitsiConference.js] <new ih>: backToP2PDelay: 5
Logger.js:154 2023-02-10T15:16:26.610Z [JitsiConference.js] <new ih>: End-to-End Encryption is supported
Logger.js:154 2023-02-10T15:16:26.624Z [JitsiConference.js] <ih._doReplaceTrack>: _doReplaceTrack - no JVB JingleSession
Logger.js:154 2023-02-10T15:16:26.624Z [JitsiConference.js] <ih._doReplaceTrack>: _doReplaceTrack - no P2P JingleSession
Logger.js:154 2023-02-10T15:16:26.626Z [features/base/tracks] Adding video track - unmuted
Logger.js:154 2023-02-10T15:16:26.670Z [modules/xmpp/moderator.js] Sending conference request over XMPP to focus.vs1.zenget.az
Logger.js:154 2023-02-10T15:16:26.676Z [features/base/tracks] Replace audio track - unmuted
Logger.js:154 2023-02-10T15:16:26.695Z [JitsiConference.js] <ih._doReplaceTrack>: _doReplaceTrack - no JVB JingleSession
Logger.js:154 2023-02-10T15:16:26.695Z [JitsiConference.js] <ih._doReplaceTrack>: _doReplaceTrack - no P2P JingleSession
Logger.js:154 2023-02-10T15:16:26.713Z [conference.js] Initialized with 2 local tracks
Logger.js:154 2023-02-10T15:16:26.738Z [features/base/redux] <Object.persistState>: redux state persisted. 3a3b76055b6cca4d2a4c6a2946705364 -> fb060bdd8fc61a1f9973812cbb294d7d
Logger.js:154 2023-02-10T15:16:26.815Z [modules/xmpp/moderator.js] <Dr._handleError>: Session expired! - removing
Logger.js:154 2023-02-10T15:16:26.815Z [modules/xmpp/moderator.js] <Dr._handleError>: Invalid session, will retry after 1000 ms.
Logger.js:154 2023-02-10T15:16:26.830Z [modules/RTC/RTCUtils.js] <Qi.<anonymous>>: Got media constraints: {"video":false,"audio":{"autoGainControl":true,"deviceId":"default","echoCancellation":true,"noiseSuppression":true}}
Logger.js:154 2023-02-10T15:16:26.849Z [modules/RTC/RTCUtils.js] onUserMediaSuccess
TrackVADEmitter.js:112 [Deprecation] The ScriptProcessorNode is deprecated. Use AudioWorkletNode instead. (https://bit.ly/audio-worklet)
_initializeAudioContext @ TrackVADEmitter.js:112
Logger.js:154 2023-02-10T15:16:28.485Z [modules/xmpp/moderator.js] Sending conference request over XMPP to focus.vs1.zenget.az
Logger.js:154 2023-02-10T15:16:28.598Z [modules/xmpp/moderator.js] <Dr._handleSuccess>: Adding focus JID: focus@auth.vs1.zenget.az
Logger.js:154 2023-02-10T15:16:28.598Z [modules/xmpp/moderator.js] <Dr._handleSuccess>: Authentication enabled: true
Logger.js:154 2023-02-10T15:16:28.599Z [modules/xmpp/moderator.js] <Dr._handleSuccess>: External authentication enabled: false
Logger.js:154 2023-02-10T15:16:28.599Z [modules/xmpp/moderator.js] <Dr._handleSuccess>: Received sessionId: 8267b81b-241f-4c0a-9bda-6ae402f802d8
Logger.js:154 2023-02-10T15:16:28.605Z [modules/xmpp/moderator.js] <Dr._handleSuccess>: Sip gateway enabled: true
Logger.js:154 2023-02-10T15:16:28.605Z [modules/xmpp/moderator.js] <Dr._handleSuccess>: Conference-request successful, ready to join the MUC.
Logger.js:154 2023-02-10T15:16:28.745Z [modules/xmpp/ChatRoom.js] <Lr.onPresence>: (TIME) MUC join started: 5063.300000000745
Logger.js:154 2023-02-10T15:16:28.749Z [modules/xmpp/ChatRoom.js] <Lr.onPresence>: entered room1@conference.vs1.zenget.az/focus {isReplaceParticipant: 0, affiliation: 'owner', role: 'moderator', jid: 'focus@auth.vs1.zenget.az/focus', isFocus: true, …}
Logger.js:154 2023-02-10T15:16:28.749Z [modules/UI/UI.js] <Zue.initEtherpad>: Etherpad is enabled
Logger.js:154 2023-02-10T15:16:28.757Z [modules/version/ComponentsVersions.js] Got focus version: 1.1.build.git
Logger.js:154 2023-02-10T15:16:28.762Z [JitsiConference.js] <ih._updateProperties>: Audio unmute permissions set by Jicofo to false
Logger.js:154 2023-02-10T15:16:28.765Z [JitsiConference.js] <ih._updateProperties>: Video unmute permissions set by Jicofo to false
Logger.js:154 2023-02-10T15:16:28.765Z [modules/xmpp/ChatRoom.js] <Lr.onPresence>: Jicofo supports restart by terminate: true
Logger.js:154 2023-02-10T15:16:28.770Z [conference.js] <r.<anonymous>>: My role changed, new role: none
Logger.js:154 2023-02-10T15:16:28.789Z [modules/xmpp/ChatRoom.js] <Lr.onPresence>: (TIME) MUC joined: 5106.89999999851
Logger.js:154 2023-02-10T15:16:28.893Z [conference.js] <r.<anonymous>>: My role changed, new role: moderator
Logger.js:154 2023-02-10T15:16:29.047Z [modules/xmpp/ChatRoom.js] <Lr.onMessage>: Subject is changed to
Logger.js:154 2023-02-10T15:16:36.524Z [modules/xmpp/ChatRoom.js] <Lr.onPresence>: entered room1@conference.vs1.zenget.az/25ebd2e3 {isReplaceParticipant: 0, affiliation: 'none', role: 'participant', jid: '25ebd2e3-c68f-4184-9ce6-619344310bd6@vs1.zenget.az/AoTOITjs', isFocus: false, …}
Logger.js:154 2023-02-10T15:16:36.582Z [conference.js] <r.<anonymous>>: USER 25ebd2e3 connected: Ui {_jid: 'room1@conference.vs1.zenget.az/25ebd2e3', _id: '25ebd2e3', _conference: ih, _displayName: undefined, _supportsDTMF: false, …}
Logger.js:154 2023-02-10T15:16:37.881Z [modules/xmpp/strophe.jingle.js] <aa.onJingle>: Found a JSON-encoded element in session-initiate, translating to standard Jingle.
Logger.js:154 2023-02-10T15:16:37.881Z [modules/xmpp/strophe.jingle.js] <aa.onJingle>: (TIME) received session-initiate: 14198.5
Logger.js:154 2023-02-10T15:16:37.886Z [modules/RTC/TraceablePeerConnection.js] <new Qd>: Using RTCRtpTransceiver#setCodecPreferences for codec selection
Logger.js:154 2023-02-10T15:16:37.886Z [modules/RTC/TraceablePeerConnection.js] <new Qd>: Create new TPC[id=1,type=JVB]
Logger.js:154 2023-02-10T15:16:37.889Z [JitsiConference.js] <ih._acceptJvbIncomingCall>: Starting CallStats for JVB connection...
Logger.js:154 2023-02-10T15:16:37.889Z [modules/statistics/RTPStatsCollector.js] <bi.start>: Using RTCRtpSynchronizationSource for remote audio levels
Logger.js:154 2023-02-10T15:16:37.890Z [modules/RTC/TraceablePeerConnection.js] <Qd.addTrack>: TPC[id=1,type=JVB] adding LocalTrack[1,audio]
Logger.js:154 2023-02-10T15:16:37.893Z [modules/RTC/TraceablePeerConnection.js] <Qd.addTrack>: TPC[id=1,type=JVB] adding LocalTrack[2,video]
Logger.js:154 2023-02-10T15:16:37.936Z [modules/xmpp/JingleSessionPC.js] <sa.sendSessionAccept>: JingleSessionPC[session=JVB,initiator=false,sid=41p1kero0nnta] Sending session-accept
Logger.js:154 2023-02-10T15:16:37.940Z [modules/xmpp/JingleSessionPC.js] <peerconnection.oniceconnectionstatechange>: (TIME) ICE checking JVB: 14258
Logger.js:154 2023-02-10T15:16:38.037Z [modules/xmpp/JingleSessionPC.js] <sa.setSenderVideoConstraint>: JingleSessionPC[session=JVB,initiator=false,sid=41p1kero0nnta] setSenderVideoConstraint: 2160, sourceName: 845e8712-v0
Logger.js:154 2023-02-10T15:16:38.038Z [modules/RTC/TraceablePeerConnection.js] <Qd.setSenderVideoConstraints>: TPC[id=1,type=JVB] Setting degradation preference [preference=maintain-framerate,track=LocalTrack[2,video]
Logger.js:154 2023-02-10T15:16:38.039Z [modules/RTC/TraceablePeerConnection.js] <Qd.setSenderVideoConstraints>: TPC[id=1,type=JVB] setting max height=2160,encodings=[{"active":true,"adaptivePtime":false,"networkPriority":"low","priority":"low","maxBitrate":200000},{"active":true,"adaptivePtime":false,"networkPriority":"low","priority":"low","maxBitrate":700000},{"active":true,"adaptivePtime":false,"networkPriority":"low","priority":"low","maxBitrate":2500000}]
Logger.js:154 2023-02-10T15:16:38.166Z [modules/xmpp/strophe.jingle.js] <aa.onJingle>: Found a JSON-encoded element in source-add, translating to standard Jingle.
Logger.js:154 2023-02-10T15:16:38.172Z [modules/xmpp/JingleSessionPC.js] JingleSessionPC[session=JVB,initiator=false,sid=41p1kero0nnta] Processing addRemoteStream
Logger.js:154 2023-02-10T15:16:38.184Z [modules/xmpp/JingleSessionPC.js] <peerconnection.oniceconnectionstatechange>: (TIME) ICE connected JVB: 14501.5
Logger.js:154 2023-02-10T15:16:38.190Z [modules/RTC/TraceablePeerConnection.js] <Qd._remoteTrackAdded>: TPC[id=1,type=JVB] Received track event for remote stream[id=25ebd2e3-audio-0-1,type=audio]
Logger.js:154 2023-02-10T15:16:38.191Z [modules/RTC/TraceablePeerConnection.js] <Qd._createRemoteTrack>: TPC[id=1,type=JVB] creating remote track[endpoint=25ebd2e3,ssrc=454892425,type=audio,sourceName=25ebd2e3-a0]
Logger.js:154 2023-02-10T15:16:38.210Z [modules/RTC/TraceablePeerConnection.js] <Qd._remoteTrackAdded>: TPC[id=1,type=JVB] Received track event for remote stream[id=25ebd2e3-video-0-1,type=video]
Logger.js:154 2023-02-10T15:16:38.210Z [modules/RTC/TraceablePeerConnection.js] <Qd._createRemoteTrack>: TPC[id=1,type=JVB] creating remote track[endpoint=25ebd2e3,ssrc=3028597515,type=video,sourceName=25ebd2e3-v0]
Logger.js:154 2023-02-10T15:16:38.220Z [modules/connectivity/TrackStreamingStatus.ts] <new Ud>: RtcMuteTimeout set to: 10000
JitsiRemoteTrack.js:308 (TIME) Render audio: 14602.39999999851
JitsiRemoteTrack.js:327 (TIME) TTFM audio: 4036.599999997765
BridgeChannel.js:87 WebSocket connection to 'wss://zenget.az/colibri-ws/vs1/8e5d127f1ea39222/845e8712?pwd=5ono0colb1g7jecgc25t4jnemt' failed:
_initWebSocket @ BridgeChannel.js:87
Ia @ BridgeChannel.js:76
initializeBridgeChannel @ RTC.js:196
ih._setBridgeChannel @ JitsiConference.js:2334
ih._acceptJvbIncomingCall @ JitsiConference.js:2266
ih.onIncomingCall @ JitsiConference.js:2216
r.emit @ events.js:153
onJingle @ strophe.jingle.js:217
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2023-02-10T15:16:38.285Z [modules/RTC/BridgeChannel.js] <e.onclose>: Channel closed: 1006
r @ Logger.js:154
e.onclose @ BridgeChannel.js:388
Logger.js:154 2023-02-10T15:16:38.334Z [modules/xmpp/JingleSessionPC.js] JingleSessionPC[session=JVB,initiator=false,sid=41p1kero0nnta] addRemoteStream - OK
JitsiRemoteTrack.js:308 (TIME) Render video: 15409.10000000149
JitsiRemoteTrack.js:327 (TIME) TTFM video: 4843.300000000745
BridgeChannel.js:87 WebSocket connection to 'wss://zenget.az/colibri-ws/vs1/8e5d127f1ea39222/845e8712?pwd=5ono0colb1g7jecgc25t4jnemt' failed:
_initWebSocket @ BridgeChannel.js:87
t @ BridgeChannel.js:118
Logger.js:154 2023-02-10T15:16:39.686Z [modules/RTC/BridgeChannel.js] <e.onclose>: Channel closed: 1006
r @ Logger.js:154
e.onclose @ BridgeChannel.js:388
BridgeChannel.js:87 WebSocket connection to 'wss://zenget.az/colibri-ws/vs1/8e5d127f1ea39222/845e8712?pwd=5ono0colb1g7jecgc25t4jnemt' failed:
_initWebSocket @ BridgeChannel.js:87
t @ BridgeChannel.js:118
Logger.js:154 2023-02-10T15:16:41.686Z [modules/RTC/BridgeChannel.js] <e.onclose>: Channel closed: 1006
r @ Logger.js:154
e.onclose @ BridgeChannel.js:388
BridgeChannel.js:87 WebSocket connection to 'wss://zenget.az/colibri-ws/vs1/8e5d127f1ea39222/845e8712?pwd=5ono0colb1g7jecgc25t4jnemt' failed:
_initWebSocket @ BridgeChannel.js:87
t @ BridgeChannel.js:118
Logger.js:154 2023-02-10T15:16:45.646Z [modules/RTC/BridgeChannel.js] <e.onclose>: Channel closed: 1006
r @ Logger.js:154
e.onclose @ BridgeChannel.js:388
BridgeChannel.js:87 WebSocket connection to 'wss://zenget.az/colibri-ws/vs1/8e5d127f1ea39222/845e8712?pwd=5ono0colb1g7jecgc25t4jnemt' failed:
_initWebSocket @ BridgeChannel.js:87
t @ BridgeChannel.js:118
Logger.js:154 2023-02-10T15:16:53.656Z [modules/RTC/BridgeChannel.js] <e.onclose>: Channel closed: 1006
r @ Logger.js:154
e.onclose @ BridgeChannel.js:388
room1:1 Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received
My nginx config
# This is from default file
# Default server configuration
#
server_names_hash_bucket_size 64;
types {
# nginx's default mime.types doesn't include a mapping for wasm or wav.
application/wasm wasm;
audio/wav wav;
}
upstream prosody {
zone upstreams 64K;
server 127.0.0.1:5280;
keepalive 2;
}
upstream jvb1 {
zone upstreams 64K;
server vs1.zenget.az:9090;
keepalive 2;
}
map $arg_vnode $prosody_node {
default prosody;
v1 v1;
v2 v2;
v3 v3;
v4 v4;
v5 v5;
v6 v6;
v7 v7;
v8 v8;
}
server {
if ($host = zenget.az) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name zenget.az;
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /usr/share/jitsi-meet;
}
location = /.well-known/acme-challenge/ {
return 404;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name zenget.az;
# Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m; # about 40000 sessions
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=63072000" always;
set $prefix "";
ssl_certificate /etc/letsencrypt/live/zenget.az/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/zenget.az/privkey.pem; # managed by Certbot
root /usr/share/jitsi-meet;
# ssi on with javascript for multidomain variables in config.js
ssi on;
ssi_types application/x-javascript application/javascript;
index index.html index.htm;
error_page 404 /static/404.html;
gzip on;
gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm;
gzip_vary on;
gzip_proxied no-cache no-store private expired auth;
gzip_min_length 512;
location = /config.js {
alias /etc/jitsi/meet/zenget.az-config.js;
}
location = /external_api.js {
alias /usr/share/jitsi-meet/libs/external_api.min.js;
}
location = /_api/room-info {
proxy_pass http://$prosody_node/room-info?prefix=$prefix&$args;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
# ensure all static content can always be found first
location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$
{
add_header 'Access-Control-Allow-Origin' '*';
alias /usr/share/jitsi-meet/$1/$2;
# cache all versioned files
if ($arg_v) {
expires 1y;
}
}
# BOSH
location = /http-bind {
proxy_pass http://$prosody_node/http-bind?prefix=$prefix&$args;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header Connection "";
}
# xmpp websockets
location = /xmpp-websocket {
proxy_pass http://$prosody_node/xmpp-websocket?prefix=$prefix&$args;
#shard & region that matches config.deploymentInfo.shard/region - See [note 1] below
#add_header 'x-jitsi-shard' 'shard1';
#add_header 'x-jitsi-region' 'uk-zenget-linode';
#add_header 'Access-Control-Expose-Headers' 'X-Jitsi-Shard, X-Jitsi-Region';
#proxy_set_header X-Forwarded-For $remote_addr;
#proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
tcp_nodelay on;
}
**# colibri (JVB) websockets for jvb1**
** location ~ ^/colibri-ws/([0-9.]*)/(.*) {**
** proxy_pass http://vs1.zenget.az:9090/colibri-ws/vs1/$1$is_args$args;**
** proxy_http_version 1.1;**
** proxy_set_header Upgrade $http_upgrade;**
** proxy_set_header Connection "upgrade";**
** tcp_nodelay on;**
** }**
# excalidraw-backend websockets
location = /socket.io/ {
proxy_pass http://127.0.0.1:3002/socket.io/?$args;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
tcp_nodelay on;
}
location ^~ /etherpad/ {
proxy_pass http://localhost:9001/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_buffering off;
proxy_set_header Host $host;
}
location ~ ^/([^/?&:'"]+)$ {
try_files $uri @root_path;
}
location @root_path {
rewrite ^/(.*)$ / break;
}
location ~ ^/([^/?&:'"]+)/config.js$
{
set $subdomain "$1.";
set $subdir "$1/";
alias /etc/jitsi/meet/zenget.az-config.js;
}
# BOSH for subdomains
location ~ ^/([^/?&:'"]+)/http-bind {
set $subdomain "$1.";
set $subdir "$1/";
set $prefix "$1";
rewrite ^/(.*)$ /http-bind;
}
# websockets for subdomains
location ~ ^/([^/?&:'"]+)/xmpp-websocket {
set $subdomain "$1.";
set $subdir "$1/";
set $prefix "$1";
rewrite ^/(.*)$ /xmpp-websocket;
}
location ~ ^/([^/?&:'"]+)/_api/room-info {
set $subdomain "$1.";
set $subdir "$1/";
set $prefix "$1";
rewrite ^/(.*)$ /_api/room-info;
}
# Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
location ~ ^/([^/?&:'"]+)/(.*)$ {
set $subdomain "$1.";
set $subdir "$1/";
rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
}
}
My Jvb.conf
videobridge {
http-servers {
public {
port = 9090
}
}
websockets {
server-id="vs1"
enabled=true
domain="zenget.az:443"
tls=true
}
}
Port on jvb host vs1.zenget.az
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
10000 ALLOW Anywhere
9090 ALLOW Anywhere
443/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
10000 (v6) ALLOW Anywhere (v6)
9090 (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
5222 ALLOW OUT Anywhere
5222 (v6) ALLOW OUT Anywhere (v6)