Jigasi Configuration Issue

Hello again.

This time, I’m working on an already installed Jigasi. I was receiving a SASL error. It was configured to use token authentication, which I was free to disable. So, changed it to “jitsi-anonymous”, which did solve the issue. Currently, I’m having an issue as below. It keeps telling me my <<DOMAIN_BASE>> isn’t providing a MUC service.

Jigasi Logs;

2022-07-22 09:41:31.967 WARNING: [56] org.jitsi.jigasi.health.SipHealthPeriodicChecker.log() No health check started, no HEALTH_CHECK_SIP_URI prop.
2022-07-22 09:41:31.983 INFO: [48] impl.protocol.jabber.ProtocolProviderServiceJabberImpl.authenticated().2423 Authenticated: false
2022-07-22 09:41:31.984 INFO: [48] org.jitsi.jigasi.xmpp.CallControlMucActivator.joinCommonRoom().277 Joining call control room: JigasiBrewery@internal.auth.<<DOMAIN_BASE>> pps:ProtocolProviderServiceJabberImpl(Jabber:jigasi@auth.<<DOMAIN_BASE>>)
2022-07-22 09:41:42.902 INFO: [61] impl.protocol.jabber.ChatRoomJabberImpl.joined().1369 jigasibrewery@internal.auth.<<DOMAIN_BASE>>/focus has joined the jigasibrewery@internal.auth.<<DOMAIN_BASE>> chat room.
2022-07-22 09:42:31.909 INFO: [71] org.jitsi.jigasi.SipGateway.incomingCallReceived().216 [ctx=165848295190943955686] Incoming call received...
2022-07-22 09:42:32.914 INFO: [73] org.jitsi.jigasi.SipGatewaySession.run().1565 [ctx=165848295190943955686]Using default JVB room name property <<JVB_ROOM>>@<<DOMAIN_BASE>>
2022-07-22 09:42:32.915 WARNING: [73] org.jitsi.jigasi.CallContext.update().532 No roomJidDomain extracted from roomJid:<<JVB_ROOM>>@<<DOMAIN_BASE>>, tenant:null
2022-07-22 09:42:32.921 INFO: [73] org.jitsi.jigasi.JvbConference.start().471 [ctx=165848295190943955686] Starting JVB conference room: <<JVB_ROOM>>@<<DOMAIN_BASE>>
2022-07-22 09:42:32.929 INFO: [73] org.jitsi.jigasi.JvbConference.setXmppProvider().607 [ctx=165848295190943955686] Using ProtocolProviderServiceJabberImpl(Jabber:13b7ae53@<<DOMAIN_BASE>>/13b7ae53)
2022-07-22 09:42:32.950 INFO: [77] impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.registrationStateChanged().127 Jingle : ON
2022-07-22 09:42:32.950 INFO: [77] org.jitsi.jigasi.JvbConference.registrationStateChanged().666 [ctx=165848295190943955686] Registering XMPP.
2022-07-22 09:42:32.953 INFO: [77] impl.protocol.jabber.ProtocolProviderServiceJabberImpl.authenticated().2423 Authenticated: false
2022-07-22 09:42:32.958 INFO: [77] org.jitsi.jigasi.AudioModeration.xmppProviderRegistered().483 [ctx=165848295190943955686] Discovered avmoderation.<<DOMAIN_BASE>> for 5ms.
2022-07-22 09:42:32.960 INFO: [77] org.jitsi.jigasi.JvbConference.joinConferenceRoom().752 [ctx=165848295190943955686] Joining JVB conference room: <<JVB_ROOM>>@<<DOMAIN_BASE>>
2022-07-22 09:42:47.962 SEVERE: [77] org.jitsi.jigasi.JvbConference.inviteFocus().1688 [ctx=165848295190943955686] Could not invite the focus to the conference
org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 15000ms (~15s). Waited for response using: IQReplyFilter: iqAndIdFilter (AndFilter: (OrFilter: (IQTypeFilter: type=error, IQTypeFilter: type=result), StanzaIdFilter: id=EywiD-62)), : fromFilter (OrFilter: (FromMatchesFilter (full): focus.<<DOMAIN_BASE>>)).
        at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:111)
        at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:98)
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:260)
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:214)
        at org.jitsi.jigasi.JvbConference.inviteFocus(JvbConference.java:1682)
        at org.jitsi.jigasi.JvbConference.joinConferenceRoom(JvbConference.java:827)
        at org.jitsi.jigasi.JvbConference.registrationStateChanged(JvbConference.java:647)
        at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:187)
        at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:141)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:1389)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:970)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.initializeConnectAndLogin(ProtocolProviderServiceJabberImpl.java:795)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.register(ProtocolProviderServiceJabberImpl.java:500)
        at org.jitsi.jigasi.util.RegisterThread.run(RegisterThread.java:59)
2022-07-22 09:42:47.963 SEVERE: [77] impl.protocol.jabber.ChatRoomJabberImpl.joinAs().832 Failed to join room <<JVB_ROOM>>@<<DOMAIN_BASE>> with nickname: 13b7ae53
org.jivesoftware.smackx.muc.MultiUserChatException$NotAMucServiceException: Can not join '<<JVB_ROOM>>@<<DOMAIN_BASE>>', because '<<DOMAIN_BASE>>' does not provide a MUC (XEP-45) service.
        at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:307)
        at org.jivesoftware.smackx.muc.MultiUserChat.join(MultiUserChat.java:703)
        at org.jivesoftware.smackx.muc.MultiUserChat.join(MultiUserChat.java:595)
        at net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl.joinAs(ChatRoomJabberImpl.java:714)
        at net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl.joinAs(ChatRoomJabberImpl.java:852)
        at org.jitsi.jigasi.JvbConference.joinConferenceRoom(JvbConference.java:843)
        at org.jitsi.jigasi.JvbConference.registrationStateChanged(JvbConference.java:647)
        at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:187)
        at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:141)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:1389)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:970)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.initializeConnectAndLogin(ProtocolProviderServiceJabberImpl.java:795)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.register(ProtocolProviderServiceJabberImpl.java:500)
        at org.jitsi.jigasi.util.RegisterThread.run(RegisterThread.java:59)
2022-07-22 09:42:47.964 SEVERE: [77] org.jitsi.jigasi.JvbConference.joinConferenceRoom().963 [ctx=165848295190943955686] Failed to join room <<JVB_ROOM>>@<<DOMAIN_BASE>> with nickname: 13b7ae53
net.java.sip.communicator.service.protocol.OperationFailedException: Failed to join room <<JVB_ROOM>>@<<DOMAIN_BASE>> with nickname: 13b7ae53
        at net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl.joinAs(ChatRoomJabberImpl.java:834)
        at net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl.joinAs(ChatRoomJabberImpl.java:852)
        at org.jitsi.jigasi.JvbConference.joinConferenceRoom(JvbConference.java:843)
        at org.jitsi.jigasi.JvbConference.registrationStateChanged(JvbConference.java:647)
        at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:187)
        at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:141)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:1389)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:970)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.initializeConnectAndLogin(ProtocolProviderServiceJabberImpl.java:795)
        at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.register(ProtocolProviderServiceJabberImpl.java:500)
        at org.jitsi.jigasi.util.RegisterThread.run(RegisterThread.java:59)
Caused by: org.jivesoftware.smackx.muc.MultiUserChatException$NotAMucServiceException: Can not join '<<JVB_ROOM>>@<<DOMAIN_BASE>>', because '<<DOMAIN_BASE>>' does not provide a MUC (XEP-45) service.
        at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:307)
        at org.jivesoftware.smackx.muc.MultiUserChat.join(MultiUserChat.java:703)
        at org.jivesoftware.smackx.muc.MultiUserChat.join(MultiUserChat.java:595)
        at net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl.joinAs(ChatRoomJabberImpl.java:714)
        ... 10 more
2022-07-22 09:42:47.964 INFO: [77] org.jitsi.jigasi.JvbConference.stop().567 [ctx=165848295190943955686] Removing account Jabber:13b7ae53@<<DOMAIN_BASE>>/13b7ae53
2022-07-22 09:42:47.968 INFO: [77] impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.registrationStateChanged().134 Jingle : OFF
2022-07-22 09:42:47.970 INFO: [85] org.jitsi.jigasi.SipGatewaySession.handleCallState().1425 [ctx=165848295190943955686] SIP call ended: CallPeerChangeEvent: type=CallPeerStatusChange oldV=net.java.sip.communicator.service.protocol.CallPeerState:Incoming Call newV=net.java.sip.communicator.service.protocol.CallPeerState:Failed for peer=00905322865664 <00905322865664@free3.voipgateway.org>;status=Failed
2022-07-22 09:42:47.970 INFO: [85] org.jitsi.jigasi.SipGatewaySession.sipCallEnded().680 [ctx=165848295190943955686] Sip call ended: Call: id=1658482951880240148044 peers=0
2022-07-22 09:42:47.970 SEVERE: [85] org.jitsi.jigasi.AbstractGateway.notifyCallEnded().121 [ctx=165848295190943955686] Call resource not exists for session.
2022-07-22 09:42:47.970 INFO: [85] org.jitsi.jigasi.SipGatewaySession.peerStateChanged().1486 null SIP peer state: Failed
2022-07-22 09:54:58.367 SEVERE: [141] impl.protocol.sip.SipStackSharing.findTargetFor().922 no listeners
2022-07-22 09:54:58.367 SEVERE: [141] impl.protocol.sip.SipStackSharing.processRequest().709 couldn't find a ProtocolProviderServiceSipImpl to dispatch to

I think that may have something to do with my prosody configuration, which is as below;

plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }

asap_accepted_issuers = { "aud", "smash" }
asap_accepted_audiences = { "aud", "smash" }

-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "<<DOMAIN_BASE>>";

external_service_secret = "<<SECRET>>";
external_services = {
     { type = "stun", host = "<<DOMAIN_BASE>>", port = 3478 },
     { type = "turn", host = "<<DOMAIN_BASE>>", port = 3478, transport = "udp", secret = true, ttl = 86400, algorithm = "turn" },
     { type = "turns", host = "<<DOMAIN_BASE>>", port = 5349, transport = "tcp", secret = true, ttl = 86400, algorithm = "turn" }
};

cross_domain_websocket = true;
consider_websocket_secure = true;

cross_domain_bosh = false;
consider_bosh_secure = true;
-- https_ports = { }; -- Remove this line to prevent listening on port 5284

-- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
ssl = {
    protocol = "tlsv1_2+";
    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-SH>
}

unlimited_jids = {
    "focus@auth.<<DOMAIN_BASE>>",
    "jvb@auth.<<DOMAIN_BASE>>"
}

VirtualHost "<<DOMAIN_BASE>>"
    -- enabled = false -- Remove this line to enable this host
    authentication = "jitsi-anonymous"
    -- authentication = "token"
    -- Properties below are modified by jitsi-meet-tokens package config
    -- and authentication above is switched to "token"
    app_id="<<APP_ID>>"
    app_secret="<<APP_SECRET>>"
    -- Assign this host a certificate for TLS, otherwise it would use the one
    -- set in the global section (if any).
    -- Note that old-style SSL on port 5223 only supports one certificate, and will always
    -- use the global one.
    ssl = {
        key = "/etc/prosody/certs/<<DOMAIN_BASE>>.key";
        certificate = "/etc/prosody/certs/<<DOMAIN_BASE>>.crt";
    }
    av_moderation_component = "avmoderation.<<DOMAIN_BASE>>"
    speakerstats_component = "speakerstats.<<DOMAIN_BASE>>"
    conference_duration_component = "conferenceduration.<<DOMAIN_BASE>>"
    -- we need bosh
    modules_enabled = {
        "bosh";
        "pubsub";
        "ping"; -- Enable mod_ping
        "speakerstats";
        "external_services";
        "conference_duration";
        "muc_lobby_rooms";
        "muc_breakout_rooms";
        "av_moderation";
        "presence_identity";
        "websocket";
        "smacks";
    }
    smacks_max_unacked_stanzas = 5;
    smacks_hibernation_time = 60;
    smacks_max_hibernated_sessions = 1;
    smacks_max_old_sessions = 1;
    c2s_require_encryption = false
    lobby_muc = "lobby.<<DOMAIN_BASE>>"
    breakout_rooms_muc = "breakout.<<DOMAIN_BASE>>"
    main_muc = "conference.<<DOMAIN_BASE>>"
    -- muc_lobby_whitelist = { "recorder.<<DOMAIN_BASE>>" } -- Here we can whitelist jibri to enter lobby enabled rooms

Component "conference.<<DOMAIN_BASE>>" "muc"
    restrict_room_creation = true
    storage = "memory"
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        "polls";
        "token_verification";
        "muc_rate_limit";
    }
    admins = { "focus@auth.<<DOMAIN_BASE>>" }
    muc_room_locking = false
    muc_room_default_public_jids = true

Component "breakout.<<DOMAIN_BASE>>" "muc"
    restrict_room_creation = true
    storage = "memory"
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        "token_verification";
        "muc_rate_limit";
    }
    admins = { "focus@auth.<<DOMAIN_BASE>>" }
    muc_room_locking = false
    muc_room_default_public_jids = true

-- internal muc component
Component "internal.auth.<<DOMAIN_BASE>>" "muc"
    storage = "memory"
    modules_enabled = {
        "ping";
    }
    admins = { "focus@auth.<<DOMAIN_BASE>>", "jvb@auth.<<DOMAIN_BASE>>", "<<DOMAIN_BASE>>", "jigasi@auth.<<DOMAIN_BASE>>" }
    muc_room_locking = false
    muc_room_default_public_jids = true
    muc_room_cache_size = 1000
    c2s_require_encryption = false
    allow_empty_token = true

VirtualHost "recorder.<<DOMAIN_BASE>>"
    modules_enabled = {
        "ping";
        "smacks";
    }
    smacks_max_unacked_stanzas = 5;
    smacks_hibernation_time = 60;
    smacks_max_hibernated_sessions = 1;
    smacks_max_old_sessions = 1;
    authentication = "internal_plain"
    c2s_require_encryption = false
    allow_empty_token = true

VirtualHost "auth.<<DOMAIN_BASE>>"
    ssl = {
        key = "/etc/prosody/certs/auth.<<DOMAIN_BASE>>.key";
        certificate = "/etc/prosody/certs/auth.<<DOMAIN_BASE>>.crt";
    }
    modules_enabled = {
        "limits_exception";
    }
    authentication = "internal_hashed"


VirtualHost "guest.<<DOMAIN_BASE>>"
    authentication = "anonymous"
    c2s_require_encryption = false

-- Proxy to jicofo's user JID, so that it doesn't have to register as a component.
Component "focus.<<DOMAIN_BASE>>" "client_proxy"
    target_address = "focus@auth.<<DOMAIN_BASE>>"

Component "speakerstats.<<DOMAIN_BASE>>" "speakerstats_component"
    muc_component = "conference.<<DOMAIN_BASE>>"

Component "conferenceduration.<<DOMAIN_BASE>>" "conference_duration_component"
    muc_component = "conference.<<DOMAIN_BASE>>"

Component "avmoderation.<<DOMAIN_BASE>>" "av_moderation_component"
    muc_component = "conference.<<DOMAIN_BASE>>"

Component "lobby.<<DOMAIN_BASE>>" "muc"
    storage = "memory"
    restrict_room_creation = true
    muc_room_locking = false
    muc_room_default_public_jids = true
    modules_enabled = {
        "muc_rate_limit";
        "polls";
    }

Thanks in advance for any help.

You are using the default room setting in jigasi config as you are missing the sip headers.

That needs to be in the format as in the template. You need to fix it, It needs to match your muc component: