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:
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.
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
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
The following 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.
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)
Finally 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 following tcl commands:
set conn_state [jb_login] #conn_state will be 0 on success -1 on error
set success [jb_message "user@server" "The Message string"]
#will be 0 on success -1 when the client isn't logged in
set conn_state [jb_logout]
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 directories where they belong atomaticly.
Change to the modules directory type:
?- cd jsm/modules
open the file 'Makefile' with your preferred 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 preferred 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 :
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 preferred editor, type:
emacs jabber.xml
you have probably done this before, now go to the '<service>' section and in
there 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.
<!-- 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 directory, 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 common Conference Module you should change to ours,
it is usually named like the official release with a '+' at the end,
it offers additional features which make it more useful 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 which OpenACS User belongs a Message.
The nsjabber module for Aolserver will work with the normal Conference Module,
but it's recommended 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
now change to the confererence directory and build the binaries. Type:
?- cd conference-0.4.1+
?- make
if the build was successful 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 preferred 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