Confcntlr: Conference Controller

SYNOPSIS
confcntlr [-f filename]  [-F pathname]  [-j yes|no]  [-p port]
confcntlr-crypt [-f filename] [-F pathname]  [-j yes|no]  [-k key]  [-p port]

 
DESCRIPTION
confcntlr is a conference controller intended to allow easier access to, control of, and coordination of a videoconference between remote sites. It is meant to be run on the machines participating in a videoconference session and used to control the video and audio locally and remotely.

Confcntlr is a graphical user interface and communication tool. The graphical user interface is for initiating actions and setting the controls for the video and audio portions of a conference. Options and session values are displayed and can be changed in the windows. When confcntlr starts, default values are used. These startup values can be changed by the user.

The communication tool allows message exchange between remote hosts over a network and between applications on a single host. Messages may be sent to start or stop tools or to change settings of tools that are running. (See OPERATION and SETTING DEFAULTS.) Messages may also be sent to ask confcntlr to forward the conference bus messages it receives to designated hosts. (See FORWARDING CONFERENCE BUS MESSAGES.)

Confcntlr is meant to control only one videoconference. However, multiple confcntlrs can be executed on one host. (Version 0.4 or higher is required.) Each confcntlr running on the local host must have a unique port on which it listens for connection requests from remote confcntlrs. Confcntlrs running on different hosts and controlling the same conference must have the same port number. Each conference controller can launch one or two vics and one vat either locally or from a remote site. Confcntlr must be started before running vic and vat. There are security features for access control to confcntlr and encryption of messages sent over the network may be supported. (See SECURITY WINDOW.)
 

OPTIONS
Confcntlr versions greater than 0.3 are required.
-f
Use filename for default values. If filename is not found in the home directory at startup, system defaults are used and the current settings are saved to this file upon termination. If not specified, the home directory is searched for .confcntlrrc.
-F
Use file given by pathname as a defaults file to overwrite default values.  Upon termination, changes are NOT saved to this file.  For example, this option may be used to set the conference address and port for this conference only.  (Version 0.4.1 or higher is required.)
-j
Specify "yes" to automatically start all tools locally.  If "no" is specified, or if this option is not used, local tools must be started from the conference controller's Conference Window.  (Version 0.4.1 or higher is required.)
-k
Use key as the encryption key for confcntlr-crypt.
-p
Set the port on which confcntlr listens for connection requests from remote confcntlrs. Specify port as an integer greater than 6000. If not specified, the default port 62525 is used.
OPERATION
Starting/stopping tools, changing settings, and communicating with remote hosts are invoked by the graphical user interface. The main window shows the conference status and has buttons for general control (e.g., quitting the program and bringing up the windows for setting options, changing settings, and starting tools).

 

MAIN WINDOW

Remote Host Names

The entry field labeled "Contact Host" shows the name of the machine to connect to. Use this field to type or edit the name of the remote site you want to communicate with. Do not use the same name as the local host and do not use a multicast address. To bring up a menu with predefined addresses, click on the button with the arrow. If you press the return key or click on a button and confcntlr is running on that host, you will get that host's session status, settings, and video/audio devices. You can change the list of host addresses or add new addresses by editing the following line in the defaults file (e.g., $HOME/.confcntlrrc):

hostlist# address1 address2 ... addressN

The field labeled "Remote User" indicates the most recent user who started/stopped a session or changed the settings from a remote host. The format is: user@hostname.

Status

The main window shows the authorization level and which tools are running. The left column of buttons labeled "Status" indicates the tools running on the local host and the right column indicates tools running remotely, in order of video 1, video 2, and audio. A red button indicates that a tool is running. The stop sign image indicates the authorization level. If it is green, control access to confcntlr is granted to anyone. If it is yellow, control is allowed by users and hosts on the authorization list. If it is red, no one is allowed control access.

Subwindows

Click on the buttons labeled "Settings", "Conference", and "Security" to bring up the windows described below.

At startup, if you specify a Contact Host and confcntlr is running on that host, you will automatically get its settings.

Quitting confcntlr

To quit the program, click on the button labeled "Quit". If changes were made (for four different categories), you will be prompted about saving the changes.   Clicking "OK" saves changes made in the categories marked "Save," while clicking "CANCEL" doesn't save any changes (i.e., it is the same as selecting "Don't Save" for every category of changes).

LOCAL WINDOW

This window allows you to change the settings for video and audio tools running on the local host. There is a section for each tool with the titles "vic 1," "vic 2," and "vat" for video 1, video 2, and audio, respectively.

For video, a dialog box will appear if the bandwidth or frame rate is set to a value that exceeds the recommended limit. If you still want to use this value, click on the button labeled "USE ANYWAY". If you want to edit the value, type in the entry field and then click "SET". If you want to go back to the default value, click on "SET TO DEFAULT". If you want to use the previous value, click on "UNDO CHANGE".

Conference Name Extension

The entry field labeled "ConfName Ext" is for specifying an optional extension to the conference name. The characters "/", "#", and "@" are not allowed since they are used by the program.

Video Transmission

To start or stop video transmission, click on the button labeled "Transmit Video". A red checkbox indicates transmission is "on".

Video Settings

The bandwidth, frame rate, quality, and device may be changed via their pulldown menus or typing in their entry fields and ending with the return key. The format and input jack (Port...) can be changed only via its pulldown menu.

If you want the value you typed for quality to be kept as the quality associated with the current format, press the return key after typing the entry.

Since different video formats support different quality ranges, changing the video format will automatically change the range of values for the video quality. Cellb does not support quality, so if cellb is the selected format, the quality menubutton and entry field are disabled.

Audio Settings

The audio format can be changed by either typing in its entry field or clicking on the button labeled with an arrow. Lecture mode, recv-only, and "keep audio" can be turned on and off by clicking in their checkboxes. A red checkbox means "on." Clicking on the "listen" and "talk" checkboxes mutes or unmutes the output and input devices; red means "unmuted." To change a device, click on the button labeled with an arrow below the "talk" or "listen" checkbox. Then click on your selection. The image to the left of the button displays the current device. You may change the devices available by editing the list of values for "audioOutputDevices" and "audioInputDevices" in the defaults file.

The sliders to the left of the devices are for changing the gain levels. The selected output mode applies to the current output device. External echo cancellation ("ExtEchoCancel") is available only if the "localvat.echoCancel" value is "true" in the defaults file. (Version 0.4 or higher is required for most of the audio features.)

The bitmaps to indicate the current input/output devices are part of the vat source code.

Advanced Audio Settings

Clicking on the button labeled "AdvAud" will bring up a window with controls for local audio tests. If your $HOME/.vat.tcl file contains a procedure for talk threshold, echo threshold, and echo suppression time, sliders for setting these values will also be displayed. (See SETTING DEFAULTS.)
 

Dynamic Changes

You do not need to stop and restart the video to change the following: transmission, bandwidth, frame rate, format, quality, device, and input jack. If you type in an entry field, end with the return key.

You do not need to stop and restart the audio to change the following: output/input device, output mode, output/input gain, or threshold levels. Lecture mode, recv-only, "keep audio," and muting/unmuting devices can be turned on and off without stopping and restarting vat.

If you click the "quit" button in the vic or vat main window, or if you click vic's transmit button, confcntlr will be sent a message and it will update its controls.

Reverting to Defaults

To go back to default values, click the button labeled "Reset to Defaults". To hide the window, click on the "Dismiss" button.

REMOTE WINDOW

This window is used to change the settings for video and audio tools on a remote host. It works in the same way as the "local window."

When a remote host sends its settings (as in response to clicking on "Get Remote Settings" or a change in Contact Host), the remote window displays the values.

For vat, the external echo cancellation and threshold sliders are disabled and grayed out if confcntlr hasn't obtained the contact host's settings or if the contact host doesn't support these features.

CONFERENCE WINDOW

To specify a name for the conference, type in the entry field labeled "Conference Name." The conference name is optional and can be the same or different for each session. The characters "/", "#" and "@" may not be used since they have special meaning to the program.

Conference Address, Port, and Time-to-Live

A conference address, port, and time-to-live value must be specified. Each tool has its own conference address and port. The value specified for the video or audio applies to both the local and remote tool. The conference address may be the same or different for each tool, but the ports must be different. (You can run sdr to get the conference address and port if they are unknown.)

To change the values, click on the button labeled with an arrow and then click on a selection in the pulldown menu, or type in the entry field and end with the return key.

The conference address is the address to which the video and audio tools transmit. If "unicast" is specified and there is no "Contact Host," the local vic/vat will transmit its video/audio to the local host. If there is a "Contact Host" and both local and remote programs are started, they will transmit to each other. Otherwise, transmission will be to the address specified.

Starting/Stopping Tools

To start/stop tools on the local host, click on the selected button in the column on the left side of the lower portion of this window. To start/stop tools on a remote host, click on the selected button in the column on the right side of the lower portion of this window.

When a local tool is started, the square turns red and the label changes to "stop" to indicate that the next action available is to stop the tool. When you start a remote tool, a message is sent to the contact host and a reply is expected. The start button turns pink until the reply is received. This could be delayed if the network is slow or if the remote user is manually setting control permissions (see SECURITY WINDOW).

Clicking on a "Start All" button will start all three tools. The "Stop All" button will stop all tools that are running.

Getting Remote Settings

To get a remote site's settings, type the contact host name and press the return key, or select a host from the menu, or click on the button labeled "Get Remote Settings". The values in the remote window and the status buttons will be updated. The video devices, video input ports (jacks), and the audio threshold and external echo cancellation features will be enabled or disabled, depending on what is supported by the contact host.  (In versions earlier than 0.4.1, the Conference Window is also updated.)

Getting Remote Conference Information

To get the contact host's conference name, ttl, and conference addresses and ports, click on the button labeled "Get Conference Info."  If any settings are different from those shown in the Conference Window, they will appear on a prompt panel.  Click on "Apply" to make the changes and click on "Don't Apply" to not make the changes.
 

SECURITY WINDOW

This window contains controls for setting the authorization level, viewing/editing the authorization list, selecting the prompts and warnings, and editing the encryption key if you are running confcntlr-crypt.

Access Control

There are three authorization levels: allow any remote host to make a request, allow only users on the authorization list to make requests, or do not allow anyone to make a request. To change the authorization level, click on the desired radiobutton. The stop sign image in the main window will change color accordingly.

The authorization list can be viewed or edited via the scrollbar text field. When you quit confcntlr, if this list has been changed, a panel will appear to ask if the changes should be saved.

Setting Permissions for Actions

If you want to manually approve starting/stopping tools, click "on" the button labeled "Prompt to approve start/stop." If you want to approve changes in conference address, port, time-to-live, or conference name, click "on" the button labeled "Prompt to approve address/ttl/name changes." If you want to approve other changes, click "on" the button labeled "Prompt to approve setting changes." If you want to manually approve every request, click "on" the button labeled "Prompt to approve all actions." If an action is denied, the requesting host will be notified.

When you are not prompted to set the permission for a request, a warning panel will appear to notify you that the change has been made. If you do not want to receive these warnings, click "on" the button labeled "Turn off warnings".

For version 0.4.1 and higher, when warnings are turned off and you are not prompted to approve video/audio setting changes, a warning panel will appear whenever a remote user mutes or unmutes "talk."  These warnings can be suppressed by editing the defaults file.  (See SETTING DEFAULTS.)

Encryption

If you are using encryption, all hosts participating in the conference must run confcntlr-crypt and use the exact same key. You may change this key, but only after all participants have agreed on the new key.  Multiple keys are supported in version 0.4.1 and higher.  The distribution of confcntlr from LBNL via the World Wide Web does not support encryption due to U.S export controls. In this case, this section is missing in the security window.  If encryption is supported, clicking on the "View Key" button brings up a panel for viewing all keys and the active key, editing/deleting entries, adding new entries, and turning off encryption.  You can add a comment to a key by preceding the comment with "a"--e.g., the green house @Session 3 key.

SETTING DEFAULTS

When confcntlr starts, settings are read from the $HOME/.confcntlrrc file, or from the defaults file in the home directory that is specified with the -f option. If there is no defaults file, the program supplies the values and displays a notification panel. When you quit the program, if values are different from those at startup, a panel will appear to ask whether you want to save the changes. Click on "Save" to update the defaults file or click on "Don't Save" if you do not wish to update this file.  In version 0.4.1 and higher, changes are categorized as:  conference information, video/audio settings, authorization list, and security features.

If you do not want to get warnings when a remote user mutes or unmutes the audio input device, edit the "mutewarning" entry to read:  mutewarning# 0

In order to associate a quality value with a specific format for the video, the numeric value can be edited in the $HOME/.confcntlrrc file in the following lines:

*vic.jpeg# xxx
*vic.h261# xxx
*vic.nv*# xxx
WARNING!

If the format of the defaults file is not held to strictly, the entry will not be read!  Values for the authorization list in the Security window are specified in the "authorizationList#" entry.  Values are in the format: user@host. An asterisk means 'any'; for example, *@host means 'any user at host'.  (The .ccauth file used in versions earlier than 0.4.1 is obsolete.)

As described in the vic and vat documentation, both of these tools allow user customization by specifying tcl commands in a $HOME/.vic.tcl (or $HOME/.vat.tcl) file and in a script that can be specified with the "-u" command line option. Although it is not required, a "user_hook" procedure can be included in these files. When confcntlr starts a tool, it writes a script with a user_hook procedure and starts the video and audio with the "-u" option. Since this script is executed AFTER the $HOME/.vic.tcl (or $HOME/.vat.tcl) scripts, the user_hook procedures in the $HOME/.vic.tcl and $HOME/.vat.tcl files will be overridden. To have them execute, rename "proc user_hook" to "proc confcntlr_hook" in the $HOME/.vic.tcl and $HOME/.vat.tcl files.

If there is a user_hook procedure but no confcntlr_hook procedure in a $HOME/.vic.tcl or $HOME/.vat.tcl file, you will get a warning panel one time only, the first time a session is started.
 

SESSION DIRECTORY SERVICES

sdr will launch confcntlr if you have the appropriate plugin.

BUGS

confcntlr may "freeze" if an attempt is made to connect to a remote host that is not operational. In this case, end the program by clicking on the small square in the top left corner of the main window, choose "quit", and then restart the program.

Versions 0.3 and 0.4 are not fully compatible. Confcntlr v0.3 may not start a remote tool with the values specified by v0.4 and v0.3 may not be able to obtain the settings on v0.4. To avoid this problem, it is necessary to "Get Remote Settings" for a contact host (which gets the remote version number).

AUTHORS


 
Marcia Perry (mperry@george.lbl.gov), Lawrence Berkeley Laboratory, Berkeley, CA

 
Deb Agarwal (deba@george.lbl.gov), University of California, Berkeley and Lawrence Berkeley  Laboratory, Berkeley, CA