informa
/
Feature

How to Configure The Jabber Instant Messaging Server

Jabber is an open source alternative to instant messaging technologies from vendors including AOL, Microsoft and IBM Lotus. Here's a guide for network administrators on setting it up.
Most gateways suggest that you run them as a separate process. This means that if the gateway crashes, it will not crash your jabber server, and users will not be disconnected. In order to do that, you need to add a service definition in the main jabber.xml file, and create another config file for each gateway you wish to use. The changes to jabber.xml are simple. Find the area near the middle of the jabber.xml file where there are many <service> tags. You will create a new service definition like the one here:

<service id="aimlink">
  <host>aim.jabber.myserver.com</host>
  <accept>
    <ip>127.0.0.1</ip>
    <port>5566</port>
    <secret>my_secret_password</secret>
  </accept>
</service>

Once you have that added, restart your jabber server. Do this by running kill `cat /usr/local/jabberd-1.4.3/pid`. Now your are ready to configure the gateway. Create a new file, such as aim.xml, which should look like this:

<jabber>
  <service id="aimlink">
    <connect>
      <ip>127.0.0.1</ip>
      <port>5566</port>
      <secret>my_secret_password</secret>
    </connect>
    <uplink/>
  </service>
  <pidfile>/usr/local/jabberd-1.4.3/aim.pid</pidfile>
  <service id="aim.jabber.myserver.com">
    <load><aim_transport>/usr/local/jabberd-1.4.3/aimtrans.so</aim_transport></load>
    <aimtrans xmlns="jabber:config:aimtrans">
      <vCard>
        <FN>AIM Transport for myserver.com</FN>
        <DESC>An AIM Transport for myserver.com</DESC>
        <URL>http://myserver.com/</URL>
      </vCard>
    </aimtrans>
  </service>
</jabber>

The most important note is that the IP, port, and password must be the same as they are in your jabber.xml file. The <load> line must point to the gateway file that you copied earlier. Also, when you add new gateways, they must all have unique values in the id field.

Now that you have this config file completed, you can start your AIM gateway. Do this by running moving to the /usr/local/jabberd-1.4.3 directory and typing ./jabberd/jabberd -c aim.xml. This tells jabberd to look at the aim.xml file, which will start the AIM gateway for your server.

Looking ahead
The 1.4.x series jabber server is getting old, but it is also very stable. The new 2.x series promises to add more flexibility to the server. There will be support for using MySQL for storing user data, as well as using the file system as the 1.4.x series does. It also will have the ability to use gateways written for the 1.4.x series server. The 2.x series is still in the testing stage, so 1.4.x is still the choice for a production server. Since 2.x and 1.4.x are both implementing the same protocol, inter operating will be seamless. In addition, the IETF (Internet Engineering Task Force) recently approved the XMPP-Core protocol (the technical name for the jabber protocol) to become a "proposed standard". You can read more about this at http://www.instantmessagingplanet.com/enterprise/article.php/3306801.

Where to go from here
Jabber is a very versatile system. You can add gateways for many different instant messaging systems, restrict use to your private network, and log data for important business records. Most components can be easily added by repeating the process above. The only hard part is finding a client that works for you. There are many clients available, most of which are listed at http://www.jabber.org/user/clientlist.php.

Enjoy your new jabber server.

Jeremy Baumgartner ([email protected]) is a UNIX systems administrator for the College of Engineering at the University of Wisconsin Madison. He maintains the college's jabber and web servers as well as developing site specific software.