vat - LBNL Audio Conferencing Tool

Vat is an audio conferencing application developed by the Network Research Group of Lawrence Berkeley National Laboratory. Source code and pre-compiled binaries are available via anonymous ftp. Vat-related questions and feedback are welcome and can be sent to the developers via vat@ee.lbl.gov.


Contents

Other links:


Overview

The LBNL audio tool, vat, is a real-time, multi-party, multimedia application for audio conferencing over the Internet. Vat is based on the Draft Internet Standard Real-time Transport Protocol (RTP) developed by the IETF Audio/Video Transport working group. RTP is an application-level protocol implemented entirely within vat -- you need no special system enhancements to run RTP. Although vat can be run point-to-point using standard unicast IP addresses, it is primarily intended as a multiparty conferencing application. To make use of the conferencing capabilities, your system must support IP Multicast, and ideally, your network should be connected to the IP Multicast Backbone (MBone).

Vat provides only the audio portion of a multimedia conference; video, whiteboard, and session control tools are implemented as separate applications. Our video tool is called vic and our whiteboard tool wb, UCL developed the session directory tool sdr Other related applications include ISI's Multimedia Conference Control, mmcc, the Xerox PARC Network Video tool, nv and the INRIA Video-conferencing System, ivs.


Installation

The easiest way to install vat is to grab the binary distribution for your architecture (see the list below), unpack it, and install the executable and manual entry. You can also get the source distribution and build vat from source.


Supported Systems

Note: these links will not be valid until the official 4.0 release.
Sparcs running SunOS
Vat should run on any version of sparcstation (1, 2, 4, 5, 10, 20, SLC, ELC, IPC, IPX) running SunOS 4.1.x.

Note that the audio buffer size used by the stock SunOS 4.1.x kernel is too large for good interactive response. This can be fixed with a kernel patch -- instructions are in the MBone FAQ.

Sparcs running Solaris
Vat should run on any version of sparcstation (1, 2, 4, 5, 10, 20, SLC, ELC, IPC, IPX) running Solaris 2.x for x>1.

Vat does not work in unicast mode under Solaris 2.3 due to a kernel bug. Sun has provided a workaround.

DEC OSF-3.x and DEC Ultrix
Vat should run on any DEC Alpha running OSF/1 v3.x using either the build-in audio or the audio on a J300 board. Vat should run on any DEC 3max (5000 series) with a LoFi audio board and running Ultrix 4.2 or above. On these architectures, vat requires release 3 of the DEC CRL AudioFile audio server.

HP HPUX-9
Vat may run on versions of HP Snake (700 or 7000 series) that have built-in audio hardware. We have tested it on 710s, 715s & 735s.

Note that the HPUX Audio server (AServer) was not designed with interactive audio in mind -- in our attempts to use it, we typically saw delays of several seconds between the audio hardware and the net. To work around problems with AServer, vat uses the kernel /dev/audio device directly. Unfortunately, this interface is not documented and HP has changed it several times. Our only HP is an ancient 735 running HPUX-9.0 so we rely on others in the user community to send us the patches or information needed to keep vat running on HP hardware.

SGI Irix-5
Should run on any SGI Indy, Indigo or Indigo2 running IRIX 5.x. We have tested it on an Indigo and an Indy.

x86 BSD/OS 2
Vat should run on i386/486/586 PCs with soundblaster-compatible sound cards running BSD/386 2.0 or later.

The i386 binary also has been reported to run under NetBSD (using a modified version of the LBL sound driver) and FreeBSD (using the Linux sound driver with additional support for /dev/audio). Amancio Hasty (hasty@netcom.com) reports that under FreeBSD vat can operate in full-duplex mode with the Gravis Ultrasound (and that the quality is very satisfactory).

x86 Linux
Vat should run on i386/486/586 PCs with equiped with sound cards supported by VoxWare (the standard Linux sound driver) and running Linux 1.2.8 or later.

The current vat linux audio driver is quite primitive. It treats the sound card as half-duplex (e.g., a soundblaster) even if it is capable of full-duplex operation (e.g., a GUS). It also does not use the `mixer' controls that set the record and play volume and/or select input and output ports. We hope someone in the community will add the missing pieces to vat's linux-audio.cc.

Under linux 1.2.x, multicast through the loopback interface does not work. This is a serious deficiency since local (loopback) multicast sockets are used to implement "conference busses" that vat/vic/etc. use to do things like pass the audio hardware between different vats, automatically switch video windows on audio activity, etc. We understand that this problem has been fixed in more recent versions of linux (1.3.?). If your kernel doesn't have the fix, the first symptom is that it will be very difficult to switch the audio between multiple instances of vat. (Normally you just click the right mouse button it the vat window you want active and the audio will be assigned to that window. This won't work at all if the linux loopback multicast is broken.) If your kernel has the bug, it will be difficult to handle multiple vats and you will probably want to run just one at a time.


Binaries Maintained by Other Sites
Several other systems are supported but we don't have the resources to build and maintain binries. These other sites have kindly offered their help.
AIX
AIX binaries provided by Andrew Booker and Kira Attwood.
FreeBSD
Amancio Hasty has made FreeBSD binaries for many of the MBone tools publicly available.
SCO Unix
Shawn McMurdo ported vat to SCO UNix. Some notes and a binary distribution are publicly available from their ftp server.


Building Vat from Source

To build vat from source, start by getting and unpacking the source tar. E.g., after ftping the tar, run (gzip is available from the GNU Project.) This will place the contents of the source distribution in ./vat-x.y where x.y is the current version number. `cd' into this directory and do the following: If you are attempting to get vat running on a platform that isn't listed above, things will probably be more difficult. See the porting notes for help.

If you do a port to a new system or hardware and would like to feed your changes back into the distribution, we would be delighted to have them. If you have a vat binary you would like added the the distribution, or if you would like us to add a link to this page, please let us know.

Building Vat under Windows

We use Microsoft's Visual C++ 4.x to compile vat under Windows. Our build environment is essentially the same as that in the Tcl/Tk release. There's a makefile.vc in the source distribution and you can simply run nmake from a dos shell: You might have to fix up the tcl, tk and gsm paths in makefile.vc (the makefile assumes these are all in ".." relative to the vat src directory and that they've all been built before you build vat). If you want to build vat from the workshop, follow the directions in the tk windows faq for using makefile.vc to create a makefile project.


Notes


Acknowledgments

Funding for this work was provided by the Office of Energy Research, Mathematical, Information, and Computational Sciences Division, of the U.S. Department of Energy under Contract No. DE-AC03-76SF00098. Equipment grants and support were provided by Sun Microsystems, Digital Equipment Corporation, and Silicon Graphics Inc.


Feedback

As always, we very much want to hear about bugs and problems. Please don't hesitate to offer suggestions or other feedback. Send all vat related correspondence to vat@ee.lbl.gov (this list includes only the developers and is not distributed beyond our site).

Van Jacobson (van@ee.lbl.gov)
Steven McCanne (mccanne@ee.lbl.gov)