Iceberg Release v1 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/2.4 (Redhat distribution 7.0/7.1). The Java programs should work on all platforms easily. 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

Make sure that the executables vat,, toast, untoast, tcat, sox and mpg123 are 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, Ninja's CLASSPATH.

Add the "ninja2-classpath/ninja2/lib" directory to your LD_LIBRARY_PATH environment variable. You may have to get a for your environment. See here.

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

For csh: setenv JAVA_HOME /opt/IBMJava2-13
For bash: export JAVA_HOME=/opt/IBMJava2-13

Getting the Iceberg release

Get the Iceberg v1 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.

Configuration and Running

The Distributed Hashtable

Distributed Hashtables are central to vSpace, on top of which ICEBERG v1 runs. Configuration for this is explained here. Run the Hashtable "bricks" in one or two (or how many ever you want) machines as described in the same document.

The Naming Service

Run the naming service as explained its documentation here. Add the naming entries as explained in the same document.

The Preference Registry

Run the Preference Registry service and add entries as explained in its documentation. While in operation (after testing), you can use the Preference Manager GUI to add entries to the registry.

Running the iPOP

The iPOP consists of the Call-Agent Service, the APC service, the Name-Mapping-Service, and the Preference Registry Service. It is run as a vSpace service (see the Ninja web-page for more detailed information on this). Create a configuration file, say ipop.cfg.demo1. Be sure to specify/change the following according to your testbed:

The iPOP is run with the following command:

java ninja2.core.vspace.vSpace ipop.cfg.demo1

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, and the Jukebox 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 Jukebox IAP is a server-only IAP -- it only gets incoming calls. A preference profile needs to be created for the Jukebox IAP. Refer the documentation.

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.

General notes about running Ninja2

ICEBERG-v1 depends heavily in Ninja's vSpace. Since there has not yet been an official release of Ninja2, vSpace has its fair share of bugs. The hashtable bricks seem stable most of the times (so far as we have tested), but fails sometimes. Restart your iPOP if anything fails during its startup.

In general, you should have the distributed hashtable bricks setup and running all the time. The parameters specified in the vSpace config files are stored in the hashtable under the given "stateTableName". The parameter values are persistent across runs of the vSpace. So be careful when trying to rerun a vSpace program like the iPOP -- if you want to change some parameter in the configuration after the first run, you might have to restart the bricks. This effectively amounts to restarting the entire system usually. When restarting the hashtable bricks, its usually good to remove all the "table_*" directories where the different named hashtables were stored. Be careful not to remove the "table_template" directory, which is a configuration directory for the hashtable bricks.


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

Test 1

Test 2

Test 3

Test 4

Bhaskaran Raman,
Helen J. Wang,
Z. Morley Mao,
Last modified: Sun Jul 1 14:36:47 PDT 2001