VAT(1) User Commands VAT(1)
NAME
vat - X11-based audio teleconferencing tool
SYNOPSIS
vat [ -aAcdEjJklLMnnsSv ] [ -F device ] [ -f audiofmt ]
[ -g geometry ] [ [ -m host/port[/fmt] ] [ -N sessionname ]
[ -C conferencename ] [ -K key ] [ -P priority ] [ -t ttl ]
[ -U socket ] [ -u script ] [ dest ]
DESCRIPTION
Vat allows users to conduct host-to-host or multihost audio
teleconferences over an internet (multihost conferences
require that the kernel support IP multicast). On most
architectures, no hardware other than a microphone is
required - sound I/O is via the built-in audio hardware. On
DEC systems, an AudioFile server must be running.
OPTIONS
(Note that all the parameters set by the following flags can
also be controlled by X resources (which all have `reason-
able' defaults) so one should not need to give vat any flags
in the usual case. The flags only exist to temporarily
override some resource.)
-a Enable automatic gain control on the output (speaker).
-A Enable automatic gain control on the input (mike).
-c Start up in `conference mode' (see description below).
(This flag is the opposite of -l.)
-C Use conference as the title of this vat window. If no
- C flag is given, the destination address and port are
used as the window title.
-d Start up with the VU meters disabled (this can be
changed using the `Disable Meters' checkbox on the aux-
iliary controls panel.
-E Include a checkbox in the auxiliary controls panel for
specifying that echo cancellation is being performed
externally (i.e., in hardware). This option can also
be effected by setting the X resource
Vat.externalEchoCanel to ``true''.
-f Sets the output audio packet format to fmt. (Note that
it not necessary to set an input format since vat will
accept any packet format it knows about.) Currently
available audio formats are:
pcm 78Kb/s 8-bit mu-law encoded 8KHz PCM (20ms frames)
pcm2 71Kb/s 8-bit mu-law encoded 8KHz PCM (40ms frames)
pcm4 68Kb/s 8-bit mu-law encoded 8KHz PCM (80ms frames)
Sun Microsystems Last change: 17 Feb 1992 1
VAT(1) User Commands VAT(1)
idvi 46Kb/s Intel DVI ADPCM (20ms frames)
dvi2 39Kb/s Intel DVI ADPCM (40ms frames)
dvi4 36Kb/s Intel DVI ADPCM (80ms frames)
gsm 17Kb/s GSM (80ms frames)
lpc4 9Kb/s Linear Predictive Coder (80ms frames)
(The idvi encoding was contributed by Jack Jansen of
CWI. The _g_s_m coder was contributed by Carsten Bormann
of the Technische Universitaet Berlin. The lpc coder
was contributed by Ron Frederick of Xerox PARC.)
The default audio format can be set with the audioFor-
mat X resource. It defaults to pcm.
-g Override the default window geometry with geometry,
which should be a standard X geometry string.
-j Start up with audio output to the external audio jack.
This flag can be defaulted by setting the X resource
Vat.speaker to false.
-J Start up with audio output muted.
-k Keep all sites in the `Conference Hosts' panel. Nor-
mally sites that exit are deleted from the panel. With
-k, sites that exit are grayed-out but not deleted.
-K Use key as the encryption key for this vat session.
-l Start up in `lecture mode' (see description below).
This flag can be defaulted by setting the X resource
Vat.lectureMode to true.
-m Serve as a `mixer' for host host which is listening on
port port optionally using audio packet format fmt. The
mix function allows vat to function as `application
level gateway'. There are three uses for this function:
Bandwidth Adaptation
Say you want to participate in a conference at work
that is using 64Kb/s PCM but you to join over the
9.6Kb/s line to your home. If there is a machine
"work" at work that can proxy for your machine "home"
at home, this could be set up as:
At work: vat -m home/5678/lpc4
At home: vat work/5678/lpc4
Concentration
If a conference has two communities connected by a low
speed link, it's desirable to mix multiple conversa-
tions into a single data stream rather than shipping
them over the link individually. If, say, the gateway
machines were "foo" and "bar" and the conference were
on the default multicast address, this would be set up
as:
On foo: vat -m bar/5678
Sun Microsystems Last change: 17 Feb 1992 2
VAT(1) User Commands VAT(1)
On bar: vat -m foo/5678
(Note that the port used by the mixers has to be dif-
ferent than the port used by the conference.)
Format Conversion
Say organization A uses Etherphone audio packet format
for internal conferencing but wants to have a joint
conference with organization B that uses G.278 packet
format. If a machine AtoB at A can be used to
convert/concentrate traffic to B via a peer BtoA, the
two conferences can be combined with:
on A's AtoB: vat -m BtoA/5678/pcm Aaddr/Aport/etherphone
on B's BtoA: vat -m BtoA/5678/pcm Baddr/Bport/g278
Note that the two conference environments need have
nothing in common --- they can use different audio for-
mats, addresses and/or ports. The only agreement needed
is over the peer-to-peer communication between AtoB and
BtoA.
-M Start up with audio input unmuted.
-n Force `native' vat packet format and default address.
(This flag is the opposite of -v.)
-N Use session, in lieu of your user name and local host,
to identify you to other sites. If no -N flag is given,
the X resource Vat.sessionName is used.
-P Use priority as this vat window's priority for obtain-
ing the audio device. All vat windows have a priority
which is typically set by the X resource
Vat.defaultPriority (defaults to 100) but this can be
overridden by a -P flag. If a window requests the
audio (because new network data arrived or the mike has
been unmuted) and the window currently holding the
audio is either lower priority or hasn't used audio for
Vat.idleHoldTime seconds, the audio holder immediately
gives it up. Otherwise the new window's request is
ignored. (Vat.idleHoldTime provides hysteresis to
prevent `thrashing' when two conferences go active at
about the same time; the priority provides a way to
distiguish `background' windows, say a radio station
broadcast or a `directory' window of people reachable
via vat, from `foreground' activity like a particular
audio conference so vat can make better decisions on
what should get the audio.)
-s Start up with audio output to the internal speaker.
(This flag is the opposite of -j.)
-S Make new sites come up `suppressed' (the check box
next to the sitename will be checked and you will have
to click on it to hear the site speak). This flag is
Sun Microsystems Last change: 17 Feb 1992 3
VAT(1) User Commands VAT(1)
intended for something like meeting audiocasts where a
moderator wants to have control over who is able to
speak. This flag can also be set by the
Vat.muteNewSites X resource.
-t Set the multicast ttl (time-to-live) to ttl. (The ttl
is ignored if the destination address is not an IP mul-
ticast address.) If no -t flag is given, the value of
the X resource Vat.defaultTTL is used.
-U Use the unix-domain stream socket specified by socket
for audio I/O. Some process should bind to and listen
on this socket before vat is run. The data is raw 8khz
mulaw samples.
-u Use scrip as the tcl program to build the user inter-
face, rather than the built-in script. You can also
override vat's built-in tcl script with your own tcl
code in $HOME/.vat.tcl.
-v Use a packet format and default multicast address that
is compatible with ISI's vt (voice teleconferencing
tool). Vat and vt can interoperate but vt does not par-
ticipate in vat's `session' protocol so the names of
conference participants running vt will not show up in
the vat `Conference Hosts' window (IP addresses for vt
participants appear instead).
In vt compatibility mode, the default destination host
or multicast group is controlled by the X resource
Vat.defaultVTHost rather than Vat.defaultHost. The -v
flag can be defaulted by setting the X resource VTMode
to true.
Note: In addition to invoking the ``quit'' button, typing
`q', `Q', ctrl-C or ctrl-D anywhere in the window will ter-
minate vat.
The vat window is divided into two parts: the right has con-
trols for the local audio and the left has a status display
of the hosts participating in the current conference. The
audio controls consist of two sliders that control the mike
and playback gain, a button to toggle output between the
built in speaker and the headphone jack, buttons to
mute/unmute either the mike or speaker, and buttons to con-
trol acquistion of the audio hardware. To adjust the slid-
ers, either click at the desired position or click and drag
the slide button to the desired position. Just to the left
of each slider is a VU meter. A rule of thumb is to adjust
the mike and speaker gain sliders so the peak readings on
the meter are about 80% of full scale.
Sun Microsystems Last change: 17 Feb 1992 4
VAT(1) User Commands VAT(1)
To change the audio output line (i.e., speaker, headphone,
lineout, etc.) click on the speaker icon (it should change
to a headphone icon). Additional clicks will round-robin
among the available lines. If there is only one option, the
button will be disabled. Similarly, click on the mike icon
to select among the input lines. To toggle mike/speaker
muting, click on the appropriate mute button. The button
will be highlighted when muting.
The Conference Hosts window lists every site currently par-
ticipating in the conference, with your site always listed
first. The participant name is displayed in a box that is
highlighted whenever that site is speaking and grayed-out if
a `session' message message from the site hasn't been
received for at least 30 seconds (each vat sends `session'
message every 6 seconds) - this usually indicates that the
site has lost connectivity or that vat has been aborted or
stopped. There is a checkbox to the left of each partici-
pant name. Clicking on the box will cause audio from that
participant to be discarded instead of played (for example,
this might be used to suppress a site that is generating
echoes). Names, by default, appear in the form user@host,
but can be arbitrarily specified by each participant (i.e.,
with -N).
Multiple VAT Windows
One host can be running an arbitrary number of vat sessions
(presumably with different destination addresses). However,
since most workstations have only one set of audio hardware,
only one of those sessions will be able to access the mike
and speaker. For the most part, the vat sessions will
automatically follow the action. If you unmute the mike or
press the ``Keep'' button, the audio device will be acquired
by that session and the session that previously held the
audio will relinquish it. Vat displays it's title bar in an
oblique font when the audio is not being held.
A vat session will also acquire the audio if there is input
from the network. But to prevent a background vat session
from stealing the audio from the foreground session, you can
toggle the ``Keep'' button. When the ``Keep'' button is
highlighted, vat will reliquish the audio only if there is a
user demand in another window (i.e., unmuting the mike or
selecting the Keep button).
The audio can be explicitly released by clicking on the
``Release'' button. Note however that if no other vats are
active and there is input from the net with idleHoldTime
seconds, the vat session that just released the audio will
re-acquire it.
Sun Microsystems Last change: 17 Feb 1992 5
VAT(1) User Commands VAT(1)
Participants in a multi-site conference often want to have
`side conversations' that don't bother the rest of the
conference participants. Vat has some support for establish-
ing side conversations: If you middle-click on the name of
some site in the conference hosts window, a new vat window
will be created that talks only to that participant (it
sends unicast datagrams rather than multicast). If that
other participant also middle-clicks on your site, you can
have a private conversation between just your two sites
using the newly created vat windows. Note: due to a `bug'
in the way most systems implement multicast, if you create a
new window aimed at a particular participant but they
haven't created a window aimed at you, they will hear you
speaking in the main conference window and may not realize
that your audio is being sent only to them and not multi-
cast. One can view this either as a feature (it provides a
semi-private channel you can use to ask someone to set up a
side conversation) or a bug (it often leads to strange,
one-sided conversations where one side multicasts and the
other doesn't).
Note that a site that's running as a `mixer' (-m flag) for
some other site should not run multiple vat windows: The
audio hardware is needed to provide the timing for the mix-
ing function and the window doing the mix will cease to
function if it loses control of the audio hardware.
Auxiliary Controls
Clicking on the ``Menu'' label at the bottom of the vat win-
dow will cause a panel of auxiliary controls to open.
The Audio Tests buttons will enable some audio test modes.
These should not be selected during a conference. The loop-
back mike button will cause input from the mike to be sent
to the local speaker/jack. This might be useful for check-
ing levels and debugging cable problems but the 20ms delay
from input to output makes talking in this mode almost
impossible. The three tone buttons will generate one of
three reference tones through the local speaker. Level set-
ting should generally be done with the -6dBm tone.
The Output Mode buttons control what vat will do to avoid
feedback/echo from the mike to the speaker. In mike mutes
net mode, vat will mute the speaker whenever it thinks that
you are talking, while in net mutes mike mode, vat will mute
the mike whenever input from the network arrives. In full
duplex mode, vat will assume that feedback can't happen and
do nothing to avoid it. In echo cancel mode, vat will
attempt to eliminate echoes by doing some fancy signal pro-
cessing. (EchoCancel requires the BSD sound driver - it is
disabled when running vat under Sun OS because the Sun
driver does not provide any mechanism to time correlate
Sun Microsystems Last change: 17 Feb 1992 6
VAT(1) User Commands VAT(1)
audio output and input.) The internal speaker should only
be used in `speakerphone' or `echo cancel' mode - selecting
`headphone' mode for it will result in your site injecting a
lot of unpleasant echoes into the conference. The headphone
jack should be set to `FullDuplex' mode if you have head-
phones plugged into it and `MikeMutesNet' or `EchoCancel'
mode if you have an external amp and speaker plugged into
it.
There are two type-in boxes (see below) at the bottom of the
Auxiliary Controls panel. The one labeled `Name' can be
used to change the session name announced to other sites.
The one labelled `Key' can be used to specify an encryption
key (see next section).
Encryption
Since vat conversations are typically conducted over open IP
networks there is no way to prevent eavesdropping, particu-
larly for multicast conferences. To add some measure of
privacy, vat allows the audio packet streams to be DES
encrypted. Presumably only sites sharing the same key (and,
of course, the NSA) will be able to decrypt and listen to
the encrypted audio.
Encryption is enabled by entering an arbitrary string in the
key box (this string is the previously agreed upon encryp-
tion key for the conference - note that key distribution
should be done by mechanisms totally separate from vat).
Encryption can be turned off by entering a null string (just
a carriage return or any string starting with a blank) in
the key box.
X Resources
The following are the names and default values of X
resources used by vat. This list is incomplete. Consult the
tcl code in vat.tcl for the complete set.
Vat.defaultHost: 224.2.0.1
Vat.defaultVTHost: 224.1.0.200
Vat.defaultPort: 3456
Vat.defaultTTL: 127
Vat.audioFormat: pcm
Vat.vtMode: false
Vat.lectureMode: false
Vat.inputPort: Mike
Vat.outputPort: Speaker
Vat.speakerMode: Speakerphone
Vat.jackMode: Headphone
Vat.mikeGain: 32
Vat.speakerGain: 180
Vat.jackGain: 180
Vat.mikeAGC: false
Sun Microsystems Last change: 17 Feb 1992 7
VAT(1) User Commands VAT(1)
Vat.mikeAGCLevel: 32
Vat.speakerAGC: false
Vat.speakerAGCLevel: 32
Vat.maxPlayout: 6
Vat.defaultPriority: 100
Vat.idleHoldTime: 10
Vat.idleDropTime: 0
Vat.autoRaise: true
Vat.pushToTalk: false
Vat.keepSites: false
Vat.key:
Vat.muteNewSites: false
Vat.siteDropTime: 30
! fonts
Vat.titleFont: -*-helvetica-bold-r-normal--*-140-75-75-*-*-*-*
Vat.audioFont: -*-helvetica-medium-r-normal--*-100-75-75-*-*-*-*
Vat.helpFont: -*-times-medium-r-normal--*-140-75-75-*-*-*-*
Vat.ctrlFont: -*-helvetica-bold-r-normal--*-100-75-75-*-*-*-*
Vat.ctrlTitleFont: -*-helvetica-bold-r-normal--*-120-75-75-*-*-*-*
Vat.entryFont: -*-helvetica-medium-r-normal--*-100-75-75-*-*-*-*
Vat.maxPlayout is the maximum `play out' delay, in seconds,
that can be tolerated. I.e., vat dynamically adapts to
delays introduced in the network by delaying the play out of
a remote site's audio packets. The range of adaptation is
limited by the size of a buffer in vat and this parameter
essentially sets the size of that buffer. Setting maxPlay-
out larger than 10 seconds will probably result poor vat and
system behavior due to excessive paging activity.
Vat has two different modes of adapting the playout delay,
one more suitable for an interactive, multi-party discussion
or conference and the other more suitable for listening to a
speech or lecture. The two modes differ in how quickly they
`forget' the delay vat introduces to adapt to transient net-
work congestion: In Conference mode vat attempts to minim-
ize the delay (since large delays make interactive conversa-
tions difficult) but this usually results in more lost pack-
ets when the delay becomes too short handle the next conges-
tion event. In Lecture mode vat attempts to minimize lost
packets by reducing delays very slowly. This results in the
clearest playback but interactivity may suffer.
Conference mode is the default when vat starts up unless the
- l flag is given or the X resource lectureMode is set to
true. There are radio buttons in the network section of the
Auxiliary Controls panel to switch between Conference and
Lecture modes. The switch can be made at any time and takes
effect immediately.
Type-in Boxes
Since there's no standard for X keyboard input we had to
Sun Microsystems Last change: 17 Feb 1992 8
VAT(1) User Commands VAT(1)
roll our own and vat's type-in boxes need some explanation:
To enter something new in a type-in box, position the mouse
in the box and click to insert a cursor. To modify the
existing contents of the box, click with the left mouse but-
ton where you want to append (or click-and-drag if you want
to replace) then start to type. If you hit carriage return,
your new input will be acted on. If you hit escape or bell
(^G) your new input will be discarded.
If the string is too long for all of it to be visible, the
right mouse button can be used to drag invisible portions
into view. Hold down the button and drag the text the
direction you want it to move.
While typing, a tiny subset of emacs-like line editing com-
mands are available: ^H or DEL (delete previous character),
^D (delete character), ^F (forward char), ^B (backward
char), ^A (beginning of line), ^E (end of line), ^W (delete
previous word), ^U (delete everything).
Statistics
Clicking on a name with the left mouse button will bring up
a window with packet statistics for that site. The window
will remain mapped as long as the button is depressed.
There are three of numbers. The last column is the aggre-
gate statistics since vat started, and the first column is
the difference between the last update time and the current
time. The middle column is a smoothed average of the first
column with units depend on the statistic. The smoothing
filter is a exponentially weighted average with gain
Vat.statTimeConst. All of the averages (except total pack-
ets) are displayed as a percent of number of packets sent
(which is actually an estimate based on the number of pack-
ets received plus those estimated to be missing).
The statistics are updated every second or so while the win-
dow is mapped. If you hold down the shift-key when you
bring up the statistics window, it will be mapped perma-
mently and will include stripchart. The stripchart plots
the selected statistic against time.
Altenatively, the stats for all the sites can be sent to
standard out by typeing 's' or 'S' anywhere in the vat win-
dow. The first entry is the total packets received from the
site since starting vat and since the last time you
requested stats. E.g., `3515/62' means 3515 packets have
been received from the site and 62 received since the last
time you printed stats. The next four entries are various
error counters. Each consists of two numbers separated by a
slash. The first number is a count of how many times the
error occurred since the last time you requested stats. The
second is the same info expressed as percentage of packets
Sun Microsystems Last change: 17 Feb 1992 9
VAT(1) User Commands VAT(1)
received. E.g., `9/3.0' in the `drop' column would mean 9
packets or 3% of the packets received since the last stats
output had been dropped. The `lost' column counts packets
that didn't make it (this is computed by keeping track of
gaps in the packet sequence number space). The `drop' column
counts packets that arrived but were dropped because the
current playout delay was too short to resequence the
packet. The `dup' column counts duplicate packets that were
discarded (you shouldn't see any of these unless the packets
had the misfortune to traverse the T1 NSFNet backbone -- the
worthless IBM token ring hardware in each NSS loves to
duplicate packets). The `order' column counts packets that
arrived out of order (this is not an error but it does indi-
cate routing strangeness and will always increase the play-
out delay). Following the error stats is the current play-
out delay for the site and the site name.
SEE ALSO
audio(4)
AUTHORS
Van Jacobson (van@ee.lbl.gov) and Steven McCanne
(mccanne@ee.lbl.gov), both of Lawrence Berkeley Laboratory,
University of California, Berkeley, CA.
Jack Jansen (Jack.Jansen@cwi.nl) of Stichting Mathematisch
Centrum, Amsterdam, the Netherlands, contributed the Intel
DVI ADPCM codec.
Ron Frederick (frederic@parc.xerox.com) of Xerox PARC, Palo
Alto, CA, contributed the LPC codec which is based on an
implementation done by Ron Zuckerman
(ronzu@isu.comm.mot.com) of Motorola which was posted to the
Usenet group comp.dsp on 26 June 1992.
Carsten Bormann (cabo@cs.tu-berlin.de) and Jutta Degener
(jutta@cs.tu-berlin.de) of the Communications and Operating
Systems Research Group (KBS) at the Technische Universitaet
Berlin contributed the GSM codec.
Steve Casner (casner@isi.edu) of ISI, Los Angeles, CA, and
Steve Deering (deering@parc.xerox.com) of Xerox PARC have
invested tremendous effort in making vat work on a scale far
beyond the authors' wildest expectations and have contri-
buted greatly to vat's development, both directly (via care-
ful analysis of bugs and useful suggestions) and indirectly
(via setting up several global conferences that severely
pushed the envelope of vat's capabilities).
BUGS
Speakerphone mode is difficult to get right - use a headset
if you can (or run BSD instead of Sun-OS to get a kernel
audio driver that can support echo cancellation). If you
have to use speakerphone mode, try to position the mike as
far as possible from the speaker (the speaker in a sparcsta-
tion is on bottom of the machine in the front right corner
Sun Microsystems Last change: 17 Feb 1992 10
VAT(1) User Commands VAT(1)
near the LED). If there's a problem with echo (i.e., you
transmit whenever other people start speaking), try reducing
the mike gain or mute the mike when you're not speaking.
In speakerphone mode vat assumes that if there is audio data
from the net being sent to the speaker at least part of the
signal from the mike is pickup from the speaker. So, unless
the mike signal is `large' compared to the signal from the
net, vat assumes it is echo and suppresses it. This means
that if you want to interrupt someone who is talking, you
may have to talk a bit louder than usual at the start (you
can tell if you succeed because your site's name box will
light and the speaker will mute).
The internal architecture of vat allows for almost any audio
encoding and packet format. We are working on U.S. Federal
Standard 1016 4800bps CELP (a very low bandwidth codec that
could be run over 9600baud dial-up SLIP links) and hope to
have it in the official release. We'd be very interested if
anyone would like to contribute additional audio
encode/decode routines.
Vat's LPC coder is low quality. We plan to incorporate the
U.S. Federal Standard 1015 LPC-10 2400bps algorithm.
Sun Microsystems Last change: 17 Feb 1992 11