Guide to isc 1.1
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)
|
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.
You can skip the first four steps if you obtain the binary package.
- Unpack isc-1.1.tar.gz into a directory where you want
to compile it.
- 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.
- Modify the definitions in the src/Makefile to match
your local directory layout.
- Type make in the src directory.
- Install the isc binary into a directory within your
path.
- 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};
- Media agents and conference controllers are connected through a
message replicator or by local multicast. For most applications and
systems, local multicast is recommended since it avoids the additional
pmm process. If you cannot use local multicast, you can
start a replicator called pmm by typing
pmm &
Adding the -d 1 flag displays incoming and outgoing messages.
If you need to have pmmuse a different port than the
default of 5010, you can provide that with the -p flag,
e.g., pmm -p 5012.
- Start isc by typing
isc
Command line arguments are described below.
- Media types are added with the Add Media menu. You
can add as many audio or video sessions as you like. A pop-up panel
lets you configure the multicast address, port, session title and ttl
(multicast time-to-live) value. Additional set-up panels can be
reached from the setup menu. Clicking on the Add button
adds a session with the given parameters.
- A session panel lists all participating session members for each
media. If the site name is not completely visible, you can scroll
through the text by dragging it with the middle mouse button. The
session panel can be resized. The Receive checkbox in the
upper right hand corner determines whether you receive media data from
that conference. The Configure menu lets you change the
source description such as your phone number, and session-specific
parameters.
- Next to the name of each session member, there is a small box
for each media session that member is currently participating in.
| media | sending | receiving
|
|---|
| audio | one-eighth note | open square
|
| video | face | eye
|
Click (with the left mouse button) on the square to enable or disable
receiving media data from a member, for all but the first member
shown. The first site is always the local member (you); here,
clicking with the left mouse button enables or disables sending
of media data. A crossed-out box indicates that receiving has been
disabled for that session and member.
- If you want to send data, make sure the first site (the one with
your name) is not crossed out, as described in the previous paragraph.
- If a session member has not been heard from for an extended period
of time, the bitmap symbol next to its name is red.
- Clicking on the site entry with the middle mouse button produces a
site status and statistics display containing traffic statistics. The
checkbuttons next to some parameters enable graphing. The
Print button dumps the current graph to the file
cname.ps in the current directory.
- To leave a single session or all sessions, used the
Leave menu.
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.
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.
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 |
|
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.
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};
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.
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.
after 5000 session_timeout; after 10000 doesn't work
in session, but it does work in session_create.
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 © 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.