Iceberg Release v0 Installation Notes

This document describes in sequence, the software that must be installed for getting the Iceberg release up and running. Please report installation problems and bugs to

Hardware/Software platform requirements

All software has been tested on PCs running Linux 2.2 (Redhat distribution 6.0/6.1) and to a certain extent on FreeBSD as well. The Java programs should work on all platforms easily (not tested in Windows though). And most of the other required software should compile easily on any Unix platform.


This is a huge list. Installation should go smoothly for most parts.

Iceberg Release Installation

Setting up the Environment

You should have added the location of the "ninjarmic" program to your PATH during Ninja installation. Make sure the other executables: vat, slapd, ldapadd, ldapdelete, festival, toast, untoast, tcat, sox and mpg123 are also in your PATH.

Add the following to your CLASSPATH: ".", the JDK installation's, ldapjdk.jar from Netscape's Directory SDK, swing.jar from the Swing installation, the Ninja classpath, jacl.jar and tcljava.jar from the Jacl installation.

You should set the JAVA_HOME environment variable to the location of the Java distribution. For example:

For csh: setenv JAVA_HOME /usr/local/jdk118
For bash: export JAVA_HOME=/usr/local/jdk118

Getting the Iceberg release

Get the Iceberg v0 release from here. Unpack and add the top-level "classpath" directory to your CLASSPATH environment variable.

Compiling the components

A top-level make from within the classpath/iceberg directory should compile all the components. Go to this directory and type "make" to compile everything.

After compiling, copy the "vatrec" and "vatplay" binaries from the classpath/iceberg/vat-utils directory to a location on your PATH.

Generating Javadoc

Go to the classpath/docs directory in the package and type "make". This should make all the Javadoc files. After this, you should be able to see the Javadoc documentation here.

Configuration and Running

The Naming Service

  1. First read the section "Configuring and running the naming service" in the naming service documentation.
  2. Find the default location of the slapd configuration files from "man slapd.conf". Copy the slapd.oc.conf file to this default location. Copy slapd.conf as well. You may want to backup the original configuration files somewhere before overwriting.
  3. For slapd.conf, edit the installation specific "directory" field. This would be the directory where the naming entries would be stored. Specify a different directory for each name-space. Create the directories you specify.
  4. Also edit the "suffix" and "rootdn" entries to reflect the name-spaces you want. The examples are provided for the configuration at Berkeley.

Each name-space is distinguished by the "type-<type>" field. You should definitely specify the "type=uniq" name-space and "type=ipaddr" field. You need a separate set of entries for each additional name-space you have (an additional example given is the flat name-space of 3-digit cell-phone numbers -- see the file slapd.conf as you read this).

Adding naming entries

The naming service needs to be started before naming entries can be added. Start the service with the command "slapd".

See the section "Client operations for administering" in the naming service documentation. You need to create a file for each name-space in your installation. The "type=uniq" name-space is required for all installations since it represents Iceberg unique-ids. The "type=ipaddr" name-space is required for operation with the IPPhone IAP. And the "type=gsm" name-space is required for operation with the GSM IAP -- you can possibly ignore this since you will probably not be running this IAP in your installation.

Running the iPOP

The iPOP consists of the Call-Agent-Dispatcher service, the APC service, and the Preference registry. It is run as an iSpace service (see the Ninja 1.5 for more detailed information on this). Create a configuration file, say ipop.ispace.cfg. Be sure to specify the following: (a) The naming service location for the "iceberg.ICEConfig" service, (b) The location of the file with the list of apcHosts for the APC service (see the APC service documentation for more details), (c) The directory for the user-preference files for the preference registry (see here for details).

The iPOP is run with the following command:

java -nojit ninja.ispace.Main ipop.ispace.cfg
(I've always found better performance without JIT, probably because the Java portions are not compute intensive. And the line-number information on any exception thrown is always useful.)

Note on iSpace port usage

The iSpace grabs port 1099 by default. To change this, you need to edit $HOME/.ninja/config and create/uncomment the line with "iSpace.port" to give it a non-default value. See the Ninja release for information on how to get a sample Ninja configuration file. You can get one here. Using non-default ports is necessary if you want to run more than one iSpace on a machine (easier for debugging and management).

You could create multiple Ninja configuration files and pass one of them for each iSpace you run. To do this, you would use the command:

java -nojit ninja.ispace.Main ipop.ispace.cfg

where my.ispace.config is Ninja configuration file you created.

Running the IAPs

See the separate documentation on each of the IAPs for information on running each of them. Specifically, see the ones for IPPhone, VAT IAP, Voice-mail IAP, Jukebox IAP, Mediamanager IAP, Mail client IAP, and the GSM IAP.

You need not run all the IAPs to begin with. See the section "Testing" below for testing if all works well.

Specifying call receiving preferences

The Voice-mail IAP, Mediamanager IAP, and the Jukebox IAP are server-only IAPs -- they only get incoming calls. An preference profile needs to be created for each of them. Refer their individual documentation (vm-iap.html, mm-iap.html, and jukebox-iap.html).

For each user in your system, you need to create a call-receiving preference and upload it to the preference registry. See the preference manager documentation for details on how to go about doing this.


To test if everything in your installation works, do the following:

Test 1

Test 2

Test 3

Bhaskaran Raman,
Helen J. Wang,
Z. Morley Mao,
Barbara Hohlt,
Last modified: Sat Jun 10 11:00:08 PDT 2000