Install Mu-Conference Using JCR - Chatroom Component

This tutorial explains how you can install Mu-Conference, using the Jabber Component Runtime JCR,a script, and a configuration file. It is inspired on Konstantinos Thoukydides' tutorial and instructions for SuSe are taken from it.

Note that when using ejabberd, you do not need Mu-Conference for Multi-User Chat (MUC) support as ejabberd already ships with a conferencing module. Thus, the audience of this tutorial consists of people that need Mu-Conference for some reason, geeks, and packagers that want to make a Jabber server independent Mu-Conference package.

  1. Install Glib and pkg-config

    Install GLib library 2 (devel) and pkg-config:

    • Debian/Ubuntu:
      apt-get install libglib2.0-dev pkg-config
    • SuSe:
      yast -i glib2-devel
      tar zxvf pkg-config-0.19.tar.gz
      cd pkg-config-0.19
      ./configure && make
      su -c 'make install'
  2. Install Mu-Conference Using the Jabber Component Runtime JCR

    1. Retrieve JCR:
      wget -p http://jabber.terrapin.com/JCR/jcr-0.2.4.tar.gz -O jcr-0.2.4.tar.gz
    2. Extract the source:
      tar zxvf jcr-0.2.4.tar.gz
    3. Enter the created directory:
      cd jcr-0.2.4
    4. Compile the Jabber Component Runtime JCR:
      make
    5. Retrieve Mu-Conference:
      wget -p http://jabberstudio.rediris.es/mu-conference/mu-conference-0.6.0.tar.gz \
      -O mu-conference-0.6.0.tar.gz
    6. Extract the source:
      tar zxvf mu-conference-0.6.0.tar.gz
    7. Copy the compiled files from JCR:
      cp src/main.c mu-conference-0.6.0/src/
      cp src/jcomp.mk mu-conference-0.6.0/src/
    8. Enter the Mu-Conference source directory:
      cd mu-conference-0.6.0/src/
    9. Compile Mu-Conference:
      make -f jcomp.mk # On some systems you need to replace 'make' with 'gmake'.
    10. Copy the binary to the right location:
      cp mu-conference /usr/local/bin/
  3. The Finishing Touch

    1. Create the user 'ejabberd':
      adduser ejabberd

      Remark: if you installed ejabberd via APT, this step can be skipped.

    2. Create some directories:
      mkdir /etc/jabber /etc/init.d/jabber /var/log/jabber \
      /var/run/jabber /var/spool/jabber
    3. Install the configuration file for Mu-Conference:
      1. Download this configuration file for Mu-Conference and drop it into /etc/jabber/:
        wget -p http://www.ejabberd.im/files/efiles/muc-jcr.xml \
        -O /etc/jabber/muc-jcr.xml
      2. Open this configuration file with your favourite text editor and change at least the values in capital letters (more options are documented in the file):
        CHATROOM_LOGS
        SERVER.COM
        MUC_ADMIN@SERVER.COM
        SECRET
    4. Download this script to start, stop and restart mu-conference and install it in the directory /etc/init.d/jabber/:
      wget -p http://www.ejabberd.im/files/efiles/mu-conference \
      -O /etc/init.d/jabber/mu-conference
    5. Change the permissions of these files and directories:
      chmod 755 /etc/init.d/jabber/mu-conference
      chmod o-rx /var/log/jabber/
      chown ejabberd /var/log/jabber/ /var/run/jabber /var/spool/jabber

      Remark: the directory you chose for CHATROOM_LOGS should be also writeable by the user ejabberd.

    6. Add an entry for Mu-Conference in the "Listened ports" section of your ejabberd configuration file (also described in the ejabberd Installation and Operation Guide):
      {5350, ejabberd_service, [{access, all},
                                     {hosts, ["mu-conference.SERVER.COM"],
                                     [{password, "SECRET"}]}]},

      Do not forget to change the values in capitals; they need to match to what you specified in muc-jcr.xml.

      Remark: No comma needed when it is the last entry. However, all entries before the last one need a comma!

    7. Restart ejabberd to reload the configuration:
      /etc/init.d/ejabberd restart
    8. Start Mu-Conference:
      /etc/init.d/jabber/mu-conference start
    9. If all goes well, Mu-Conference should be visible now when discovering your server with a Jabber client. :-)
Syndicate content