Jigasi with Lobby, Second Caller doesn't knock

Hi @damencho, based on your idea I define a specific domain for jigasi. I do the following configuration:

  1. I defined a DNS record A for additional hostname: jigasi.meet.example.com

  2. I specified another anonymous domain like guest.meet.example.com in virtual-host configuration of prosody, like that:

     VirtualHost "jigasi.meet.example.com"
         authentication = "anonymous"
         c2s_require_encryption = false
         conference_duration_component = "conferenceduration.meet.example.com"
         modules_enabled = {
             "ping"; --Enable mod_ping
             "speakerstats";
             "conference_duration";
             "muc_lobby_rooms";
             "turncredentials";
         }
    
  3. In sip-communicator.properties of jigasi, I removed the XMPP authentication part and modify hostname in DOMAIN_BASE and in xmpp.acc.SERVER_ADDRESS, referring to the new domain jigasi.meet.example.com:

net.java.sip.communicator.impl.protocol.sip.acc1403273890647.DOMAIN_BASE=jigasi.meet.example.com

org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS=jigasi.meet.example.com
org.jitsi.jigasi.xmpp.acc.IS_SERVER_OVERRIDDEN=true
org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS=jigasi.meet.example.com
org.jitsi.jigasi.xmpp.acc.VIDEO_CALLING_DISABLED=true
org.jitsi.jigasi.xmpp.acc.JINGLE_NODES_ENABLED=false
org.jitsi.jigasi.xmpp.acc.AUTO_DISCOVER_STUN=false
org.jitsi.jigasi.xmpp.acc.IM_DISABLED=true
org.jitsi.jigasi.xmpp.acc.SERVER_STORED_INFO_DISABLED=true
org.jitsi.jigasi.xmpp.acc.IS_FILE_TRANSFER_DISABLED=true

The first tests in this scenario seem to work correctly (every callers knock before access to the room).
These tests are made in single server scenario (jigasi/prosody/jicofo/jvb on the same server) with secure_domain based on custom_http. I would test this configuration later in production where the jvbs/jigasi are on different servers from prosody/jicofo/nginx cluster.

I tried these settings and am still getting the SASL error whenever attempting to use BOSH from Jigasi. I also tried install a new Jigasi from source and installing locally on the prosody server. Still will not connect with BOSH.

@AngeloC I tried your method as well and though everything connects without issue I am still not getting prompted for the second user to be held in the lobby. It also appears that your method does not use the BOSH connection as @damencho said would be needed for multiple users entering the bridge.

Does anyone have a working Lobby+JWT+Jigasi config for all the needed components that they would be willing to share?

Little workaround I found but that might have unintended side effects:

I set Jigasi as admin in prosody, same as JVB and Jicofo. This makes it able to join pretty much all rooms. Don’t know if this is a good idea in the long run though.

@Son_Ta_Dinh, if you refer to the internal muc admin configuration in prosody, I configured it following this readme. As suggested there, jigasi@auth.meet.example.com is configured as admin of internal.auth.meet.example.com.

@jsrobo Effectively I don’t use bosh connection from Jigasi.

This does not work for me as I get the error net.java.sip.communicator.service.protocol.OperationFailedException: Failed to join chat room 258236848@muc.my.domain with nickname: 13c39b12. The chat room requires registration.

Maybe I have a config problem somewhere else?

Don’t really understand how the internal.auth component is used. Would be grateful for any clarification.

I have the issue now that Jigasi joins as a visible participant, not sure if this is intended but I doubt it… Might be a different problem though

I was able to resolve the BOSH issue by using :4444 as that seems to be what nginx is set to use by the LE script. https://{host}:4444/http-bind?room={roomName}&token I am still having an issue SIP calls connecting over BOSH. If I don’t have org.jitsi.jigasi.xmpp.acc.PASS=password then I get the below error but if I do have it configured, it acts the same as if BOSH is not configured.

SEVERE: [71] org.jitsi.jigasi.JvbConference.registrationStateChanged().637 [ctx=16068585225831645286276] Unregistered XMPP:RegistrationStateChangeEvent[ oldState=Registering; newState=RegistrationState=Unregistered; userRequest=false; reasonCode=0; reason=No password entered]