Secure domain can't connect to room (loop)


#1

Hi,

We’ve setup jitsi on a debian server (9.x) using deb packages.
To do this we’ve followed documentation from https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md.
The jitsi server is install behind an Apache proxy.
From that point, we can easily access jitsi’s home page at my.domain.com.
We’ve been able to create room easily.

We then decided to setup the secure domain part using https://github.com/jitsi/jicofo#secure-domain.

From here, when we try to create a room, clicking “GO” button from home page, a box is popped up saying that I’ve been disconnected. Waiting for 30 sec to reconnect, the box is popped up again and again and it is impossible create a room.

If we had ‘?login=true’ at the end of the URL, I’m prompted for user/password. Giving credentials, another box is popped up saying ‘Waiting for the host …’ . If I click on ‘I am the host’, the login box pops up again.

It is then impossible to create a room as guest or even as authenticated user.

Here is my prosody config (after secure domain doc):

VirtualHost "my.domain.com"
        authentication = "internal_plain"
        ssl = {
                key = "/etc/prosody/certs/my.domain.com.key";
                certificate = "/etc/prosody/certs/my.domain.com.crt";
        }
        -- we need bosh
        modules_enabled = {
            "bosh";
            "pubsub";
            "ping"; -- Enable mod_ping
        }
        c2s_require_encryption = false

VirtualHost "auth.my.domain.com"
    ssl = {
        key = "/etc/prosody/certs/auth.my.domain.com.key";
        certificate = "/etc/prosody/certs/auth.my.domain.com.crt";
    }
    authentication = "internal_plain"

VirtualHost "guest.my.domain.com"
    authentication = "anonymous"
    c2s_require_encryption = "false"

Here is my /etc/jitsi/meet/my.domain.com-config.js

var config = {
    hosts: {
        // XMPP domain.
        domain: 'my.domain.com',

        // XMPP MUC domain. FIXME: use XEP-0030 to discover it.
        muc: 'conference.my.domain.com',

        // When using authentication, domain for guest users.
        anonymousdomain: 'guest.my.domain.com',

        // Domain for authenticated users. Defaults to <domain>.
        //authdomain: 'my.domain.com',

        // Jirecon recording component domain.
        // jirecon: 'jirecon.my.domain.com',

        // Call control component (Jigasi).
        // call_control: 'callcontrol.my.domain.com',

        // Focus component domain. Defaults to focus.<domain>.
        // focus: 'focus.my.domain.com',
    },

    // BOSH URL. FIXME: use XEP-0156 to discover it.
    bosh: '//my.domain.com/http-bind',

Here my jicofo sip-communicator.properties file:

org.jitsi.jicofo.auth.URL=XMPP:my.domain.com

Any advices or clue are welcome.
Thanks


#2

Can you provide some js console logs, obtain them before the reconnection happen.


#3

Hi damencho

Thanks for your quick reply and sorry for my late one :slight_smile:
Here are the logs line once I try to start a new room:

prosody.log:

Aug 30 21:32:23 general	info	Shutdown complete
Aug 30 21:32:24 general	info	Hello and welcome to Prosody version 0.9.12
Aug 30 21:32:24 general	info	Prosody is using the select backend for connection handling
Aug 30 21:32:24 portmanager	info	Activated service 's2s' on [::]:5269, [*]:5269
Aug 30 21:32:24 portmanager	info	Activated service 'c2s' on [::]:5222, [*]:5222
Aug 30 21:32:24 portmanager	info	Activated service 'legacy_ssl' on no ports
Aug 30 21:32:24 mod_posix	info	Prosody is about to detach from the console, disabling further console output
Aug 30 21:32:24 mod_posix	info	Successfully daemonized to PID 10902
Aug 30 21:32:24 portmanager	info	Activated service 'http' on [::]:5280, [*]:5280
Aug 30 21:32:24 portmanager	info	Activated service 'https' on [::]:5281, [*]:5281
Aug 30 21:32:24 portmanager	info	Activated service 'component' on [127.0.0.1]:5347, [::1]:5347
Aug 30 21:32:25 c2s55a7b8325a90	info	Client connected
Aug 30 21:32:25 jcp55a7b833bcb0	info	Incoming Jabber component connection
Aug 30 21:32:26 focus.my.domain.com:component	info	External component successfully authenticated
Aug 30 21:32:27 c2s55a7b8325a90	info	Authenticated as focus@auth.my.domain.com
Aug 30 21:32:27 jitsi-videobridge.my.domain.com:component	warn	Component not connected, bouncing error for: <iq id='RKVRo-31' type='get' to='jitsi-videobridge.my.domain.com' from='focus@auth.my.domain.com/focus7811728675791326'>
Aug 30 21:32:27 jcp55a7b837a2c0	info	Incoming Jabber component connection
Aug 30 21:32:27 jitsi-videobridge.my.domain.com:component	info	External component successfully authenticated

Aug 30 21:33:08 mod_bosh	info	New BOSH session, assigned it sid '644d68fa-dfc2-466c-8f0f-efc06c204db3'
|Aug 30 21:33:41 mod_bosh|info|New BOSH session, assigned it sid '7c3c3af8-9b05-47f2-ba54-d3720b70fe03'|
|---|---|---|
|Aug 30 21:34:11 mod_bosh|info|New BOSH session, assigned it sid 'd93b9b25-815e-464f-ac9c-a9226aa7b28d'|
|Aug 30 21:34:43 mod_bosh|info|New BOSH session, assigned it sid '2f5ffcf5-e919-4cfd-8f73-60b009bef582'|
|Aug 30 21:35:01 mod_bosh|info|New BOSH session, assigned it sid '02ee0fea-3605-435f-baa0-5b4e619a428d'|
|Aug 30 21:35:30 mod_bosh|info|New BOSH session, assigned it sid '6ff1e7ee-a6e2-4c59-8975-81faffe4e6fd'|
|Aug 30 21:35:49 mod_bosh|info|New BOSH session, assigned it sid 'b689cccf-cd26-4e89-9182-881b8f7dc781'|
|Aug 30 21:36:17 mod_bosh|info|New BOSH session, assigned it sid 'ca3e5c4b-faa5-42d0-9505-c58e48d0fd78'|
|Aug 30 21:36:33 mod_bosh|info|New BOSH session, assigned it sid '24578381-c3fe-4f99-9bf6-a9e12a75f9ec'|
|Aug 30 21:36:59 mod_bosh|info|New BOSH session, assigned it sid '3c1e17a5-2904-466c-84ff-ca19a065741c'|

As you can see, we are disconnecting and the page try to reconnect to the room every 30 sec

jvb.log

JVB 2018-08-30 21:33:07.222 FINE: [56] org.jitsi.videobridge.xmpp.ComponentImpl.processIQ() (serving component 'JitsiVideobridge') Processing IQ (packetId RKVRo-62): <iq type="get" to="jitsi-videobridge.my.domain.com" from="focus@auth.my.domain.com/focus7811728675791326" id="RKVRo-62"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>
JVB 2018-08-30 21:33:07.223 FINE: [56] org.jitsi.videobridge.xmpp.ComponentImpl.processIQRequest() (serving component 'JitsiVideobridge') Processing IQ request (packetId RKVRo-62).
JVB 2018-08-30 21:33:07.223 FINE: [56] org.jitsi.videobridge.xmpp.ComponentImpl.processIQ() (serving component 'JitsiVideobridge') Responding to IQ (packetId RKVRo-62) with: <iq type="result" id="RKVRo-62" from="jitsi-videobridge.my.domain.com" to="focus@auth.my.domain.com/focus7811728675791326"><query xmlns="http://jabber.org/protocol/disco#info"><identity category="component" type="conference" name="JitsiVideobridge"/><feature var="http://jabber.org/protocol/disco#info"/><feature var="urn:xmpp:ping"/><feature var="jabber:iq:last"/><feature var="urn:xmpp:time"/><feature var="http://jitsi.org/protocol/colibri"/><feature var="http://jitsi.org/protocol/healthcheck"/><feature var="urn:xmpp:jingle:apps:dtls:0"/><feature var="urn:xmpp:jingle:transports:ice-udp:1"/><feature var="urn:xmpp:jingle:transports:raw-udp:1"/><feature var="jabber:iq:version"/></query></iq>
JVB 2018-08-30 21:33:07.246 FINE: [58] org.jitsi.videobridge.xmpp.ComponentImpl.processIQ() (serving component 'JitsiVideobridge') Processing IQ (packetId RKVRo-64): <iq type="get" to="jitsi-videobridge.my.domain.com" from="focus@auth.my.domain.com/focus7811728675791326" id="RKVRo-64"><healthcheck xmlns="http://jitsi.org/protocol/healthcheck"/></iq>
JVB 2018-08-30 21:33:07.246 FINE: [58] org.jitsi.videobridge.xmpp.ComponentImpl.processIQRequest() (serving component 'JitsiVideobridge') Processing IQ request (packetId RKVRo-64).
JVB 2018-08-30 21:33:07.246 FINE: [58] org.jitsi.videobridge.xmpp.ComponentImpl.log() RECV: <iq type="get" to="jitsi-videobridge.my.domain.com" from="focus@auth.my.domain.com/focus7811728675791326" id="RKVRo-64"><healthcheck xmlns="http://jitsi.org/protocol/healthcheck"/></iq>
JVB 2018-08-30 21:33:07.276 INFO: [58] org.jitsi.videobridge.Videobridge.log() CAT=stat create_conf,conf_id=6deb4efa2a3e72c3 conf_name=null,logging=false,conf_count=1,ch_count=0,v_streams=0
JVB 2018-08-30 21:33:07.411 WARNING: [36] org.jitsi.videobridge.EndpointMessageTransport.log() SCTP connection with 8c3c6ea9e91cf910 not ready yet.
JVB 2018-08-30 21:33:07.412 WARNING: [36] org.jitsi.videobridge.EndpointMessageTransport.log() No available transport channel, can't send a message
JVB 2018-08-30 21:33:07.492 FINE: [61] org.jitsi.videobridge.xmpp.ComponentImpl.processIQ() (serving component 'JitsiVideobridge') Processing IQ (packetId VPBia-15): <iq id="VPBia-15" type="result" to="jitsi-videobridge.my.domain.com" from="my.domain.com"/>
JVB 2018-08-30 21:33:07.493 FINE: [61] org.jitsi.videobridge.xmpp.ComponentImpl.log() RECV: <iq id="VPBia-15" type="result" to="jitsi-videobridge.my.domain.com" from="my.domain.com"/>

jicofo.log

Jicofo 2018-08-30 21:32:57.201 INFO: [42] org.jitsi.jicofo.ComponentsDiscovery.discoverServices().267 New component discovered: jitsi-videobridge.my.domain.com, IQ Stanza (query jabber:iq:version) [to=focus@auth.my.domain.com/focus7811728675791326,from=jitsi-videobridge.my.domain.com,id=RKVRo-55,type=result,]
Jicofo 2018-08-30 21:32:57.202 INFO: [42] org.jitsi.jicofo.BridgeSelector.addJvbAddress().214 Added videobridge: jitsi-videobridge.my.domain.com v: IQ Stanza (query jabber:iq:version) [to=focus@auth.my.domain.com/focus7811728675791326,from=jitsi-videobridge.my.domain.com,id=RKVRo-55,type=result,]
Jicofo 2018-08-30 21:32:57.202 WARNING: [42] org.jitsi.jicofo.BridgeSelector.addJvbAddress().226 No pub-sub node mapped for jitsi-videobridge.my.domain.com
Jicofo 2018-08-30 21:32:57.210 INFO: [57] org.jitsi.jicofo.JvbDoctor.log() Scheduled health-check task for: jitsi-videobridge.my.domain.com
...

I hope you’ll find something interesting. Thanks in advance.


#4

I was interested in the javascript console logs. In chrome More Tools -> Developer Tools and the output in the console tab, before it manages to reload.


#5

Hi,

Here is it:

content_script_bundle.js:1 [human-web] Exception caught: TypeError: Cannot read property 'textContent' of null
    at s (content_script_bundle.js:1)
    at e.top.e.addEventListener (content_script_bundle.js:1)
i @ content_script_bundle.js:1
s @ content_script_bundle.js:1
e.top.e.addEventListener @ content_script_bundle.js:1
jquery.min.js:2 [Intervention] Slow network is detected. See https://www.chromestatus.com/feature/5636954674692096 for more details. Fallback font will be used while loading: https://my.domain.com/fonts/jitsi.woff?94d075
F @ jquery.min.js:2
css @ jquery.min.js:2
get @ jquery.min.js:2
css @ jquery.min.js:2
(anonymous) @ jquery.min.js:2
De @ jquery.min.js:2
ge.fn.(anonymous function) @ jquery.min.js:2
getIndicatorFontSize @ UIUtil.js:310
r.updateIndicators @ SmallVideo.js:784
r @ LocalVideo.js:60
init @ VideoLayout.js:112
k.start @ UI.js:286
value @ Conference.web.js:212
value @ Conference.web.js:123
commitLifeCycles @ react-dom.production.min.js:158
w @ react-dom.production.min.js:184
_ @ react-dom.production.min.js:181
g @ react-dom.production.min.js:180
v @ react-dom.production.min.js:180
h @ react-dom.production.min.js:179
c @ react-dom.production.min.js:178
enqueueSetState @ react-dom.production.min.js:109
o.setState @ react.production.min.js:12
e @ translate.js:123
n @ translate.js:135
(anonymous) @ EventEmitter.js:46
e.emit @ EventEmitter.js:45
(anonymous) @ i18next.js:162
(anonymous) @ i18next.js:265
(anonymous) @ i18next.js:266
t.load @ BackendConnector.js:183
(anonymous) @ i18next.js:215
t.load @ CacheConnector.js:40
t.loadResources @ i18next.js:214
r @ i18next.js:280
t.changeLanguage @ i18next.js:286
s @ i18next.js:159
setTimeout (async)
t.init @ i18next.js:171
(anonymous) @ i18next.js:68
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:46
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actionTypes.js:10
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ functions.js:87
(anonymous) @ functions.js:9
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ AnalyticsEvents.js:520
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:710
(anonymous) @ actions.js:504
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ defineProperty.js:23
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:238
(anonymous) @ actions.js:263
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ reducer.js:44
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:20
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:17
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:149
(anonymous) @ AuthHandler.js:229
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:189
(anonymous) @ connection.js:149
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ jquery.autosize.js:274
(anonymous) @ conference.js:2707
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ Chat.js:404
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
Logger.js:125 [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: null Script: null Line: null Column: null StackTrace:  Error: Strophe: Server did not offer a supported authentication mechanism
    at Object.i.Strophe.log (strophe.util.js:89)
    at Object.error (strophe.js:2083)
    at s.Connection._no_auth_received (strophe.js:3851)
    at s.Connection._connect_cb (strophe.js:3940)
    at e.Bosh._onRequestStateChange (strophe.js:5559)
n @ Logger.js:125
getGlobalOnErrorHandler @ JitsiMeetJS.js:537
window.onerror @ middleware.js:100
callErrorHandler @ GlobalOnErrorHandler.js:61
i.Strophe.log @ strophe.util.js:89
error @ strophe.js:2083
_no_auth_received @ strophe.js:3851
_connect_cb @ strophe.js:3940
_onRequestStateChange @ strophe.js:5559
XMLHttpRequest.send (async)
l @ strophe.js:5662
_processRequest @ strophe.js:5677
_throttledRequestHandler @ strophe.js:5823
_connect @ strophe.js:5170
connect @ strophe.js:3051
value @ xmpp.js:282
value @ xmpp.js:342
r.connect @ JitsiConnection.js:61
e @ connection.js:38
(anonymous) @ connection.js:62
r @ connection.js:86
t.a @ connection.js:179
(anonymous) @ conference.js:148
createInitialLocalTracksAndConnect @ conference.js:158
init @ conference.js:683
(anonymous) @ actions.web.js:28
(anonymous) @ index.js:11
(anonymous) @ middleware.js:41
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:13
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:22
(anonymous) @ middleware.js:18
(anonymous) @ middleware.web.js:32
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:17
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:30
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.web.js:23
(anonymous) @ middleware.any.js:94
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:31
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:94
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:18
(anonymous) @ middleware.js:130
(anonymous) @ middleware.js:126
value @ Conference.web.js:222
value @ Conference.web.js:123
commitLifeCycles @ react-dom.production.min.js:158
w @ react-dom.production.min.js:184
_ @ react-dom.production.min.js:181
g @ react-dom.production.min.js:180
v @ react-dom.production.min.js:180
h @ react-dom.production.min.js:179
c @ react-dom.production.min.js:178
enqueueSetState @ react-dom.production.min.js:109
o.setState @ react.production.min.js:12
e @ translate.js:123
n @ translate.js:135
(anonymous) @ EventEmitter.js:46
e.emit @ EventEmitter.js:45
(anonymous) @ i18next.js:162
(anonymous) @ i18next.js:265
(anonymous) @ i18next.js:266
t.load @ BackendConnector.js:183
(anonymous) @ i18next.js:215
t.load @ CacheConnector.js:40
t.loadResources @ i18next.js:214
r @ i18next.js:280
t.changeLanguage @ i18next.js:286
s @ i18next.js:159
setTimeout (async)
t.init @ i18next.js:171
(anonymous) @ i18next.js:68
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:46
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actionTypes.js:10
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ functions.js:87
(anonymous) @ functions.js:9
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ AnalyticsEvents.js:520
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:710
(anonymous) @ actions.js:504
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ defineProperty.js:23
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:238
(anonymous) @ actions.js:263
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ reducer.js:44
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:20
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:17
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:149
(anonymous) @ AuthHandler.js:229
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:189
(anonymous) @ connection.js:149
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ jquery.autosize.js:274
(anonymous) @ conference.js:2707
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ Chat.js:404
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
Logger.js:125 [modules/xmpp/strophe.util.js] <Object.i.Strophe.log>:  Strophe: Server did not offer a supported authentication mechanism
n @ Logger.js:125
i.Strophe.log @ strophe.util.js:90
error @ strophe.js:2083
_no_auth_received @ strophe.js:3851
_connect_cb @ strophe.js:3940
_onRequestStateChange @ strophe.js:5559
XMLHttpRequest.send (async)
l @ strophe.js:5662
_processRequest @ strophe.js:5677
_throttledRequestHandler @ strophe.js:5823
_connect @ strophe.js:5170
connect @ strophe.js:3051
value @ xmpp.js:282
value @ xmpp.js:342
r.connect @ JitsiConnection.js:61
e @ connection.js:38
(anonymous) @ connection.js:62
r @ connection.js:86
t.a @ connection.js:179
(anonymous) @ conference.js:148
createInitialLocalTracksAndConnect @ conference.js:158
init @ conference.js:683
(anonymous) @ actions.web.js:28
(anonymous) @ index.js:11
(anonymous) @ middleware.js:41
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:13
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:22
(anonymous) @ middleware.js:18
(anonymous) @ middleware.web.js:32
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:17
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:30
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.web.js:23
(anonymous) @ middleware.any.js:94
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:31
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:94
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:18
(anonymous) @ middleware.js:130
(anonymous) @ middleware.js:126
value @ Conference.web.js:222
value @ Conference.web.js:123
commitLifeCycles @ react-dom.production.min.js:158
w @ react-dom.production.min.js:184
_ @ react-dom.production.min.js:181
g @ react-dom.production.min.js:180
v @ react-dom.production.min.js:180
h @ react-dom.production.min.js:179
c @ react-dom.production.min.js:178
enqueueSetState @ react-dom.production.min.js:109
o.setState @ react.production.min.js:12
e @ translate.js:123
n @ translate.js:135
(anonymous) @ EventEmitter.js:46
e.emit @ EventEmitter.js:45
(anonymous) @ i18next.js:162
(anonymous) @ i18next.js:265
(anonymous) @ i18next.js:266
t.load @ BackendConnector.js:183
(anonymous) @ i18next.js:215
t.load @ CacheConnector.js:40
t.loadResources @ i18next.js:214
r @ i18next.js:280
t.changeLanguage @ i18next.js:286
s @ i18next.js:159
setTimeout (async)
t.init @ i18next.js:171
(anonymous) @ i18next.js:68
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:46
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actionTypes.js:10
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ functions.js:87
(anonymous) @ functions.js:9
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ AnalyticsEvents.js:520
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:710
(anonymous) @ actions.js:504
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ defineProperty.js:23
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:238
(anonymous) @ actions.js:263
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ reducer.js:44
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:20
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:17
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:149
(anonymous) @ AuthHandler.js:229
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:189
(anonymous) @ connection.js:149
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ jquery.autosize.js:274
(anonymous) @ conference.js:2707
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ Chat.js:404
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
Logger.js:125 [connection.js] <n.l>:  CONNECTION FAILED: connection.otherError
n @ Logger.js:125
l @ connection.js:145
n.emit @ events.js:96
value @ xmpp.js:203
_changeConnectStatus @ strophe.js:3683
_doDisconnect @ strophe.js:3725
_no_auth_received @ strophe.js:3859
_connect_cb @ strophe.js:3940
_onRequestStateChange @ strophe.js:5559
XMLHttpRequest.send (async)
l @ strophe.js:5662
_processRequest @ strophe.js:5677
_throttledRequestHandler @ strophe.js:5823
_connect @ strophe.js:5170
connect @ strophe.js:3051
value @ xmpp.js:282
value @ xmpp.js:342
r.connect @ JitsiConnection.js:61
e @ connection.js:38
(anonymous) @ connection.js:62
r @ connection.js:86
t.a @ connection.js:179
(anonymous) @ conference.js:148
createInitialLocalTracksAndConnect @ conference.js:158
init @ conference.js:683
(anonymous) @ actions.web.js:28
(anonymous) @ index.js:11
(anonymous) @ middleware.js:41
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:13
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:22
(anonymous) @ middleware.js:18
(anonymous) @ middleware.web.js:32
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:17
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:30
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.web.js:23
(anonymous) @ middleware.any.js:94
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:31
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:94
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:18
(anonymous) @ middleware.js:130
(anonymous) @ middleware.js:126
value @ Conference.web.js:222
value @ Conference.web.js:123
commitLifeCycles @ react-dom.production.min.js:158
w @ react-dom.production.min.js:184
_ @ react-dom.production.min.js:181
g @ react-dom.production.min.js:180
v @ react-dom.production.min.js:180
h @ react-dom.production.min.js:179
c @ react-dom.production.min.js:178
enqueueSetState @ react-dom.production.min.js:109
o.setState @ react.production.min.js:12
e @ translate.js:123
n @ translate.js:135
(anonymous) @ EventEmitter.js:46
e.emit @ EventEmitter.js:45
(anonymous) @ i18next.js:162
(anonymous) @ i18next.js:265
(anonymous) @ i18next.js:266
t.load @ BackendConnector.js:183
(anonymous) @ i18next.js:215
t.load @ CacheConnector.js:40
t.loadResources @ i18next.js:214
r @ i18next.js:280
t.changeLanguage @ i18next.js:286
s @ i18next.js:159
setTimeout (async)
t.init @ i18next.js:171
(anonymous) @ i18next.js:68
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:46
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actionTypes.js:10
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ functions.js:87
(anonymous) @ functions.js:9
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ AnalyticsEvents.js:520
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:710
(anonymous) @ actions.js:504
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ defineProperty.js:23
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:238
(anonymous) @ actions.js:263
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ reducer.js:44
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:20
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:17
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:149
(anonymous) @ AuthHandler.js:229
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:189
(anonymous) @ connection.js:149
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ jquery.autosize.js:274
(anonymous) @ conference.js:2707
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ Chat.js:404
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
Logger.js:125 [react/features/base/connection/actions.web.js] <>:  connection.otherError
n @ Logger.js:125
(anonymous) @ actions.web.js:32
Promise.catch (async)
(anonymous) @ actions.web.js:30
(anonymous) @ index.js:11
(anonymous) @ middleware.js:41
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:13
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:22
(anonymous) @ middleware.js:18
(anonymous) @ middleware.web.js:32
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:17
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:30
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.web.js:23
(anonymous) @ middleware.any.js:94
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:31
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:94
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:18
(anonymous) @ middleware.js:130
(anonymous) @ middleware.js:126
value @ Conference.web.js:222
value @ Conference.web.js:123
commitLifeCycles @ react-dom.production.min.js:158
w @ react-dom.production.min.js:184
_ @ react-dom.production.min.js:181
g @ react-dom.production.min.js:180
v @ react-dom.production.min.js:180
h @ react-dom.production.min.js:179
c @ react-dom.production.min.js:178
enqueueSetState @ react-dom.production.min.js:109
o.setState @ react.production.min.js:12
e @ translate.js:123
n @ translate.js:135
(anonymous) @ EventEmitter.js:46
e.emit @ EventEmitter.js:45
(anonymous) @ i18next.js:162
(anonymous) @ i18next.js:265
(anonymous) @ i18next.js:266
t.load @ BackendConnector.js:183
(anonymous) @ i18next.js:215
t.load @ CacheConnector.js:40
t.loadResources @ i18next.js:214
r @ i18next.js:280
t.changeLanguage @ i18next.js:286
s @ i18next.js:159
setTimeout (async)
t.init @ i18next.js:171
(anonymous) @ i18next.js:68
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:46
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actionTypes.js:10
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ functions.js:87
(anonymous) @ functions.js:9
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ AnalyticsEvents.js:520
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:710
(anonymous) @ actions.js:504
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ defineProperty.js:23
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:238
(anonymous) @ actions.js:263
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ reducer.js:44
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:20
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:17
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:149
(anonymous) @ AuthHandler.js:229
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:189
(anonymous) @ connection.js:149
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ jquery.autosize.js:274
(anonymous) @ conference.js:2707
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ Chat.js:404
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
Logger.js:125 [react/features/base/tracks/functions.js] <>:  Failed to create local tracks (2) ["audio", "video"] r {gum: {…}, name: "gum.not_found", message: "Requested device(s) was/were not found: audio, video", stack: "Error↵    at new r (https://my.domain.com/lib…ls.com/libs/lib-jitsi-meet.min.js?v=2942:2:124463"}
n @ Logger.js:125
(anonymous) @ functions.js:90
Promise.catch (async)
t.a @ functions.js:89
createInitialLocalTracksAndConnect @ conference.js:592
init @ conference.js:683
(anonymous) @ actions.web.js:28
(anonymous) @ index.js:11
(anonymous) @ middleware.js:41
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:13
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:22
(anonymous) @ middleware.js:18
(anonymous) @ middleware.web.js:32
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:17
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:30
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.web.js:23
(anonymous) @ middleware.any.js:94
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:31
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:94
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:18
(anonymous) @ middleware.js:130
(anonymous) @ middleware.js:126
value @ Conference.web.js:222
value @ Conference.web.js:123
commitLifeCycles @ react-dom.production.min.js:158
w @ react-dom.production.min.js:184
_ @ react-dom.production.min.js:181
g @ react-dom.production.min.js:180
v @ react-dom.production.min.js:180
h @ react-dom.production.min.js:179
c @ react-dom.production.min.js:178
enqueueSetState @ react-dom.production.min.js:109
o.setState @ react.production.min.js:12
e @ translate.js:123
n @ translate.js:135
(anonymous) @ EventEmitter.js:46
e.emit @ EventEmitter.js:45
(anonymous) @ i18next.js:162
(anonymous) @ i18next.js:265
(anonymous) @ i18next.js:266
t.load @ BackendConnector.js:183
(anonymous) @ i18next.js:215
t.load @ CacheConnector.js:40
t.loadResources @ i18next.js:214
r @ i18next.js:280
t.changeLanguage @ i18next.js:286
s @ i18next.js:159
setTimeout (async)
t.init @ i18next.js:171
(anonymous) @ i18next.js:68
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:46
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actionTypes.js:10
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ functions.js:87
(anonymous) @ functions.js:9
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ AnalyticsEvents.js:520
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:710
(anonymous) @ actions.js:504
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ defineProperty.js:23
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:238
(anonymous) @ actions.js:263
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ reducer.js:44
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:20
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:17
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:149
(anonymous) @ AuthHandler.js:229
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:189
(anonymous) @ connection.js:149
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ jquery.autosize.js:274
(anonymous) @ conference.js:2707
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ Chat.js:404
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
Logger.js:125 [react/features/base/tracks/functions.js] <>:  Failed to create local tracks ["audio"] r {gum: {…}, name: "gum.permission_denied", message: "User denied permission to use device(s): audio", stack: "Error↵    at new r (https://my.domain.com/lib…ls.com/libs/lib-jitsi-meet.min.js?v=2942:2:124463"}
n @ Logger.js:125
(anonymous) @ functions.js:90
Promise.catch (async)
t.a @ functions.js:89
(anonymous) @ conference.js:601
Promise.catch (async)
createInitialLocalTracksAndConnect @ conference.js:594
init @ conference.js:683
(anonymous) @ actions.web.js:28
(anonymous) @ index.js:11
(anonymous) @ middleware.js:41
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:13
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:22
(anonymous) @ middleware.js:18
(anonymous) @ middleware.web.js:32
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:17
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:30
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.web.js:23
(anonymous) @ middleware.any.js:94
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:31
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:94
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:18
(anonymous) @ middleware.js:130
(anonymous) @ middleware.js:126
value @ Conference.web.js:222
value @ Conference.web.js:123
commitLifeCycles @ react-dom.production.min.js:158
w @ react-dom.production.min.js:184
_ @ react-dom.production.min.js:181
g @ react-dom.production.min.js:180
v @ react-dom.production.min.js:180
h @ react-dom.production.min.js:179
c @ react-dom.production.min.js:178
enqueueSetState @ react-dom.production.min.js:109
o.setState @ react.production.min.js:12
e @ translate.js:123
n @ translate.js:135
(anonymous) @ EventEmitter.js:46
e.emit @ EventEmitter.js:45
(anonymous) @ i18next.js:162
(anonymous) @ i18next.js:265
(anonymous) @ i18next.js:266
t.load @ BackendConnector.js:183
(anonymous) @ i18next.js:215
t.load @ CacheConnector.js:40
t.loadResources @ i18next.js:214
r @ i18next.js:280
t.changeLanguage @ i18next.js:286
s @ i18next.js:159
setTimeout (async)
t.init @ i18next.js:171
(anonymous) @ i18next.js:68
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:46
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actionTypes.js:10
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ functions.js:87
(anonymous) @ functions.js:9
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ AnalyticsEvents.js:520
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:710
(anonymous) @ actions.js:504
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ defineProperty.js:23
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:238
(anonymous) @ actions.js:263
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ reducer.js:44
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:20
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ actions.js:17
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:149
(anonymous) @ AuthHandler.js:229
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ connection.js:189
(anonymous) @ connection.js:149
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ jquery.autosize.js:274
(anonymous) @ conference.js:2707
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ Chat.js:404
t @ bootstrap e6d4fddae23d8fc270d6:19
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
(anonymous) @ bootstrap e6d4fddae23d8fc270d6:62
Logger.js:125 [react/features/base/tracks/functions.js] <>:  Failed to create local tracks ["video"] r {gum: {…}, name: "gum.not_found", message: "Requested device(s) was/were not found: video", stack: "Error↵    at new r (https://my.domain.com/lib…ls.com/libs/lib-jitsi-meet.min.js?v=2942:2:124463"}

#6

Try adding in the general part of prosody config consider_bosh_secure = true, restart prosody and try again?


#7

Hi,

I’ve made the change in the configuration /etc/prosody/prosody.cfg.lua and restarted the service (debian). But it does not has any effect :frowning:
I still have the same error in console.log:

[JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: null Script: null Line: null Column: null StackTrace:  Error: Strophe: Server did not offer a supported authentication mechanism

#8

That is strange, maybe enable prosody debug logs and check for something on starting prosody or on connect … normally seeing “Server did not offer a supported authentication mechanism”
adding consider_bosh_secure = true and c2s_require_encryption = false fixes the issue.


#9

Both settings have been made without success. Setting debug mode could not see expected error message “Server did not offer …” after a fresh restart of prosody:

tail -f /var/log/prosody/prosody.log | grep -i 'server'



Aug 31 15:58:07 socket	debug	server.lua: closed client handler and removed socket from list
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[::]:5269'
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[*]:5269'
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[::]:5222'
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[*]:5222'
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[::]:5280'
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[*]:5280'
Aug 31 15:58:07 socket	debug	server.lua: new ssl server listener on '[::]:5281'
Aug 31 15:58:07 socket	debug	server.lua: new ssl server listener on '[*]:5281'
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[127.0.0.1]:5347'
Aug 31 15:58:07 socket	debug	server.lua: new server listener on '[::1]:5347'
Aug 31 15:58:11 socket	debug	server.lua: accepted new client connection from 127.0.0.1:38838 to 5222
Aug 31 15:58:11 socket	debug	server.lua: we need to do tls, but delaying until send buffer empty
Aug 31 15:58:11 socket	debug	server.lua: attempting to start tls on tcp{client}: 0x55ac9bd401d8
Aug 31 15:58:11 socket	debug	server.lua: ssl handshake done
Aug 31 15:58:16 socket	debug	server.lua: accepted new client connection from 127.0.0.1:57130 to 5347
Aug 31 15:58:26 socket	debug	server.lua: accepted new client connection from 127.0.0.1:57132 to 5347

However, in Jicofo logs, I can such error when restarting prosody:

Jicofo 2018-08-31 16:01:23.508 INFO: [205] org.jitsi.jicofo.ComponentsDiscovery.scheduleRediscovery().189 Services re-discovery interval: 30000
Jicofo 2018-08-31 16:01:23.509 INFO: [205] org.jitsi.jicofo.FocusManager.log() XMPP provider reg state: RegistrationState=Registered
Jicofo 2018-08-31 16:01:26.340 SEVERE: [187] org.jivesoftware.whack.ExternalComponentManager.error()
java.net.SocketException: Broken pipe (Write failed)
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
	at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
	at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
	at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
	at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)
	at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
	at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
	at java.io.BufferedWriter.flush(BufferedWriter.java:254)
	at org.dom4j.io.XMLWriter.flush(XMLWriter.java:272)
	at org.jivesoftware.whack.ExternalComponent.send(ExternalComponent.java:371)
	at org.jivesoftware.whack.ExternalComponentManager.sendPacket(ExternalComponentManager.java:269)
	at org.xmpp.component.AbstractComponent.send(AbstractComponent.java:925)
	at org.jitsi.xmpp.component.ComponentBase.access$400(ComponentBase.java:36)
	at org.jitsi.xmpp.component.ComponentBase$PingTask.run(ComponentBase.java:577)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)
Jicofo 2018-08-31 16:01:31.344 SEVERE: [213] org.jitsi.xmpp.component.ComponentBase.run().632 Ping timeout for ID: RKVRo-53341

Should it be a clue?


#10

This is coming from the web client, you cannot see it in prosody. I was hoping to see something about why it skips offering the auth mechanisms …

This is just an error on the component connection, happens when you restart prosody and should be auto-recovered just after printing the exception, not a problem.


#11

I can see it from the web client console:

[JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: null Script: null Line: null Column: null StackTrace:  Error: Strophe: Server did not offer a supported authentication mechanism
    at Object.i.Strophe.log (strophe.util.js:89)
    at Object.error (strophe.js:2083)
    at s.Connection._no_auth_received (strophe.js:3851)
    at s.Connection._connect_cb (strophe.js:3940)
    at e.Bosh._onRequestStateChange (strophe.js:5559)

Prosody configured with consider_bosh_secure = true and c2s_require_encryption = false.


#12

Is the Apache proxy in front of the Jisti server could cause such error?


#13

I don’t see how?
So nginx or apache connect to localhost http clear port when proxing the bosh connection, that’s why prosody things the channel is not secure (cause it is not https), and that’s the reason to not offer any authentication. We know that the connection is over https when going through the Internet and just the leg on localhost is http, so it is ok to tell prosody, consider the bosh connection secure.
I’m not sure what is the problem here, I saw you are using prosody 0.9.x maybe upgrading it to latest 0.10, just mind when upgrading, edit your prosody config and replace storage = "null" with storage = "none".


#14

Actually is configured to do SSL to the end. We forward to Jitsi server port 4443 using SSL connection:

    <IfModule mod_proxy.c>
        # Allow SSL to Jitsi
        SSLProxyEngine on
        ProxyRequests off
        ProxyPreserveHost on

        <Proxy *>
            Require env jitsi
        </Proxy>

        ProxyPass "/" "https://192.168.0.5:4443/"
        ProxyPassReverse "/" "https://192.168.0.5:4443/"

    </IfModule>

Would it be the problem?


#15

I don’t understand your setup, but can you try using something like the default apache config:


#16

This is the Apache Proxy configuration for my.domain.com

<VirtualHost *:443>
    ServerName my.domain.com
    ServerAlias www.my.domain.com

    # ModSecurity
    SecRuleEngine off

    <IfModule mod_http2.c>
        Protocols h2 http/1.1
    </IfModule>

    <IfModule mod_ssl.c>
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/my.domain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.com/privkey.pem
    </IfModule>

    FileEtag none

    <IfModule mod_proxy.c>
    	# Allow SSL to Jitsi
    	SSLProxyEngine on
    	ProxyRequests off
    	ProxyPreserveHost on

    	<Proxy *>
	    Require all granted
    	</Proxy>

	ProxyPass "/" "https://192.168.0.5:4443/"
        ProxyPassReverse "/" "https://192.168.0.5:4443/"

    </IfModule>

    ErrorLog "${APACHE_LOG_DIR}/my.domain.com_error.log"
    CustomLog "${APACHE_LOG_DIR}/my.domain.com_access.log" combined
</VirtualHost>

I’ve also another config file my.domain.com.80.conf for redirecting http to http request as shown in your <VirtualHost *:80> apache configuration.
On the server hosting Jitsi application, there is no Apache nor Nginx server running.
Jitsi is configured to listen on port 4443 and using https as shown in Apache configuration

ProxyPass "/" "https://192.168.0.5:4443/"
ProxyPassReverse "/" "https://192.168.0.5:4443/"

Hope this clarify the situation?
Thanks


#17

443 -> |Apache Proxy| <-> 4443 |Jitsi Server (192.168.0.5)|


#18

Is your Apache configuration file example for an Apache proxy? For me it looks like the Apache and jisti are installed on the same server right?
Which is not our use case unfortunately :frowning:


#19

Yep, it is. Test it without the proxy does it work? Do you see network errors in the debug tools in chrome in the network tab, it may have more info for the type of error?


#20

We switched off the proxy and forward net traffic for ports (4443, 5280 and 10000) to the jitsi server (which is located behind the proxy (front end server)).
This way we can access jitsi home page, but it looks like know that authentication is not working, we can create room but as anonymous only.