LBNL Audio Conferencing Tool (vat)

# 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

- Overview
- Installation
- Supported Systems
- Building Vat from Source
- Notes
- Acknowledgments
- Feedback to authors

Other links:

- What's new?
- The FTP archive
- Browse the change history
- Porting vat to new platforms
- Vat-4.0 alpha-test information

### 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, our whiteboard tool wb, and our session directory tool sd. 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 -d -c vatsrc-tar.gz | tar xfv -`

(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:

- Make sure tcl/tk (v7.5/4.1) is installed or built in the directory above the vat tree. Vat requires at least v4.1 of tk.

- Make sure the TU-Berlin GSM distribution is installed in the directory above the vat tree. Note that both the GSM library & the GSM source are needed. If the compilation fails because of a missing include for private.h, it means vat couldn't find the GSM source.

- Make sure that release 3 of the DEC CRL AudioFile audio server is installed in the directory above the vat tree. If configure can't find AudioFile, it will report can't find AudioFile - vat AF support won't be compiled. The only platforms that require AudioFile are DEC Alphas & DEC MIPS so others can generally ignore this error.

- Run the ./configure script. You may specify the following arguments to configure:

  -x-includes=path | specify a pathname for the X include tree
  -x-libraries=path | specify a pathname for the X libraries
  -with-tcl=path | specify a pathname for tcl
  -with-tk=path | specify a pathname for tk
  -with-gsm=path | specify a pathname for GSM
  -with-af=path | specify a pathname for AudioFile

  If you run into problems with configure, you should edit configure.in instead of configure and use GNU autoconf to generate a new configure from configure.in. If you need to make such changes, please send them to us so future versions of vat will configure out of the box.
- Run make.
- If make completes successfully, run `make install' as root to install the binary and man page.

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.

### Notes

- Based on the principle of least surprise, we've made vat-4 upwards compatible with vat-3. I.e., it is a drop-in replacement for vat-3 and by default will come up speaking the old vat protocol. However, vat-4 accepts a -r flag or Vat.sessionType: rtp Xresource to support sessions using the RTP protocol. RTP is far superior to the original vat protocol and we hope it will soon become the default but in the interim we have to figure out the right sequence of tool deployment and sd/sdr changes to coordinate an orderly transition between the two protocols.

  We encourage experimenters to use RTP mode whenever possible.

- The Missing Packets statistic in vat-3 and earlier was always unreliable because the original vat protocol didn't include the sequence number necessary to compute it. When running vat-4 in backward compatability mode, Missing Packets will always be reported as 0. It, and all the other statistics, are correct and accurate if running in RTP mode.

### 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)