Hello all,
from long time I’m suffering from this issue, the empty /disconnected user still remain in the room.
when I re open the room, I found disconnected people are still displayed on meeting as you see on the below print screen, the number of remain empty participant is increased each time.
I have prosody 0.11 installed but didn’t solve the issue, I put my comments in other similar topic to get help but no success.
for that I rewrite this issue in “install & Config” category, hopping to find awesome guys to solve it, I remarked that many people meet from the same issue… if you solve it you will help lots of people. Thank you all in advance!
Can you share your prosody config?
Here my prosody config:
plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }
-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "meet.mydomain.duckdns.org";
turncredentials_secret = "fLFDcBMPWEapGoFE";
turncredentials = {
{ type = "stun", host = "meet.mydomain.duckdns.org", port = "4446" },
{ type = "turn", host = "meet.mydomain.duckdns.org", port = "4446", transport = "udp" },
{ type = "turns", host = "meet.mydomain.duckdns.org", port = "443", transport = "tcp" }
};
cross_domain_bosh = false;
consider_bosh_secure = true;
network_backend = "epoll";
VirtualHost "meet.mydomain.duckdns.org"
-- enabled = false -- Remove this line to enable this host
authentication = "internal_plain"
-- Properties below are modified by jitsi-meet-tokens package config
-- and authentication above is switched to "token"
--app_id="example_app_id"
--app_secret="example_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/meet.mydomain.duckdns.org.key";
certificate = "/etc/prosody/certs/meet.mydomain.duckdns.org.crt";
}
speakerstats_component = "speakerstats.meet.mydomain.duckdns.org"
conference_duration_component = "conferenceduration.meet.mydomain.duckdns.org"
-- we need bosh
modules_enabled = {
"bosh";
"pubsub";
"ping"; -- Enable mod_ping
"speakerstats";
"turncredentials";
"conference_duration";
}
c2s_require_encryption = false
Component "conference.meet.mydomain.duckdns.org" "muc"
storage = "memory"
modules_enabled = {
"muc_meeting_id";
"muc_domain_mapper";
-- "token_verification";
"persist_muc_passwords";
}
admins = { "focus@auth.meet.mydomain.duckdns.org" }
muc_room_locking = false
muc_room_default_public_jids = true
storage = {
persistent_muc_passwds = "internal";
}
days_to_persist_muc_passwds = 1;
-- internal muc component
Component "internal.auth.meet.mydomain.duckdns.org" "muc"
storage = "memory"
modules_enabled = {
"ping";
}
admins = { "focus@auth.meet.mydomain.duckdns.org", "jvb@auth.meet.mydomain.duckdns.org" }
muc_room_locking = false
muc_room_default_public_jids = true
VirtualHost "auth.meet.mydomain.duckdns.org"
ssl = {
key = "/etc/prosody/certs/auth.meet.mydomain.duckdns.org.key";
certificate = "/etc/prosody/certs/auth.meet.mydomain.duckdns.org.crt";
}
authentication = "internal_plain"
Component "focus.meet.mydomain.duckdns.org"
component_secret = "hMK4RWsH"
Component "speakerstats.meet.mydomain.duckdns.org" "speakerstats_component"
muc_component = "conference.meet.mydomain.duckdns.org"
Component "conferenceduration.meet.mydomain.duckdns.org" "conference_duration_component"
muc_component = "conference.meet.mydomain.duckdns.org"
VirtualHost "guest.meet.mydomain.duckdns.org"
authentication = "anonymous"
--speakerstats_component = "speakerstats.meet.mydomain.duckdns.org"
conference_duration_component = "conferenceduration.meet.mydomain.duckdns.org"
-- we need bosh
modules_enabled = {
--"speakerstats";
"conference_duration";
}
c2s_require_encryption = false
What does persist_muc_passwords do?
Your config is wrong as you have two storage definitions:
Component "conference.meet.mydomain.duckdns.org" "muc"
storage = "memory"
...
storage = {
persistent_muc_passwds = "internal";
}
Get rid of the second one. I suspect that one messes up the things …
here my new config it’s solved the issue, but I lost the password persistent when I reboot my server
Component "conference.meet.mydomain.duckdns.org" "muc"
storage = "memory"
…
persistent_muc_passwds = "internal";
@damencho your are expert! thank for your help.
I solved my issue with this config:
Component "conference.meet.mydomain.duckdns.org" "muc"
default_storage = "memory"
...
storage = {
persistent_muc_passwds = "internal";
}
What does persist_muc_passwords do?
I have the same problem as Yassine. But unfortunately not for the same reason.
I do not have the double storage in Component “conference.meet.mydomain.duckdns.org” “muc”
Storage was defined as “none” though. I changed it to memory. The current state is:
Component “conference.meet.mydomain.duckdns.org” “muc”
storage = "memory"
modules_enabled = {
"muc_meeting_id";
"muc_domain_mapper";
-- "token_verification";
}
admins = { "focus@auth.conference.meet.mydomain.duckdns.org" }
muc_room_locking = false
muc_room_default_public_jids = true
– internal muc component
Component “internal.auth.conference.meet.mydomain.duckdns.org” “muc”
storage = "memory"
modules_enabled = {
"ping";
}
admins = { "focus@auth.conference.meet.mydomain.duckdns.org", "jvb@auth.conference.meet.mydomain.duckdns.org" }
muc_room_locking = false
muc_room_default_public_jids = true
Even changing to “memory” the problem still happens.
Please help
Thank you ptualek, I tried it but still some ghosts remain. What is funny is that it seems to be working correctly after I restart prosody. And then after a while it stops kicking ghosts.
Now I tried storage = “internal” whatever that means…
I was having this errors in the prosody log:
May 25 17:31:07 modulemanager error Unable to load module ‘storage_memory’: /usr/lib/prosody/modules/mod_storage_memory.lua: No such file or directory
and also this one:
May 27 17:58:27 general error
stack traceback:
/usr/lib/prosody/modules/mod_bosh.lua:483: in function </usr/lib/prosody/modules/mod_bosh.lua:473>
(tail call): ?
/usr/lib/prosody/util/timer.lua:51: in function '?'
/usr/lib/prosody/net/server_select.lua:917: in function </usr/lib/prosody/net/server_select.lua:861>
[C]: in function 'xpcall'
/usr/bin/prosody:400: in function 'loop'
/usr/bin/prosody:431: in main chunk
[C]: ?
I also see that the log date is not correct. it must be with some other time location.
Well… I don’t know what the storage: internal does, but i’m trying it now and see if it is fixed.
still having this error:
May 29 08:58:20 general error
stack traceback:
/usr/lib/prosody/modules/mod_bosh.lua:483: in function </usr/lib/prosody/modules/mod_bosh.lua:473>
(tail call): ?
/usr/lib/prosody/util/timer.lua:51: in function '?'
/usr/lib/prosody/net/server_select.lua:917: in function </usr/lib/prosody/net/server_select.lua:861>
[C]: in function 'xpcall'
/usr/bin/prosody:400: in function 'loop'
/usr/bin/prosody:431: in main chunk
[C]: ?