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