Multi-User Chat Configuration
I have spent a lot of time looking at all the possible parameters for configuring chatrooms in Prosody XMPP Server. There are many, and I will list the ones I have found at the bottom of this post. I count 2 parameters that can be configured with strings, 6 that can be configured with integers, and 14 that are boolean, and these do not include possible parameters from community modules!
Multi-User-Chat has its place, and there seems to be two dominant uses for it:
- Social chatting, where you join a room to discuss a subject or to be entertained by anyone who shows up
- Purposeful chatting, where you join a room to discuss something with people that you know
As e2e.ee gets started, I will be focusing on purposeful chatting. With this in mind, what about chat room configuration? I want this to be easy for the end user. The fewer choices that need to be made, the sooner the user can use his chat room.
Looking at other the MUC Configurations of other services, I see far too many choices that can lead to confusion. I cannot be the only person who spends time pondering the implication of each choice.
If I set rules for the service that must be followed, I can eliminate many choices and make the experience better for the user.
I simplify this down to the absolute bare-bones. I have minimized the configuation for so that it allows only 3 inputs to be considered:

Is anything else really needed?
I have even considered combining name and description into one value, “Descriptive Name”. Pidgin only shows “Name” in its “Description” column. Gajim shows both values.
List of Parameters Prosody offers for MUC Configuration:
muc_room_allow_public boolean
muc_room_locking boolean
muc_room_default_public boolean
muc_room_default_persistent boolean
muc_room_default_members_only boolean
muc_room_default_allow_member_invites boolean
muc_room_default_moderated boolean
muc_room_default_public_jids boolean
muc_room_default_change_subject boolean
muc_tombstones boolean
new_muc_storage_format boolean
muc_room_allow_persistent boolean
allow_unaffiliated_register boolean
enforce_registered_nickname boolean
max_history_messages integer
muc_room_lock_timeout integer
muc_max_rooms integer
muc_room_cache_size integer
muc_room_default_history_length integer
muc_tombstone_expiry integer
name string
muc_room_default_language string