Guide to isc 1.1

Introduction

isc (Integrated Session Controller) is a conference controller. An instance of isc manages several media sessions (audio, video, ...) in a single conference. isc can be used with a range of different media agents. isc is part of a conferencing system that allows to create flexible multimedia applications from independent components. This document describes installation, operation and implementation of isc.

Multimedia conferences with isc require a number of components:

Media agents:
For each media type you want to use, you need a media agent. A single application may be a media agent for several different media. NeVoT is an example of an audio media agent, while vic and NeViT are video media agents. This version of isc includes patches for vic-2.7a32 to make vic "pmm-enabled", i.e., many of the functionalities can be controlled from isc.
isc
It establishes conferences and then displays participants and their status.
pmm
If a system does not support local multicast, the message replicator pmm is used. It distributes messages between the conference controller like isc and the media agents, e.g., nevot. There is one instance of the message replicator per host.
The distribution is available by anonymous ftp from:

Platform-dependent distributions are marked with one of the following strings:
alpha DEC Alpha running OSF 1.0
hp Hewlett-Packard 9000 running HP-UX
ibm IBM workstations running AIX
linux Intel i386 running Linux
sgi SGI running Irix 5.2
sun4 SPARCstation running SunOS 4.1.3
sun5 SPARCstation running SunOS 5.x (Solaris)

Documentation

This file contains step-by-step instructions to running isc. The messages exchanged between conference components are described in an a separate document. A high-level overview of the architecture can be found in a conference paper that appeared in NOSSDAV'95.

Installation

You can skip the first four steps if you obtain the binary package.
  1. Unpack isc-1.1.tar.gz into a directory where you want to compile it.
  2. Make sure you have the Tcl (7.4 or greater), Tk (4.0 or greater), BLT (1.8 or greater), Tcl-DP (dpnetwork.a) and tksolo libraries.
  3. Modify the definitions in the src/Makefile to match your local directory layout.
  4. Type make in the src directory.
  5. Install the isc binary into a directory within your path.
  6. Your mailcap file (typically found as .mailcap in your home directory) needs to be modified so that isc can invoke the appropriate media agents. An example:
    # Audio/Video Conferences
    audio/pcmu; xplay -; interactive=nevot; id=NeVoT*
    audio/dvi4; none; interactive=nevot; id=NeVoT*
    audio/gsm; none; interactive=nevot; id=NeVoT*
    audio/lpc; none; interactive=nevot; id=NeVoT*
    audio/l16; none; interactive=nevot; id=NeVoT*
    audio/*;  xplay -; stream-buffer-size=8000
    
    #video/h261; none; interactive=nice vic -N "%{name}" -C "%{conf}" -t %{ttl} -f h261 %{host}/%{port};
    video/jpeg; none; interactive=nice vic -C %{conf} -t %{ttl} -f jpeg %{host}/%{port};
    video/mpeg; xanim %s; interactive=nice vic -C %{conf} -t %{ttl} -f mpeg %{host}/%{port};
    video/celb; none; interactive=nice vic -C %{conf} -t %{ttl} -f celb %{host}/%{port};
    video/yuv;  none; interactive=nice vic -C %{conf} -t %{ttl} -f yuv  %{host}/%{port};
    video/h261; none; id=vic-pmm*; interactive=/net/step/src/vic-2.7a32/vic \
      -N "%{name}" -C "%{conf}" -t %{ttl} \
      %{host}/%{port};
    

Usage

Command Line Arguments

Mainly for use with conferencing tools like sd, isc takes the following command line arguments:
-background, -bg color
Background color for window.
-display host:display
X Display to use.
-geometry size
Initial geometry of window.
-name application name
Name to use for application.
-sync
Use synchronous mode for display server.
-help
Lists command line arguments.
-p protocol/address/port
communication between components. protocol can be either udp, for using local multicast, or tcp, when pmm is running. address is typically localhost when pmm is being used. It must be a multicast address, such as 225.2.0.1 (the default), when local multicast connects applications. The port can be any number; 5010 is used by default. NB: This configures the communication between conference controller and media agents, not between members of a conference.
-C name
Set the conference name, displayed in the window's header.
-I
Argument ignored; for compability with vat.
-n
Use VAT audio transport.
-r
Use RTP audio transport.
-N name
Name to use. Technically, this modifies the SDES NAME value.
Media sessions can be specified as address/port[/confid/media/ttl]. The address parameter is either a unicast or multicast address, as a name or in "dotted-quad" notation. The confid (conference identifier) parameter is only needed for VAT audio sessions and ignored otherwise. RTP audio sessions are defined as encoding,rate,channels. A typical RTP audio session might be
  224.2.0.1/3456/0/PCMU,8000,1/64

The VAT-style media definitions pcm, pcm2, pcm4, idvi, dvi, dvi2, dvi4, gsm, lpc, lpc4, h261 are also understood.

The ttl parameter determines the time-to-live for multicast. It defaults to 16.

Playing Media Files

The Play button displays a pop-up file chooser that allows to send the selected audio file to the conferences that are enabled for talking. If desired, the audio file can be looped (played again and again), useful for testing, or have it mixed in for local listening.

Setting the Source Description

isc defines a function idstring. It is used to set the SDES information elements. The function uses a printf-like format with the following special symbols:
symbol description example
%% the percent sign itself %
%h host name foo
%n real name of user John Doe
%N real name, with dots John.Doe
%o office Rm. 2A244
%d domain name foo.ee.bar.com
%D domain name; like %d; but without host ee.foo.bar
%nD domain name; only n rightmost parts n=2: foo.bar
%e office phone extension 4321
%p home phone +1 908 555 1212
%u user login name doe
%i numeric network address (e.g., Internet number) 10.1.2.3
%t tty name tty07
%Z time zone name PDT
%z offset from GMT in hours +0200
%$[A-Z]* environment variable

Configuration files

The defaults for isc are contained in the startup file .iscrc located in the home directory. Normally, you should not need to create or edit this file.

Configuration via mailcap

The media agents started by isc are defined in the user's mailcap file, typically found in /etc/mailcap or $HOME/.mailcap. The mailcap format is defined in RFC 1524. As is common practice (if diverging from RFC 1524), parameters containing white space must be enclosed in quotation marks (").

To avoid confusion with MIME viewers, applications to be used for interactive multimedia conferences are defined as type interactive rather than as a standard viewer. There are two kinds of applications:

Applications that use pmm messages to communicate:
The mailcap entry for these applications must have an id parameter giving a pattern for the agent string returned by the application. This is typically the name of the application and the version number. A star (*) may be used as a wildcard.
Applications that do not:
These applications are simply started and then do not interact with isc any more.

For the commandline arguments, the following string definitions may be used:

%{host}
Multicast group or destination host.
%{port}
Port number.
%{ttl}
Packet time-to-live for multicast.
%{name}
Name of local conferee.
%{conf}
Name of conference.

Some sample entries:

audio/pcmu; xplay -; interactive=nevot; id=NeVoT*
audio/dvi4; none; interactive=nevot; id=NeVoT*
audio/gsm; none; interactive=nevot; id=NeVoT*
audio/lpc; none; interactive=nevot; id=NeVoT*
audio/l16; none; interactive=nevot; id=NeVoT*

video/h261; none; interactive=nice vic -N "%{name}" -C "%{conf}" -t %{ttl} -f h261 %{host}/%{port};
video/jpeg; none; interactive=nice vic -C %{conf} -t %{ttl} -f jpeg %{host}/%{port};
video/mpeg; xanim %s; interactive=nice vic -C %{conf} -t %{ttl} -f mpeg %{host}/%{port};
video/celb; none; interactive=nice vic -C %{conf} -t %{ttl} -f celb %{host}/%{port};
video/yuv;  none; interactive=nice vic -C %{conf} -t %{ttl} -f yuv  %{host}/%{port};

X Resources

isc uses the Tk X resource mechanism. Definitions in .Xdefaults are read on application start-up only if the X server resource database utility xrdb is not used. Often, .Xdefaults is read by xrdb on X server startup and thus any changes in that only take effect when restarting the X server or running xrdb -merge. isc defines itself as class Isc, Some useful examples:
Isc.audioFormat: PCMU
Isc.muteNewSites: false
Isc.defaultHost: 224.2.0.1
Isc.defaultPort: 3456
Isc.defaultTTL: 16
Isc.priority: none
Isc.transport: VAT
Isc.rate: 8000
Isc.packet: 0.02
Isc.key: ""
Isc.memberDisplay: "name"
Isc.statsPeriod: 5
Note that resource isc*background differs subtly from Isc*background: the former only applies to application instances with application name isc, while the latter applies to any instance with class name Isc. In particular, if you start several instances of isc on a single display, isc*background applies only to the first (the second instance will be named isc #2), while Isc*background applies to all.

Operation with sd

sd is a session directory written by Van Jacobson, LBNL, available by anonymous ftp. The sd directory contains a replacement for your .sd.tcl file that starts isc rather than media tools directly. isc in turn then starts all requested media agents.

Make sure that the directories containing the conferencing tools binaries and the shell script are in your search path.

Known Bugs

Acknowledgements

The Tcl interpreter and Tk X11 toolkit were developed by John Osterhout, Sun Microsystems. The BLT extensions were written by George Howlett, AT&T Bell Laboratories. Tcl-DP was developed by Brian C. Smith, Department of Computer Science, Cornell University and Lawrence A. Rowe, Computer Science Division-EECS, University of California at Berkeley.

The mailcap interpreter was written by Marc VanHeyningen.

Copyright

Copyright © 1991-1995 by AT&T Bell Laboratories and GMD Fokus; all rights reserved

Permission to use, copy, modify, and distribute this software and its documentation for research and educational purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and warranty disclaimer appear in supporting documentation, and that the names of the copyright holders or any of their entities not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Use of this software in whole or in parts for direct commercial advantage requires explicit prior permission.

The copyright holders disclaim all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall the copyright holders be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use or performance of this software.