Hey everyone, I am trying to enable Excalidraw, but I have a grey screen when creating a room with the following kind of JS console errors:
[JitsiMeetJS.ts] <getGlobalOnErrorHandler>: UnhandledError: TypeError: e is null Script: https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943 Line: 44 Column: 232592 StackTrace: isVisible@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:44:232592
updateLargeVideoAudioLevel@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:44:232699
updateLargeVideoAudioLevel@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:178:575530
setAudioLevel@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:178:578236
9196/Bue.setAudioLevel@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:178:687696
9196/_setupListeners/<@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:178:669212
6857/r.prototype.emit@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:82372
5369/Zu.prototype._fireAudioLevelChangeEvent@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:764941
6857/r.prototype.emit@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:82372
setAudioLevel@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:595983
5369/li.prototype.start/this.intervalId<@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:326284
setInterval handler*5369/li.prototype.start@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:325909
5369/Pi.startLocalStats@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:338469
5369/createLocalTracks/<@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:817921
promise callback*createLocalTracks@https://[MYDOMAIN]/libs/lib-jitsi-meet.min.js?v=6943:2:817693
9196/IA/<@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:2:400035
promise callback*IA@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:2:399968
createInitialLocalTracks@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:178:654757
createInitialLocalTracksAndConnect@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:178:655775
init@https://[MYDOMAIN]/libs/app.bundle.min.js?v=6943:178:658082
I am on NixOS 23.05.
This is my Prosody config:
pidfile = "/run/prosody/prosody.pid"
log = "*syslog"
data_path = "/var/lib/prosody"
plugin_paths = {
"/nix/store/zz476jc9ij9f8xx4vdq4ckw5y5nwlhzs-jitsi-meet-prosody-1.0.6943/share/prosody-plugins"
}
admins = { }
-- we already build with libevent, so we can just enable it for a more performant server
use_libevent = true
modules_enabled = {
"blocklist";
"bookmarks";
"bosh";
"carbons";
"cloud_notify";
"csi";
"dialback";
"disco";
"http_files";
"mam";
"pep";
"ping";
"private";
"proxy65";
"register";
"roster";
"saslauth";
"smacks";
"time";
"tls";
"uptime";
"vcard_legacy";
"version";
"websocket";
"pubsub";
"smacks";
"speakerstats";
"external_services";
"conference_duration";
"end_conference";
"muc_lobby_rooms";
"muc_breakout_rooms";
"av_moderation";
"room_metadata";
"muc_hide_all";
"muc_meeting_id";
"muc_domain_mapper";
"muc_rate_limit";
"limits_exception";
"persistent_lobby";
};
disco_items = {
{ "lobby.[MYDOMAIN]", "lobby.[MYDOMAIN] MUC endpoint"};
{ "internal.auth.[MYDOMAIN]", "internal.auth.[MYDOMAIN] MUC endpoint"};
{ "breakout.[MYDOMAIN]", "breakout.[MYDOMAIN] MUC endpoint"};
{ "conference.[MYDOMAIN]", "conference.[MYDOMAIN] MUC endpoint"};
};
allow_registration = false
c2s_require_encryption = true
s2s_require_encryption = true
s2s_secure_auth = false
s2s_insecure_domains = { }
s2s_secure_domains = { }
authentication = "internal_hashed"
http_interfaces = { "*", "::" }
https_interfaces = { "*", "::" }
http_ports = { 5280 }
https_ports = { 5281 }
cross_domain_websocket = true;
consider_websocket_secure = true;
unlimited_jids = {
"focus@auth.[MYDOMAIN]",
"jvb@auth.[MYDOMAIN]"
}
Component "focus.[MYDOMAIN]" "client_proxy"
target_address = "focus@auth.[MYDOMAIN]"
Component "speakerstats.[MYDOMAIN]" "speakerstats_component"
muc_component = "conference.[MYDOMAIN]"
Component "conferenceduration.[MYDOMAIN]" "conference_duration_component"
muc_component = "conference.[MYDOMAIN]"
Component "endconference.[MYDOMAIN]" "end_conference"
muc_component = "conference.[MYDOMAIN]"
Component "avmoderation.[MYDOMAIN]" "av_moderation_component"
muc_component = "conference.[MYDOMAIN]"
Component "metadata.[MYDOMAIN]" "room_metadata_component"
muc_component = "conference.[MYDOMAIN]"
breakout_rooms_component = "breakout.[MYDOMAIN]"
Component "conference.[MYDOMAIN]" "muc"
modules_enabled = { "muc_mam"; "vcard_muc"; }
name = "Jitsi Meet MUC"
restrict_room_creation = false
max_history_messages = 20
muc_room_locking = false
muc_room_lock_timeout = 300
muc_tombstones = true
muc_tombstone_expiry = 2678400
muc_room_default_public = true
muc_room_default_members_only = false
muc_room_default_moderated = false
muc_room_default_public_jids = true
muc_room_default_change_subject = false
muc_room_default_history_length = 20
muc_room_default_language = "en"
restrict_room_creation = true
storage = "memory"
admins = { "focus@auth.[MYDOMAIN]" }
Component "breakout.[MYDOMAIN]" "muc"
modules_enabled = { "muc_mam"; "vcard_muc"; }
name = "Jitsi Meet Breakout MUC"
restrict_room_creation = false
max_history_messages = 20
muc_room_locking = false
muc_room_lock_timeout = 300
muc_tombstones = true
muc_tombstone_expiry = 2678400
muc_room_default_public = true
muc_room_default_members_only = false
muc_room_default_moderated = false
muc_room_default_public_jids = true
muc_room_default_change_subject = false
muc_room_default_history_length = 20
muc_room_default_language = "en"
restrict_room_creation = true
storage = "memory"
admins = { "focus@auth.[MYDOMAIN]" }
Component "internal.auth.[MYDOMAIN]" "muc"
modules_enabled = { "muc_mam"; "vcard_muc"; }
name = "Jitsi Meet Videobridge MUC"
restrict_room_creation = false
max_history_messages = 20
muc_room_locking = false
muc_room_lock_timeout = 300
muc_tombstones = true
muc_tombstone_expiry = 2678400
muc_room_default_public = true
muc_room_default_members_only = false
muc_room_default_moderated = false
muc_room_default_public_jids = true
muc_room_default_change_subject = false
muc_room_default_history_length = 20
muc_room_default_language = "en"
storage = "memory"
admins = { "focus@auth.[MYDOMAIN]", "jvb@auth.[MYDOMAIN]" }
Component "lobby.[MYDOMAIN]" "muc"
modules_enabled = { "muc_mam"; "vcard_muc"; }
name = "Jitsi Meet Lobby MUC"
restrict_room_creation = false
max_history_messages = 20
muc_room_locking = false
muc_room_lock_timeout = 300
muc_tombstones = true
muc_tombstone_expiry = 2678400
muc_room_default_public = true
muc_room_default_members_only = false
muc_room_default_moderated = false
muc_room_default_public_jids = true
muc_room_default_change_subject = false
muc_room_default_history_length = 20
muc_room_default_language = "en"
restrict_room_creation = true
storage = "memory"
VirtualHost "auth.[MYDOMAIN]"
enabled = true;
ssl = {
cafile = "/etc/ssl/certs/ca-bundle.crt";
key = "/var/lib/jitsi-meet/jitsi-meet.key";
certificate = "/var/lib/jitsi-meet/jitsi-meet.crt";
};
authentication = "internal_hashed"
VirtualHost "guest.[MYDOMAIN]"
enabled = true;
authentication = "anonymous"
c2s_require_encryption = false
VirtualHost "[MYDOMAIN]"
enabled = true;
ssl = {
cafile = "/etc/ssl/certs/ca-bundle.crt";
key = "/var/lib/jitsi-meet/jitsi-meet.key";
certificate = "/var/lib/jitsi-meet/jitsi-meet.crt";
};
authentication = "jitsi-anonymous"
c2s_require_encryption = false
admins = { "focus@auth.[MYDOMAIN]" }
smacks_max_unacked_stanzas = 5
smacks_hibernation_time = 60
smacks_max_hibernated_sessions = 1
smacks_max_old_sessions = 1
av_moderation_component = "avmoderation.[MYDOMAIN]"
speakerstats_component = "speakerstats.[MYDOMAIN]"
conference_duration_component = "conferenceduration.[MYDOMAIN]"
end_conference_component = "endconference.[MYDOMAIN]"
c2s_require_encryption = false
lobby_muc = "lobby.[MYDOMAIN]"
breakout_rooms_muc = "breakout.[MYDOMAIN]"
room_metadata_component = "metadata.[MYDOMAIN]"
main_muc = "conference.[MYDOMAIN]"
authentication = "internal_hashed"
VirtualHost "recorder.[MYDOMAIN]"
enabled = true;
authentication = "internal_plain"
c2s_require_encryption = false
And this is my Jitsi-Meet config.js
:
var config =
{
"hosts": {
"domain": "[MYDOMAIN]",
"muc": "conference.[MYDOMAIN]",
"anonymousdomain": "guest.[MYDOMAIN]",
"focus": "focus.[MYDOMAIN]"
},
"bosh": "//[MYDOMAIN]/http-bind",
"testing": {},
"enableNoAudioDetection": true,
"enableNoisyMicDetection": true,
"channelLastN": -1,
"p2p": {
"enabled": true,
"stunServers": [
{
"urls": "stun:meet-jit-si-turnrelay.jitsi.net:443"
}
]
},
"analytics": {},
"mouseMoveCallbackInterval": 1000,
"flags": {
"sourceNameSignaling": true,
"sendMultipleVideoStreams": true,
"receiveMultipleVideoStreams": true
},
"fileRecordingsEnabled": true,
"hiddenDomain": "recorder.[MYDOMAIN]",
"liveStreamingEnabled": true,
"toolbarButtons": [
"camera",
"chat",
"closedcaptions",
"desktop",
"dock-iframe",
"download",
"embedmeeting",
"etherpad",
"feedback",
"filmstrip",
"fullscreen",
"hangup",
"help",
"highlight",
"invite",
"linktosalesforce",
"livestreaming",
"microphone",
"noisesuppression",
"participants-pane",
"profile",
"raisehand",
"recording",
"security",
"select-background",
"settings",
"shareaudio",
"sharedvideo",
"shortcuts",
"stats",
"tileview",
"toggle-camera",
"undock-iframe",
"videoquality",
"whiteboard"
],
"websocket": "wss://[MYDOMAIN]/xmpp-websocket",
"whiteboard": {
"collabServerBaseUrl": "[MYDOMAIN]",
"enabled": true
}
}
;
I don’t know if I need to configure something in JVB or Jicofo for it to work.
When removing “room_metadata”, and with everything else identical, I can enter the room as moderator, but then I don’t have the whiteboard button.
Thank you in advance for your help!