AG logo
vvd
virtual venues daemon

Linux logo


Overview

The Virtual Venues Daemon communicates meeting details between machines in an access grid node. In ANL's recipe system, this service is provided with a Corba event manager. In a Linux-only node this communication is somewhat simpler; vvd is implemented as a small Tcl/Tk script, identical versions running on each of the node machines.

The meeting details passed between the node machines are:
A virtual venue is generally accessed with a web browser on the display machine of an access grid node. When a virtual room is selected, the virtual venues server returns a session description for the new room and a remote control command for the mud application. If the browser's mimetypes have been suitably set (see Installation section below) this information is saved in the user's home directory as files room-sdp.php and room-mud.php. When new versions of these files are detected by vvd, it acts according to the directives in its configuration file (typically /etc/vvd/vvd.config).

On the display machine, this action may involve sending the same session and mud information to other machines in the node, as well as (re)starting any applications needed locally for the session. On the display machine, the applications are probably vic and tkMOO-lite (and also rat on a single machine node).

On the video & audio machines, vvd receives session & mud information directly from the display machine's instance of vvd. The information is recorded in the user's home directory as files room-sdp.php and room-mud.php, exactly as on the display machine. Depending on the contents of vvd's configuration file, vvd will then (re)start the applications needed on that machine. This will most likely be vic on the video machine, rat on the audio machine.

 
Availability

The most recent version of vvd is available from the APAG software download site under the terms of the Gnu Public Licence.


Installation

The software is provided in the Slackware package format. For installation on other distributions, instructions are available to decompose Slackware packages. The installation assumes the existence of a user named "ag". Please create one if necessary and assign it to a (possibly new) group also named "ag". With a Slackware distribution, the downloaded package can then immediately be installed (as root) with the command:
    installpkg vvd-0.1-i386-1.tgz

To upgrade from an older version, use upgradepkg.


Configuration

Configuration of vvd requires that you:
  1. set browser mimetypes
  2. set session properties to run vvd at login
  3. edit vvd configuration file on each machine
1. Setting of the browser mimetypes varies somewhat according to the browser type. With Mozilla, select "Helper Applications" from the Edit->Preferences menu. Now press the "New Type" button, which should open a widget with four entries. For the first of these two new types, the entries should be filled in as follows:

Description of type:
AG Session Description
File extension:
php
MIME type:
application/x-ag-sdp
Application to use:
/usr/local/ag/bin/vv-sdp-handler.tcl

    Click the OK button when complete, then "New Type" again. Enter the following details for the second mimetype:

Description of type:
AG Mud
File extension:
php
MIME type:
application/x-ag-mud
Application to use:
/usr/local/ag/bin/vv-mud-handler.tcl

2. To add vvd to the Session startup applications list, log in as the user "ag". Now from the Programs menu, select Settings->Session->Session Properties & Startup Programs which starts the Gnome Control Center (sic) at the Session Properties & Startup Programs page. Select the "Startup Programs" tab and press the "Add" button. In the selection box which pops up, add the /usr/local/ag/bin/vvd to the "Startup Command" entry widget (or use the Browse button to browse for the vvd command).

3. The configuration file for vvd at /etc/vvd/vvd.config contains 2 type of information, application startup specifications and identification of other machines in the node. A typical configuration file for a display machine contains:

SLAVE=ag-video.somewhere.com:2929
SLAVE=ag-audio.somewhere.com:2929
VID_vic=1
AUD_rat=0
MUD_tkmoo=1

Using the SLAVE directive, the above configuration tells vvd to always forward new venue details to the named machines on the given port. It also tells vvd to (re)start a single instance of each of vic and tkmoo.


A typical configuration file for the video machine contains:
VID_vic=3
AUD_rat=0
MUD_tkmoo=0

which starts 3 instances of vic (1 for each camera) but needs no SLAVE directive, since it receives information (from the display machine) without forwarding it anywhere else. Similarly, the audio machine needs no SLAVE directive and typically contains:
VID-vic=0
AUD_rat=1
MUD_tkmoo=0

which just starts a single instance of rat.


The typical configuration for a single machine node would be:
VID_vic=3
AUD_rat=1
MUD_tkmoo=1