Tigase MUC Component
Prev | Chapter 8. Configuring the Tigase Server to Load a Component | Next

## Tigase MUC Component

Tigase MUC component is included in all Tigase distributions, to enable MUCs have the following lines in your init.properties file:

    --comp-name-4 = muc
    --comp-class-4 = tigase.muc.MUCComponent

### Configuration Options

- room-log-directory Directory to store chat logs

    muc/room-log-directory=/var/log/muc/

- message-filter-enabled To disable filter and allow MUC transfer all subelements in <message/> set:

    muc/message-filter-enabled[B]=false

For example, this allows users to send XHTML stanzas through MUC chatrooms on your server.

- presence-filter-enabled To disable filter and allow MUC transfer all subelements in <presence/> set:

    muc/presence-filter-enabled[B]=false

- search-ghosts-every-minute To enable pinging occupants every minute

    muc/search-ghosts-every-minute[B]=true

- ghostbuster-enabled To disable active searching of ghosts in MUC Rooms:

    muc/ghostbuster-enabled[B]=false

- muc-allow-chat-states To allow transfer of chat-states in MUC messages:

    muc/muc-allow-chat-states[B]=true

- muc-lock-new-room To turn off default locking newly created rooms:

    muc/muc-lock-new-room[B]=false

By default new room will be locked until owner submit room configuration.

- muc-multi-item-allowed To disable joining from few resources to sinlge nickname:

    muc/muc-multi-item-allowed[B]=false

#### History Providers Parameters

- history-db Database type. By default the same what is used as User Repository in Server. Provided types: derby, mysql, memory, pgsql, sqlserver, none.

    muc/history-db=none

- history-db-uri URI for database, if should be used different than default from Tigase Server:

    muc/history-db-uri=jdbc:derby:/database/tigasedbmuc

#### Public log

- muc-logger-class To set custom class for MUC logger:

    muc/muc-logger-class=com.example.CustomLogger

Class must implment interface tigase.muc.logger.MucLogger.

#### Modules

Each module can be configured to use custom implementation by including it in the init.properties, the defaults are as follows:

    muc/modules/jabber:iq:version[S]=tigase.component.modules.impl.JabberVersionModule
    muc/modules/owner[S]=tigase.muc.modules.RoomConfigurationModule
    muc/modules/presences[S]=tigase.muc.modules.PresenceModuleImpl
    muc/modules/groupchat[S]=tigase.muc.modules.GroupchatMessageModule
    muc/modules/invitations[S]=tigase.muc.modules.MediatedInvitationModule
    muc/modules/urn:xmpp:ping[S]=tigase.component.modules.impl.XmppPingModule
    muc/modules/unique[S]=tigase.muc.modules.UniqueRoomNameModule
    muc/modules/disco[S]=tigase.muc.modules.DiscoveryModule
    muc/modules/iqforwarder[S]=tigase.muc.modules.IqStanzaForwarderModule
    muc/modules/admin[S]=tigase.muc.modules.ModeratorModule
    muc/modules/privatemessages[S]=tigase.muc.modules.PrivateMessageModule
    muc/modules/commands[S]=tigase.component.modules.impl.AdHocCommandModule

#### Room Configuration options

In addition to the default Room configuration options defined in the MUC specification Tigase offers following as well:

Tigase MUC Options

  - tigase#presence_delivery_logic - allows configuring logic determining which presence should be used by occupant in the room while using multiple-resource connections under one nickname, following options are available:

    - PREFERE_PRIORITY
    - PREFERE_LAST
  - tigase#presence_filtering - (boolean) when enabled broadcasts presence only to selected affiliation groups

  - tigase#presence_filtered_affiliations - when enabled tigase#presence_filtering is enabled one can select affiliation which should receive presences, following are possible to select from:

    - owner
    - admin
    - member
    - none
    - outcast
  - muc#roomconfig_maxusers - Allows configuring of maximum users of room.
Configuring default room configuration in init.properties

    muc/default_room_config/<option>=<value>

for example:

    muc/default_room_config/tigase#presence_delivery_logic=PREFERE_LAST

Configuration per-room
  Per room configuration is done using IQ stanzas defined in the specification, for example:

    <iq type="set" to="roomname@muc.domain" id="config1">
        <query xmlns="http://jabber.org/protocol/muc#owner">
            <x xmlns="jabber:x:data" type="submit">
                <field type="boolean" var="tigase#presence_filtering">
                    <value>1</value>
                </field>
                <field type="list-multi" var="tigase#presence_filtered_affiliations">
                    <value>owner</value>
                </field>
            </x>
        </query>
    </iq>

Prev | Up | Next
Server to Server Protocol Settings | Home | Tigase Load Balancing