X Disconnected user remains in session (prosody 0.11)

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!

2 Likes

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";
           }
1 Like

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 :frowning:

try this Ghosts users in some rooms