Remove the "End Meeting for all" Button

Hi there!

As requested by management, i have to remove the “End meeting for all” button within the jitsi interface. I’ve found this thread: How to disable hangup button moderator 'End Meeting for All' which describes how to remove it. However i’ve made the changes as suggested in the thread and removed all end_conferences settings within the “jitsi-meet.cfg.lua” file.

The button is still there. Anything else i have to look out for?

If you have correctly removed the “end_conference” entries from the correct config file and restarted prosody, then you should no longer see the option to “End Meeting for all” and you should just see the usual red “Leave the meeting” button.

  • which config file did you change? Can you share the config (but redact any sensitive info and your domain name)?
  • did you restart prosody after updating config?

So the button in the toolbar is not red, and when you click it you still get the popup to choose either “End meeting for all” or “Leave the meeting”?

1 Like

I’ve changed the file .jitsi-meet-cfg/prosody/config/conf.d/jitsi-meet.cfg.lua. The content looks like this:

admins = {
    "jigasi@auth.meet.jitsi",
    "jibri@auth.meet.jitsi",
    "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 = { "PRIVACY","PRIVACY" }

consider_bosh_secure = true;
consider_websocket_secure = true;



VirtualHost "meet.jitsi"

    authentication = "token"
    app_id = "PRIVACY"
    app_secret = "PRIVACY"
    allow_empty_token = false

    enable_domain_verification = false


    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";

        "muc_lobby_rooms";
        "muc_breakout_rooms";
		"av_moderation";
    }

    main_muc = "muc.meet.jitsi"
    lobby_muc = "lobby.meet.jitsi"

    breakout_rooms_muc = "breakout.meet.jitsi"

    speakerstats_component = "speakerstats.meet.jitsi"
    conference_duration_component = "conferenceduration.meet.jitsi"


    av_moderation_component = "avmoderation.meet.jitsi"
    c2s_require_encryption = false


VirtualHost "guest.meet.jitsi"
    authentication = "jitsi-anonymous"
    c2s_require_encryption = false


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"
    storage = "memory"
    modules_enabled = {
        "ping";
        }
    restrict_room_creation = true
    muc_room_locking = false
    muc_room_default_public_jids = true

Component "muc.meet.jitsi" "muc"
    storage = "memory"
    modules_enabled = {
        "muc_meeting_id";
        "token_verification";

        "polls";
        "muc_domain_mapper";

    }
    muc_room_cache_size = 1000
    muc_room_locking = false
    muc_room_default_public_jids = true


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"
    storage = "memory"
    restrict_room_creation = true
    muc_room_locking = false
    muc_room_default_public_jids = true


Component "breakout.meet.jitsi" "muc"
    storage = "memory"
    restrict_room_creation = true
    muc_room_locking = false
    muc_room_default_public_jids = true
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        "polls";
        }


I’ve restarted all docker containers after changing the configuration. The button is still blue and has both options aailable onclick.

//EDIT:
I’ve just checked the docker log for prosody. If i join a meeting and use the “End meeting for all” button it logs this event:

endconference.meet.jitsi:end_conference                      info       Room d447d538-e66b-4762-b0cc-b629b3958cae@muc.meet.jitsi destroyed by occupant hh3vdiv2zpibhjpdsicebvkj@meet.jitsi/0XZy84ryhrjC

Sorry, I missed the fact that you are using docker.

For the docker setup, I think you can set ENABLE_END_CONFERENCE=false in your .env file to disable that module. No need to modify config files.

1 Like

Sounds promising. I’ll try and report back as soon as i can restart the containers.

The issue is solved:

Make sure “- ENABLE_END_CONFERENCE” is available in the docker-compose.yml under the prosody section. And add “ENABLE_END_CONFERENCE=false” in the .env file. After restarting the button is now as expected.

Thank you for the help!

2 Likes