NAME
mmcc - X-based multimedia conference control program
SYNOPSIS
mmcc [ -autono | -autoyes ] [ - autosend ] [ - display
xdisplay ] [ -f setupfile ] [ -locttl ttl ] [ -mcast ] [ -n
name ] [ -p port ] [ -play soundfile ] [ -rsvp [ rsvpfile ]
]
DESCRIPTION
Mmcc is a session orchestration tool that provides point-
to-point or multipoint teleconferences. It allows a caller
to explictly invite others to participate in a conference,
and alerts them to accept or decline. It automatically
spawns underlying audio, video and groupware programs among
members of a session, then tears them down at session com-
pletion. Mmcc will distribute a session key for confiden-
tial sessions. In this preliminary version, the key is sent
in the clear, so it is not secure, but future versions will
use Kerberos or certificates for secure key distribution.
By default, mmcc brings up the LBL visual audio tool,
vat(1), and offers the option to start Xerox PARC's network
video program, nv(1), and LBL's whiteboard, wb(1).
Mmcc aims to supplement the large open-style sessions sup-
ported by the existing version of LBL's session directory
tool, sd(1). It complements the hailing-channel approach of
public sessions with a more private session style for
smaller conferences. Thus, session advertisement is inter-
nal to the group of participating conferees.
Mmcc listens on the default port 5050 for communication from
peer mmcc's distributed throughout the Internet. The model
is that each mmcc is associated with a single user at a par-
ticular host and port, and that the program is expected to
be left running while a user is logged in. The tool imple-
ments distributed coordination among multiple peers, and
relies on the initiating user being responsible for session
establishment.
The mmcc binary has been ported to Sparcs running SunOS 4.x
or Solaris 2.x, SGIs running IRIX, HPs running HPUX, IBM PCs
running Mach3.0, Dec 5000's running Ultrix V4.3, and Dec
Alphas running OSF. However, it has been tested more
thoroughly on some configurations than others.
OPTIONS
-autono
Configure mmcc to automatically answer no to connection
requests.
-autoyes
Configure mmcc to automatically answer yes to connec-
tion requests.
-autosend
Automatically begin sending media at startup.
-display
The standard X switch to pass a display variable other
than $DISPLAY.
-f By default, mmcc establishes a database of remote user
aliases and addresses by reading the file .mmccrc
located in the home directory; the format of this file
is described below. An alternate user configuration
file, setupfile, may be given by using the -f option.
If neither file is found, mmcc simply starts up with an
empty user database.
-locttl
By default, the Local scope setting is mapped to a ttl
value of 2. This mapping may be changed by specifiying
a different value ttl to the -locttl option on the com-
mand line. This is useful for those cases where the
local site is configured with multicast thresholds that
need a larger or smaller value.
-mcast
Use multicast addressing for point-to-point calls, as
well as multipoint calls; otherwise unicast addressing
will be used for point-to-point calls (but not for mul-
tipoint calls).
-n Associate an alias, name, with the local user. The
alias is then inherited by any media agents (e.g., vat,
nv, wb) spawned by the mmcc program. The use of
aliases, in combination with the user configuration
file, also allows multiple mmccs to be associated with
and run simultaneously from the same machine (though
different ports are required). If the -n option is
used and mmcc finds a line in the user configuration
file that uses the same alias name, the port number of
that entry will be adopted. If the -n option is not
used, but information pertaining to the local user
matches an entry in the configuration file, the alias
of that entry will be adopted for the local user. If
no alias is specified for the local user, either on the
command line or in the user configuration file, mmcc
creates an alias from the user login id, hostname, and
port if the port is non-standard.
-p Use the port number, port, as the port on which mmcc
listens for incoming requests, instead of the default
port. The port may be given as a decimal or hexidecimal
value (e.g., 0x13BA).
-play
By default, when a remote user requests your participa-
tion in a conference mmcc double beeps to get your
attention. However, you may configure it to play a
sound file to get your attention instead, either by
placing a sound file called .mmcc.au in your home
directory, or by using the -play option followed by the
name of an audio file, soundfile, on the command line.
Mmcc spawns the program sfplay on the SGIs, aplay on
the DECs, and play on the Sparc and other architec-
tures; the play programs effectively read the .mmcc.au
file.
-rsvp
Make resource reservations via RSVP. By default, qual-
ity of service options and associated flowspecs are
expected to be read from the file .mmcc.rsvp in the
home directory, but a substitute file rsvpfile may be
specified after the -rsvp option on the commandline.
Quality of service choices appear both on the Connect
panel and under the Modify button. [Only available with
the experimental binary]
MAIN PANEL CONTROL BUTTONS
Connect
Click on Connect in the main mmcc window to initiate a
session with remote users; a Connect panel will appear.
A session name may be assigned by selecting (left
click), then typing in the Session Alias field. If this
field is left blank, the name of the session is
automatically generated and is based on the session
initiator's alias. Specify a session encryption key by
left clicking, then typing in the Key field. The text
input fields support a small set of emacs key bindings;
^A (beginning of line), ^E (end of line), ^F (forward),
^B (back), ^D (delete forward), ^K (kill to EOL).
Under the Participants list, use the left mouse button
to click on the aliases of any remote users who should
be included in the session. Repeated clicking on the
same user's name toggles the selection. To include a
user not in your user configuration file, type in the
Add field at the bottom of the Participants list; the
fields correspond to the fields of the user configura-
tion file. Only the user and addr fields are required.
If unspecified, alias defaults to user@addr, or
user@addr:port if the port is non-standard. If
unspecified, the port defaults to mmcc's default port.
A port may be entered as decimal or hexidecimal (e.g.,
0x13BA). When the entry is complete, simply hit
<Return> to enter it in the participant list and select
it. There currently is no automated way to save new
participant entries in the user configuration file, but
we would like to add this in the near future.
Under the Media list, click the left mouse button to
select the media to include in the session. By
default, Audio is included. Currently, the choices
Audio, Video, and Groupware map to the programs vat,
nv, and wb. Each media has its own QoS (quality of ser-
vice) setting, as well as a Scope (ttl). The QoS
choice is experimental and is presently only in service
for audio (e.g., "High", "Medium", and "Low" map to
audio encodings pcm2, idvi, and gsm respectively) and
video (e.g., "High, "Medium", and "Low" map to 128kbps,
92kbps, 56kbps). The default audio and video QoS are
set to "High", pcm2 for audio and 128kbps for video.
To change a setting, click on the QoS field associated
with the desired media and select from the menu of
choices. The Groupware field has only one setting,
which is "NA" for not applicable.
Scope choices exist for all three media; "Local",
"Site", "Region", "World" map to ttl values of 2, 31,
63 and 127. The default setting for scope is "Local" or
a ttl of 2. A different mapping for "Local" (e.g., a
ttl of 15) may be set on the command line using the
-locttl option. Video and Groupware include a scope
setting of "Same", which means to use the same value as
appears for Audio. A "manual" option also exists,
where a ttl value between 0-255 may be entered. Be
aware that a ttl value of 127 or greater constitutes an
Internet-wide call, and that there are certain combina-
tions of ttl and media that mmcc considers legal but
anti-social: non-gsm Audio with a ttl above 191, and
Video with a ttl above 127. Mmcc produces a pop-up
warning message that you will have to answer before the
session will be initiated. These warnings exist only
when multicast is being used.
Mmcc must be running on a remote user's workstation in
order to rendezvous with that user. The mmcc window may
be closed to place it out of view when it is not in
use. Any incoming requests will automatically re-open
the window.
Using the left mouse button, click on the "CREATE" but-
ton to initiate the session, or on "Cancel" to cancel
the request.
Disconnect
Disconnect from the session highlighted in the Session
scrolling window. If only one session exists, then
mmcc deletes that session without it having to be
highlighted. When a user disconnects, the associated
vat, nv and wb also get disconnected.
Modify
Invite additional conferees, Join an on-going session,
place a session on Hold, Merge multiple sessions, con-
duct a Sidechat with a subset of a session's partici-
pants, or modify the Quality of Service (QoS). Only
QoS is currently operational, and only in the RSVP
experimental binary.
Config
Show the local user's default settings and permit
changes to these defaults. Not operational just yet.
Log Display/undisplay the log of error and warning messages
produced by mmcc during operation.
Status
Display/undisplay membership and media information
associated with the session highlighted in the Session
scrolling window. If only one session exists, then
mmcc displays/undisplays the status for that session
without it having to be highlighted. Status includes
the list of session participants, as well as the ses-
sion alias, session key, media included, their multi-
cast or unicast addresses and port numbers, ttl's and
QoS choices. The status information is updated dynami-
cally, and disappears automatically when the session is
closed.
CONFIGURATION FILE
A sample configuration file:
#alias login hostname [port]
Alex graham bel.isi.edu
"Dr. J" jirving hoop.nba.com
Curly cstooge cyclone.isi.edu 5754
Moonbeam zappa palmtrees.usc.edu
Daffy dduck 128.9.160.400
A "#" at the beginning of a line indicates a comment. The
alias field refers to the nickname of the user, which may be
multiple words if enclosed in double quotes. The login is
the user's login id, the hostname is the internet name or
address of the user's workstation, and the field port indi-
cates the port at which mmcc resides and is an optional
entry. If port is omitted, mmcc's default port value is
used. Again, the port may be specified as a decimal or hex-
idecimal value. There is the potential for host name reso-
lution complications in the user configuration file; in
those cases, host addresses may be used instead. However,
mmcc will complain at startup time if it has trouble with an
entry in the configuration file. Eventually we hope to sup-
port a multicast-based dynamic user registry.
There is a public user configuration file that is maintained
in the file ftp.isi.edu:confctrl/.mmccrc, and that will
allow you to bootstrap with other mmcc users. To add
(delete) yourself to the public registry send an e-mail mes-
sage to <schooler@cs.caltech.edu> with the Subject field
"Add to .mmccrc" ("Delete from .mmccrc"). The content of
the message should be in .mmccrc format.
Eventually we hope to support a multicast-based dynamic user
registry.
EXITING MMCC
Type "q", "Q" or "^C" anywhere over the main mmcc panel to
exit the program. Alternatively, if running OpenWindows,
the "Quit" option in the frame menu may be used to exit. If
the Connect panel is open, it will have to be closed before
the program will exit.
FILES
~/.mmccrc User configuration file
~/.mmcc.au Sound file used as "ring" tone
~/.mmcc.rsvp RSVP flowspec descriptions
SEE ALSO
nv(1), vat(1), wb(1), sd(1). See also aplay(1) on the DEC
machines, sfplay(1) on the SGIs, and play(6) on the Sparcs.
Note that the mmcc windows are of Xresource type "Mmcc".
AUTHORS
Primary author: Eve M. Schooler <schooler@cs.caltech.edu> of
Caltech and USC/Information Sciences Institute, Marina del
Rey, CA.
Tk/Tcl GUI author and machine-specific ports: Joe Touch
<touch@isi.edu> of USC/Information Sciences Institute,
Marina del Rey, CA.
Steve Casner <casner@isi.edu> of USC/ISI has provided count-
less suggestions for improvements, not to mention bug
reports.
The idea for a Star Trek ring sound was copied from
Bellcore's original Cruiser/Touring Machine software.
CAVEATS
For multiparty sessions, mmcc spawns programs that rely on
the presence of an IP multicast kernel, and if communicating
with remote users the presence of the Multicast Backbone
(MBONE). This means situations may arise where ttl values
are too small for all media to reach all participants. How-
ever, this is not an issue for two-party sessions, where
unicast is used instead (unless overridden by -mcast).
Mmcc performs multicast address allocation for multiparty
sessions; it randomly chooses an address in the range above
224.2.128.0. In the current release, all media agents (nv,
vat, wb) share the same multicast address, though this is
being rethought to allow the delivery trees to be pruned
separately, on the assumption that not everyone will receive
the same media. In addition, mmcc currently selects a
separate random port in the range above 7000 for each of the
media programs; there may be motivation to change this in
subsequent releases to a single port to allow easier moni-
toring, passage through firewalls, and possibly classifica-
tion for QoS.
Even if mmcc is configured to always use multicast for the
underlying programs that it spawns, mmcc itself uses unicast
UDP packets to rendezvous with peers.
Unicast addressing may pose problems for sites with
firewalls. Multicast addressing may pose problems for sites
with firewalls.
Mmcc relies on the inclusion of vat, nv, wb in the search
path of your shell environment. Similarly, if you use the
option to play a sound file when someone calls you, then
your search path must also include the play program specific
to the machine on which mmcc is running (see the -play
option).
The user login id is not validated.
If the audio device is locked by another audio-related pro-
gram, mmcc will be unable to play the designated sound file,
but will double beep instead. In either case, a REPLY
REQUESTED pop-up will appear.
If you exit out of mmcc while still in conference or in some
transitional state, mmcc will ask for confirmation. If you
go ahead anyway, remote sites may end up with incorrect
state information about the local site. Timeouts should
eventually resolve the state mismatches.
The -autosend option is experimental. As a first effort
toward cross-application communication, mmcc sends nv Tk/Tcl
ipc commands, whereas it resorts to command line options for
vat.
The main mmcc panel cannot be resized yet.
The -rsvpon option requires an RSVP-capable kernel.
Known bug: when multiple users at same <address, port>
included in same session.
ALPHA RELEASE
This is the alpha release of this software! It is available
via anonymous FTP from ftp.isi.edu:confctrl/mmcc/mmcc-
{sparc,sgi,dec5k,decalpha,intel,hp}.tar.Z. There are many
things missing that we plan to support; all the items in the
GUI for which there is an external button or menu but no
underlying function, Modify scenarios (invites, joins, add
media, change parameters), more dynamic user configuration
files (save, restore, modify), group aliases, additional
underlying media programs (pvp, ivs, nevot, etc.), user-
tailored Tk/Tcl extensions, better timeout configurability,
offer command line options as Xresource variables.
CAUTION
Please note that the Internet does not have sufficient capa-
city to act as a replacement for the telephone network, so
mmcc and the underlying media tools should be used judi-
ciously. The audio and video traffic will not slow down the
way TCP traffic will, so if multiple calls are placed simul-
taneously over the same link, severe congestion could
result. In particular, please limit the use of multicast
(sessions with more than two parties) with "World" scope on
MBONE during major events as advertised in sd and on the
rem-conf@es.net mailing list. Two party unicast calls will
have less impact, but still could overload links that are
used in the MBONE. For more information regarding the
MBONE, see the frequently asked questions file
ftp.isi.edu:mbone/faq.txt.
BUGS
There are probably many. Any bug reports, suggestions, and
comments, are most welcome and should be sent to
<schooler@isi.edu> or <touch@isi.edu>.