Hi,
I am using Jitsi version stable-7439 with docker setup on custom kubernetes cluster.
I have enabled JWT + Lobby feature on jitsi.
Below is my prosody config file
admins = { "focus@auth.meet.jitsi", "jvb@auth.meet.jitsi" }
unlimited_jids = { "focus@auth.meet.jitsi", "jvb@auth.meet.jitsi"}
plugin_paths = { "/prosody-plugins/", "/prosody-plugins-custom" }
muc_mapper_domain_base = "meet.jitsi";
muc_mapper_domain_prefix = "muc";
http_default_host = "meet.jitsi"
asap_accepted_issuers = { "jitsi-authentication-adapter" }
asap_accepted_audiences = { "Jitsi Meet" }
consider_bosh_secure = true;
consider_websocket_secure = true;
VirtualHost "meet.jitsi"
authentication = "token";
app_id = "jitsi-internal-portal";
app_secret = "<Secret>";
allow_empty_token = false;
-- enable_domain_verification = true;
ssl = { key = "/config/certs/meet.jitsi.key"; certificate = "/config/certs/meet.jitsi.crt"; }
modules_enabled = {
"bosh";
"websocket";
"smacks"; -- XEP-0198: Stream Management
"pubsub";
"ping";
"speakerstats";
"conference_duration";
"external_services";
"muc_lobby_rooms";
"av_moderation";
"reservations";
"presence_identity";
}
main_muc = "muc.meet.jitsi"
lobby_muc = "lobby.meet.jitsi"
speakerstats_component = "speakerstats.meet.jitsi"
conference_duration_component = "conferenceduration.meet.jitsi"
av_moderation_component = "avmoderation.meet.jitsi"
c2s_require_encryption = false
reservations_api_prefix = "https://<host>"
reservations_enable_max_occupants = true
reservations_api_timeout = 60000
reservations_api_headers = {
["Authorization"] = "Basic <Token>";
}
VirtualHost "auth.meet.jitsi"
ssl = { key = "/config/certs/auth.meet.jitsi.key"; certificate = "/config/certs/auth.meet.jitsi.crt"; }
modules_enabled = {
"limits_exception";
}
authentication = "internal_hashed"
Component "internal-muc.meet.jitsi" "muc"
modules_enabled = {
"ping";
}
restrict_room_creation = true
muc_room_locking = false
muc_room_default_public_jids = true
Component "muc.meet.jitsi" "muc"
modules_enabled = {
"muc_meeting_id";
"muc_domain_mapper";
"muc_max_occupants";
"token_verification";
"token_affiliation";
"polls";
"muc_domain_mapper";
}
muc_room_cache_size = 1000
muc_room_locking = false
muc_room_default_public_jids = true
muc_max_occupants = "5"
muc_access_whitelist = { "focus@auth.meet.jitsi", "jvb@auth.meet.jitsi" }
Component "focus.meet.jitsi" "client_proxy"
target_address = "focus@auth.meet.jitsi"
Component "speakerstats.meet.jitsi" "speakerstats_component"
muc_component = "muc.meet.jitsi"
Component "conferenceduration.meet.jitsi" "conference_duration_component"
muc_component = "muc.meet.jitsi"
Component "avmoderation.meet.jitsi" "av_moderation_component"
muc_component = "muc.meet.jitsi"
Component "lobby.meet.jitsi" "muc"
restrict_room_creation = true
muc_room_locking = false
muc_room_default_public_jids = true
storage = "memory"
modules_enabled = {
"muc_rate_limit";
}
Below is my jicofo config file
jicofo {
// Configuration related to jitsi-videobridge
bridge {
max-bridge-participants = "5"
brewery-jid = "jvbbrewery@internal-muc.meet.jitsi"
}
// Configure the codecs and RTP extensions to be used in the offer sent to clients.
codec {
video {
vp8 {
enabled = "true"
}
vp9 {
enabled = "true"
}
h264 {
enabled = "false"
}
}
}
conference {
enable-auto-owner = false
}
octo {
// Whether or not to use Octo. Note that when enabled, its use will be determined by
// $jicofo.bridge.selection-strategy. There's a corresponding flag in the JVB and these
// two MUST be in sync (otherwise bridges will crash because they won't know how to
// deal with octo channels).
enabled = false
id = "1"
}
sctp {
enabled = false
}
xmpp {
client {
enabled = true
hostname = "shard-1-prosody.jitsi.svc"
port = "5222"
domain = "auth.meet.jitsi"
username = "focus"
password = "<hidden>"
conference-muc-jid = "muc.meet.jitsi"
client-proxy = "focus.meet.jitsi"
disable-certificate-verification = true
}
}
}
Prosody boots up fine
Jicofo boots with exception
Jicofo 2023-03-03 08:02:53.130 SEVERE: [15] [xmpp_connection=client] XmppProviderImpl.doConnect#228: Failed to connect/login: The following addresses failed: 'RFC 6120 A/AAAA Endpoint + [shard-1-prosody.jitsi.svc:5222] (shard-1-prosody.jitsi.svc/1<IP>:5222)' failed because: java.net.ConnectException: Connection refused (Connection refused)
org.jivesoftware.smack.SmackException$EndpointConnectionException: The following addresses failed: 'RFC 6120 A/AAAA Endpoint + [shard-1-prosody.jitsi.svc:5222] (shard-1-prosody.jitsi.svc/<IP>:5222)' failed because: java.net.ConnectException: Connection refused (Connection refused)
at org.jivesoftware.smack.SmackException$EndpointConnectionException.from(SmackException.java:334)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:663)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:846)
at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:526)
at org.jitsi.impl.protocol.xmpp.XmppProviderImpl.doConnect(XmppProviderImpl.java:208)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:167)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
JVB boots with exception
JVB 2023-03-03 10:47:27.061 INFO: [11] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize: Initialized mapping harvesters (delay=992ms). stunDiscoveryFailed=false
JVB 2023-03-03 10:47:27.392 WARNING: [1] org.glassfish.jersey.server.wadl.WadlFeature.configure: JAXBContext implementation could not be found. WADL feature is disabled.
JVB 2023-03-03 10:47:27.512 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime: A provider org.jitsi.rest.Health registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.rest.Health will be ignored.
JVB 2023-03-03 10:47:27.513 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime: A provider org.jitsi.rest.Version registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.rest.Version will be ignored.
JVB 2023-03-03 10:47:27.848 WARNING: [18] [hostname=shard-1-prosody.jitsi.svc id=shard0] MucClient.lambda$getConnectAndLoginCallable$9#631: Error connecting:
org.jivesoftware.smack.SmackException$EndpointConnectionException: The following addresses failed: 'RFC 6120 A/AAAA Endpoint + [shard-1-prosody.jitsi.svc:5222] (shard-1-prosody.jitsi.svc/<IP>:5222)' failed because: java.net.ConnectException: Connection refused (Connection refused)
at org.jivesoftware.smack.SmackException$EndpointConnectionException.from(SmackException.java:334)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:664)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:849)
at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:526)
at org.jitsi.xmpp.mucclient.MucClient.lambda$getConnectAndLoginCallable$9(MucClient.java:626)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:167)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
JVB 2023-03-03 10:47:31.834 WARNING: [24] [hostname=shard-1-prosody.jitsi.svc id=shard0] MucClient.setPresenceExtensions#458: Cannot set presence extension: not connected.
The first user is able to join using a JWT as a moderator
When the second user tries to join with a valid JWT, the Jitsi meet web crashes and has the following error on the web console
<Hce._onConferenceFailed>: CONFERENCE FAILED: conference.videobridgeNotAvailable
Everyone is kicked out and Jitsi meet web UI keeps on restarting indefinitely
Kindly help me in resolving this.