Installation Guide
Back: Jabber Server Installation Next: General user documentation

Installation Guide for Jabber module for OACS

To install the jabber package for OACS adequately you have to follow these installation instructions. You have to know that the jabber package is separated in three different installations, which are the C-module for AOLserver, C-module for Jabber server and the Jabber APM.
I you want to go directly to a certain installation guide click on the links:

AOLServer Installation Guide  

Jabber Client Installation Guide

All C-Sources you will need to download.

To install the APM follow the installation instructions for all APMs described in the documentation for the package manager.

1. Installation Requirements for the C-modules

The C-modules have certain requirements to work correctly. First of all you need an AOLserver installation with the entire source code (no rpm installation!) and of course an Jabber server installation with enteire source code.

Installation instructions for these applications can be found at these urls:
AOLserver installation: http://www.aolserver.com
Jabber server installation: http://www.jabber.org

2. Installation Guide for AOLserver C-module (Jabber-Client)

Up

You must have a valid Jabber-ID, so please start a public Jabber Client and register as a normal Jabber user. This Jabber user is necessary as a parameter for the AOLserver.

Following instructions should be made as "nsadmin", so type in a bash shell:
?- su -nsadmin (RET)
?- password: ******* (RET)


Copy the tar file to "/your/path/to/aolserver/" and untar the file there.
Now you should have a new directory named nsjabber. Next go to "/your/path/to/aolserver/nsjabber/bin" and type "make". To see whether everything went right you should find a new file named ns_jabber.so.

You may now type "make install" to install the Jabber_Client in the directory "/usr/local/aolserver/bin", this is the default installation directory for AOLServer.
Now you have to configure the client and add following lines to your aolserver-config.tcl.

The "jid" parameter is the jabber id you created already (as described above). It has to be exactly (case sensetive) the same you specified (or you will specify) in the jabber.xml config file of your Jabber Server.
The "pw" parameter is the password for the above specified jid to login the Jabber Server.
The "jabber_server" parameter is the URL of your Jabber Server, the same that you specified in your jabber.xml config file in the section.

The folowing param's are the FQN of your transports (aim. icq , etc.).
The next section has to be below the above one in your config.tcl. The section probably already exists in your config and you will only have to add one parameter.


This parameter tells the AOLServer to load the Jabber Client module into the core AOLServer.

The jabber client needs a own Databasehandle pool with 2 handles. To create the Pool add the following Lines to the existing sections ... (NOTE: The configuration of the Database may vary, depending on what driver you are using)


... and then add this section to your ini.tcl

Finaly add this line to the mime type section.It is needed to let the Aolserver work together with Java WebStart.

ns_section ns/mimetypes
ns_param Default text/plain
ns_param NoExtension text/plain
ns_param .pcd image/x-photo-cd
ns_param .prc application/x-pilot
ns_param .xls application/vnd.ms-excel
the line to add \/
ns_param .jnlp application/x-java-jnlp-file

Now you may restart your AOLserver to load the nsjabber.so module and test it. Make sure you have installed the the mod_acs in your Jabber Server otherwise you won't be able to use the admin functionality. But if you like you can let aolserver send Messages to any valid jid,
use the folowing tcl commands:
set conn_state [jb_login] #conn_state will be 0 on succsess -1 on error
set succsess [jb_message "user@server" "The Message string"] #will be 0 on succsess -1 when the client isn't logged in
set conn_state [jb_logout]

3. Installation Guide for Jabber Client C-module

Up

Now follow some installion tasks for the Jabber Client These tasks have to be accomplished as the user how is in charge for the Jabber Server !

C-module. These C-module enables a jabber admin mod.

Copy the mod_acs.tar file to the head Source directory of your Jabber Server (like /your/path/to/jabber-1.4.x),
Now type
?- tar -xvf mod_acs.tar to utar the file.
The extracted files should be copyed to the directorys where they belong atomaticly.

Change to the modules directory type:
?- cd jsm/modules
open the file 'Makefile' with your prefered editor, (type: emacs Makefile ) and put a entry saying 'mod_acs.o' at the end of the 'jsm_modules_OBJECTS' section and save it.It should look like this when you are finished :

jsm_modules_OBJECTS=\
   mod_admin.o \
   mod_agents.o \
   mod_browse.o \
   mod_announce.o \
   mod_auth_plain.o \
   mod_auth_digest.o \
   mod_auth_0k.o \
   mod_echo.o \
   mod_filter.o \
   mod_groups.o \
   mod_presence.o \
   mod_xml.o \
   mod_roster.o \
   mod_time.o \
   mod_vcard.o \
   mod_version.o \
   mod_register.o \
   mod_log.o \
   mod_last.o \
   mod_offline.o\ <----------------------------------!
  mod_acs.o <---- Your edit. Don't forget to put a ' \ ' at the end
                             of the above line!!!

Don't forget to save your edits.
Now close your editor , and go back one directory (type: cd .. ), you are now in the '/your/path/to/jabber-1.4.x/jsm' directory. Open the file 'Makefile' with your prefered editor (this is the second and last Makefile you have to edit), (type: emacs Makefile ) and put a entry saying 'mod_acs.o' at the end of the 'jsm_EXOBJECTS' section and save it.It should look like this when your finished :

jsm_EXOBJECTS = \
   modules/mod_admin.o \
   modules/mod_agents.o \
   modules/mod_browse.o \
   modules/mod_announce.o \
   modules/mod_auth_plain.o \
   modules/mod_auth_digest.o \
   modules/mod_auth_0k.o \
   modules/mod_echo.o \
   modules/mod_filter.o \
   modules/mod_groups.o \
   modules/mod_presence.o \
   modules/mod_xml.o \
   modules/mod_roster.o \
   modules/mod_time.o \
   modules/mod_vcard.o \
   modules/mod_version.o \
   modules/mod_register.o \
   modules/mod_log.o \
   modules/mod_last.o \
   modules/mod_offline.o\ <----------------------------------!
   modules/mod_acs.o <------ Your edit. Don't forget to put a ' \ '
                                               at the end of the above line!!!

Don't forget to save your edits.
Close your editor aigan and and move up a nother directory, do this by typing:
cd .. in your shell. Now you schould be in the '/your/path/to/jabber-1.4.x' directory now type:
make
and may (to install the new binarys)
make install

in your shell.You will see a debug report if no errors ocure you are done. If an error ocures (somthing like: `can't find mod_acs.o'), check if you have done everything right in the above sections,

But if everything went right, its now time to configure your Jabber Server to work with the module.
In the same dir the '/your/path/to/jabber-1.4.x' open the jabber.xml file with your prefered editor, type:
emacs jabber.xml
you have probably done this before, now go to the '<service>' section and in ther to the '<load>' section insert a line saying :

"<mod_acs>./jsm/jsm.so</mod_acs>"

at the seconed row of the '<load>' section.Make sure you placed your edits in the first row after the '<jsm>' row , other wise the module wont work. Save your edits , it should look like this:

<service>
...
<several services>
....
 <load main="jsm">
    <jsm>./jsm/jsm.so</jsm>
    <mod_acs>./jsm/jsm.so</mod_acs> <-----enter your row here.
    <mod_echo>./jsm/jsm.so</mod_echo>
    <mod_roster>./jsm/jsm.so</mod_roster>
    <mod_time>./jsm/jsm.so</mod_time>
    <mod_vcard>./jsm/jsm.so</mod_vcard>
    <mod_last>./jsm/jsm.so</mod_last>
    <mod_version>./jsm/jsm.so</mod_version>
    <mod_announce>./jsm/jsm.so</mod_announce>
    <mod_agents>./jsm/jsm.so</mod_agents>
    <mod_browse>./jsm/jsm.so</mod_browse>
    <mod_admin>./jsm/jsm.so</mod_admin>
    <mod_filter>./jsm/jsm.so</mod_filter>
    <mod_offline>./jsm/jsm.so</mod_offline>
    <mod_presence>./jsm/jsm.so</mod_presence>
    <mod_auth_plain>./jsm/jsm.so</mod_auth_plain>
    <mod_auth_digest>./jsm/jsm.so</mod_auth_digest>
    <mod_auth_0k>./jsm/jsm.so</mod_auth_0k>
    <mod_log>./jsm/jsm.so</mod_log>
    <mod_register>./jsm/jsm.so</mod_register>
    <mod_xml>./jsm/jsm.so</mod_xml>
 </load>
</service>

Defining a jadmin section in the jabber-configfile (jabber.xml). The </jadmin> tag has to be a direct subtag of the <jsm> section of your config file.

<jsm xmlns="jabber:config:jsm"> . . <jadmin host="localhost" community_client="xxx@localhost/resource" standard_buddy="buddy_name" standard_group="buddy_group" ></jadmin> . . . </jsm>

<!-- the "host" attribute has to be of the same value,that you defined in the <host> section above.
the "community_client" needs the same value you defined in the configfile of your web server.
admin functions will only register to the session of your web server client
when the jid you login with, exactily matches this string
(user , server and recource)

the "standard_buddy" is the user part of the jid you defined in the "community_client" attribute.
the "standard_group" is the name of the default group you wish to add buddys to.

Don't forget to save your edits.(In emacs you do this by typing: C-x C-s)

Now go to the spool directory of your jabber server,

?- cd spool

there you find towe files plain.xml.1 and plain.xml.2 , the number at the end stands for the server you are using i.e. jabber-1.4.1/1.4.2. If you have not installed the jabber server with make install , all you need to do is to move the file in the server directoy, type :

?- mv plain.xml.x yourserver.com/plain.xml

if you have installed the binarys in another directory you have to move the file into the server directory of your installation path.You have to type somthing like this:

?- mv plain.xml.x /your/jabber-instalation/spool/yourserver.com/plain.xml

default path is

?- mv plain.xml.x /usr/locale/jabber/spool/yourserver.com/plain.xml

The mod will work without this file , but you will not be able to register users via the admin client.


Now you should install the Conference Module for the Jabber Server. If you have already installed the commen Conference Module you schould change to our one, it is usaly named like the oficial releas with an '+' at the end, it offers additional features witch make it more usefull for OpenACS. The extra features are:
Limit the creation of Rooms with a specific prefix (like 'offical_xyz') to Admins
Get the Remote (real) JID's of the Members in a Room. This way we know to wich OpenACS User belongs a Message.

The nsjabber module for Aolserver will work with the normal Conference Module, but it's recomended to use the '+' version.

Download the conference-0.4.1+.tar to your server copy it to your Jabber Server directory and untar it.
?- tar -xvf conference-0.4.1+.tar
know change to the confererence directory and build the binarys. Type:
?- cd conference-0.4.1+
?- make

if the build was successfull you can now configure the Conference Module.

Conference can be configured as a public or private chatroom server, users from other Jabber Servers will only be able to access your Conference Server if the URL it uses is fully qualified :

Open the jabber.xml configuration file again with your prefered Editor and enter the following section to the <service> section;

<service id='conference.localhost'>
     <load><conference>/your/path/to/conference/conference.so</conference></load>
  <conference xmlns="jabber:config:conference">
    <public/>
The below admins section defines admins that are allowed to create Rooms with a specific prefix!
One of the admins schould be the jid your Aolserver uses, together with the prefix(s) you want to limit to your Comunity
   <admins>
       <admin jid="admin@sussdorff-roy.com">
        <room>room_name</room>
        <room>room_prefix</room>
       </admin>
    </admins>
    <vCard>
      <FN>Public Chatrooms</FN>
      <DESC>This service is for public chatrooms.</DESC>
      <URL>http://foo.bar/</URL>
    </vCard>
    <history>20</history>
    <notice>
      <join> has become available</join>
      <leave> has left</leave>
      <rename> is now known as </rename>
    </notice>
    <room jid="help@conference.localhost">
      <name>Assistance Zone</name>
      <privacy/>
    </room>
    <room jid="admin@conference.localhost">
      <name>Adminz only</name>
      <secret>con0r</secret>
      <notice>
        <join> just rocks!</join>
         <leave> gets lost</leave>
        <rename> feels it is more important to be known as </rename>
      </notice>
    </room>
  </conference>
</service>

Add this section to the <browse> area to advertise it to your users:

<conference type="public" jid="conference.localhost" name="Public Chatrooms"/>



If you have done this, and no error ocured you are throug with the instalation.Check if you have doene everything right by restarting your server.Type :

?- cd ../jabberd
?- jabberd -D

Debugg output will showe errors if any occured.

Up
Back: Jabber Server Installation Next: General user documentation