NAME mmcc - X-based multimedia conference control program SYNOPSIS mmcc [ -autono | -autoyes ] [ - autosend ] [ - display xdisplay ] [ -f setupfile ] [ -locttl ttl ] [ -mcast ] [ -n name ] [ -p port ] [ -play soundfile ] [ -rsvp [ rsvpfile ] ] DESCRIPTION Mmcc is a session orchestration tool that provides point- to-point or multipoint teleconferences. It allows a caller to explictly invite others to participate in a conference, and alerts them to accept or decline. It automatically spawns underlying audio, video and groupware programs among members of a session, then tears them down at session com- pletion. Mmcc will distribute a session key for confiden- tial sessions. In this preliminary version, the key is sent in the clear, so it is not secure, but future versions will use Kerberos or certificates for secure key distribution. By default, mmcc brings up the LBL visual audio tool, vat(1), and offers the option to start Xerox PARC's network video program, nv(1), and LBL's whiteboard, wb(1). Mmcc aims to supplement the large open-style sessions sup- ported by the existing version of LBL's session directory tool, sd(1). It complements the hailing-channel approach of public sessions with a more private session style for smaller conferences. Thus, session advertisement is inter- nal to the group of participating conferees. Mmcc listens on the default port 5050 for communication from peer mmcc's distributed throughout the Internet. The model is that each mmcc is associated with a single user at a par- ticular host and port, and that the program is expected to be left running while a user is logged in. The tool imple- ments distributed coordination among multiple peers, and relies on the initiating user being responsible for session establishment. The mmcc binary has been ported to Sparcs running SunOS 4.x or Solaris 2.x, SGIs running IRIX, HPs running HPUX, IBM PCs running Mach3.0, Dec 5000's running Ultrix V4.3, and Dec Alphas running OSF. However, it has been tested more thoroughly on some configurations than others. OPTIONS -autono Configure mmcc to automatically answer no to connection requests. -autoyes Configure mmcc to automatically answer yes to connec- tion requests. -autosend Automatically begin sending media at startup. -display The standard X switch to pass a display variable other than $DISPLAY. -f By default, mmcc establishes a database of remote user aliases and addresses by reading the file .mmccrc located in the home directory; the format of this file is described below. An alternate user configuration file, setupfile, may be given by using the -f option. If neither file is found, mmcc simply starts up with an empty user database. -locttl By default, the Local scope setting is mapped to a ttl value of 2. This mapping may be changed by specifiying a different value ttl to the -locttl option on the com- mand line. This is useful for those cases where the local site is configured with multicast thresholds that need a larger or smaller value. -mcast Use multicast addressing for point-to-point calls, as well as multipoint calls; otherwise unicast addressing will be used for point-to-point calls (but not for mul- tipoint calls). -n Associate an alias, name, with the local user. The alias is then inherited by any media agents (e.g., vat, nv, wb) spawned by the mmcc program. The use of aliases, in combination with the user configuration file, also allows multiple mmccs to be associated with and run simultaneously from the same machine (though different ports are required). If the -n option is used and mmcc finds a line in the user configuration file that uses the same alias name, the port number of that entry will be adopted. If the -n option is not used, but information pertaining to the local user matches an entry in the configuration file, the alias of that entry will be adopted for the local user. If no alias is specified for the local user, either on the command line or in the user configuration file, mmcc creates an alias from the user login id, hostname, and port if the port is non-standard. -p Use the port number, port, as the port on which mmcc listens for incoming requests, instead of the default port. The port may be given as a decimal or hexidecimal value (e.g., 0x13BA). -play By default, when a remote user requests your participa- tion in a conference mmcc double beeps to get your attention. However, you may configure it to play a sound file to get your attention instead, either by placing a sound file called .mmcc.au in your home directory, or by using the -play option followed by the name of an audio file, soundfile, on the command line. Mmcc spawns the program sfplay on the SGIs, aplay on the DECs, and play on the Sparc and other architec- tures; the play programs effectively read the .mmcc.au file. -rsvp Make resource reservations via RSVP. By default, qual- ity of service options and associated flowspecs are expected to be read from the file .mmcc.rsvp in the home directory, but a substitute file rsvpfile may be specified after the -rsvp option on the commandline. Quality of service choices appear both on the Connect panel and under the Modify button. [Only available with the experimental binary] MAIN PANEL CONTROL BUTTONS Connect Click on Connect in the main mmcc window to initiate a session with remote users; a Connect panel will appear. A session name may be assigned by selecting (left click), then typing in the Session Alias field. If this field is left blank, the name of the session is automatically generated and is based on the session initiator's alias. Specify a session encryption key by left clicking, then typing in the Key field. The text input fields support a small set of emacs key bindings; ^A (beginning of line), ^E (end of line), ^F (forward), ^B (back), ^D (delete forward), ^K (kill to EOL). Under the Participants list, use the left mouse button to click on the aliases of any remote users who should be included in the session. Repeated clicking on the same user's name toggles the selection. To include a user not in your user configuration file, type in the Add field at the bottom of the Participants list; the fields correspond to the fields of the user configura- tion file. Only the user and addr fields are required. If unspecified, alias defaults to user@addr, or user@addr:port if the port is non-standard. If unspecified, the port defaults to mmcc's default port. A port may be entered as decimal or hexidecimal (e.g., 0x13BA). When the entry is complete, simply hit <Return> to enter it in the participant list and select it. There currently is no automated way to save new participant entries in the user configuration file, but we would like to add this in the near future. Under the Media list, click the left mouse button to select the media to include in the session. By default, Audio is included. Currently, the choices Audio, Video, and Groupware map to the programs vat, nv, and wb. Each media has its own QoS (quality of ser- vice) setting, as well as a Scope (ttl). The QoS choice is experimental and is presently only in service for audio (e.g., "High", "Medium", and "Low" map to audio encodings pcm2, idvi, and gsm respectively) and video (e.g., "High, "Medium", and "Low" map to 128kbps, 92kbps, 56kbps). The default audio and video QoS are set to "High", pcm2 for audio and 128kbps for video. To change a setting, click on the QoS field associated with the desired media and select from the menu of choices. The Groupware field has only one setting, which is "NA" for not applicable. Scope choices exist for all three media; "Local", "Site", "Region", "World" map to ttl values of 2, 31, 63 and 127. The default setting for scope is "Local" or a ttl of 2. A different mapping for "Local" (e.g., a ttl of 15) may be set on the command line using the -locttl option. Video and Groupware include a scope setting of "Same", which means to use the same value as appears for Audio. A "manual" option also exists, where a ttl value between 0-255 may be entered. Be aware that a ttl value of 127 or greater constitutes an Internet-wide call, and that there are certain combina- tions of ttl and media that mmcc considers legal but anti-social: non-gsm Audio with a ttl above 191, and Video with a ttl above 127. Mmcc produces a pop-up warning message that you will have to answer before the session will be initiated. These warnings exist only when multicast is being used. Mmcc must be running on a remote user's workstation in order to rendezvous with that user. The mmcc window may be closed to place it out of view when it is not in use. Any incoming requests will automatically re-open the window. Using the left mouse button, click on the "CREATE" but- ton to initiate the session, or on "Cancel" to cancel the request. Disconnect Disconnect from the session highlighted in the Session scrolling window. If only one session exists, then mmcc deletes that session without it having to be highlighted. When a user disconnects, the associated vat, nv and wb also get disconnected. Modify Invite additional conferees, Join an on-going session, place a session on Hold, Merge multiple sessions, con- duct a Sidechat with a subset of a session's partici- pants, or modify the Quality of Service (QoS). Only QoS is currently operational, and only in the RSVP experimental binary. Config Show the local user's default settings and permit changes to these defaults. Not operational just yet. Log Display/undisplay the log of error and warning messages produced by mmcc during operation. Status Display/undisplay membership and media information associated with the session highlighted in the Session scrolling window. If only one session exists, then mmcc displays/undisplays the status for that session without it having to be highlighted. Status includes the list of session participants, as well as the ses- sion alias, session key, media included, their multi- cast or unicast addresses and port numbers, ttl's and QoS choices. The status information is updated dynami- cally, and disappears automatically when the session is closed. CONFIGURATION FILE A sample configuration file: #alias login hostname [port] Alex graham bel.isi.edu "Dr. J" jirving hoop.nba.com Curly cstooge cyclone.isi.edu 5754 Moonbeam zappa palmtrees.usc.edu Daffy dduck 128.9.160.400 A "#" at the beginning of a line indicates a comment. The alias field refers to the nickname of the user, which may be multiple words if enclosed in double quotes. The login is the user's login id, the hostname is the internet name or address of the user's workstation, and the field port indi- cates the port at which mmcc resides and is an optional entry. If port is omitted, mmcc's default port value is used. Again, the port may be specified as a decimal or hex- idecimal value. There is the potential for host name reso- lution complications in the user configuration file; in those cases, host addresses may be used instead. However, mmcc will complain at startup time if it has trouble with an entry in the configuration file. Eventually we hope to sup- port a multicast-based dynamic user registry. There is a public user configuration file that is maintained in the file ftp.isi.edu:confctrl/.mmccrc, and that will allow you to bootstrap with other mmcc users. To add (delete) yourself to the public registry send an e-mail mes- sage to <schooler@cs.caltech.edu> with the Subject field "Add to .mmccrc" ("Delete from .mmccrc"). The content of the message should be in .mmccrc format. Eventually we hope to support a multicast-based dynamic user registry. EXITING MMCC Type "q", "Q" or "^C" anywhere over the main mmcc panel to exit the program. Alternatively, if running OpenWindows, the "Quit" option in the frame menu may be used to exit. If the Connect panel is open, it will have to be closed before the program will exit. FILES ~/.mmccrc User configuration file ~/.mmcc.au Sound file used as "ring" tone ~/.mmcc.rsvp RSVP flowspec descriptions SEE ALSO nv(1), vat(1), wb(1), sd(1). See also aplay(1) on the DEC machines, sfplay(1) on the SGIs, and play(6) on the Sparcs. Note that the mmcc windows are of Xresource type "Mmcc". AUTHORS Primary author: Eve M. Schooler <schooler@cs.caltech.edu> of Caltech and USC/Information Sciences Institute, Marina del Rey, CA. Tk/Tcl GUI author and machine-specific ports: Joe Touch <touch@isi.edu> of USC/Information Sciences Institute, Marina del Rey, CA. Steve Casner <casner@isi.edu> of USC/ISI has provided count- less suggestions for improvements, not to mention bug reports. The idea for a Star Trek ring sound was copied from Bellcore's original Cruiser/Touring Machine software. CAVEATS For multiparty sessions, mmcc spawns programs that rely on the presence of an IP multicast kernel, and if communicating with remote users the presence of the Multicast Backbone (MBONE). This means situations may arise where ttl values are too small for all media to reach all participants. How- ever, this is not an issue for two-party sessions, where unicast is used instead (unless overridden by -mcast). Mmcc performs multicast address allocation for multiparty sessions; it randomly chooses an address in the range above 224.2.128.0. In the current release, all media agents (nv, vat, wb) share the same multicast address, though this is being rethought to allow the delivery trees to be pruned separately, on the assumption that not everyone will receive the same media. In addition, mmcc currently selects a separate random port in the range above 7000 for each of the media programs; there may be motivation to change this in subsequent releases to a single port to allow easier moni- toring, passage through firewalls, and possibly classifica- tion for QoS. Even if mmcc is configured to always use multicast for the underlying programs that it spawns, mmcc itself uses unicast UDP packets to rendezvous with peers. Unicast addressing may pose problems for sites with firewalls. Multicast addressing may pose problems for sites with firewalls. Mmcc relies on the inclusion of vat, nv, wb in the search path of your shell environment. Similarly, if you use the option to play a sound file when someone calls you, then your search path must also include the play program specific to the machine on which mmcc is running (see the -play option). The user login id is not validated. If the audio device is locked by another audio-related pro- gram, mmcc will be unable to play the designated sound file, but will double beep instead. In either case, a REPLY REQUESTED pop-up will appear. If you exit out of mmcc while still in conference or in some transitional state, mmcc will ask for confirmation. If you go ahead anyway, remote sites may end up with incorrect state information about the local site. Timeouts should eventually resolve the state mismatches. The -autosend option is experimental. As a first effort toward cross-application communication, mmcc sends nv Tk/Tcl ipc commands, whereas it resorts to command line options for vat. The main mmcc panel cannot be resized yet. The -rsvpon option requires an RSVP-capable kernel. Known bug: when multiple users at same <address, port> included in same session. ALPHA RELEASE This is the alpha release of this software! It is available via anonymous FTP from ftp.isi.edu:confctrl/mmcc/mmcc- {sparc,sgi,dec5k,decalpha,intel,hp}.tar.Z. There are many things missing that we plan to support; all the items in the GUI for which there is an external button or menu but no underlying function, Modify scenarios (invites, joins, add media, change parameters), more dynamic user configuration files (save, restore, modify), group aliases, additional underlying media programs (pvp, ivs, nevot, etc.), user- tailored Tk/Tcl extensions, better timeout configurability, offer command line options as Xresource variables. CAUTION Please note that the Internet does not have sufficient capa- city to act as a replacement for the telephone network, so mmcc and the underlying media tools should be used judi- ciously. The audio and video traffic will not slow down the way TCP traffic will, so if multiple calls are placed simul- taneously over the same link, severe congestion could result. In particular, please limit the use of multicast (sessions with more than two parties) with "World" scope on MBONE during major events as advertised in sd and on the rem-conf@es.net mailing list. Two party unicast calls will have less impact, but still could overload links that are used in the MBONE. For more information regarding the MBONE, see the frequently asked questions file ftp.isi.edu:mbone/faq.txt. BUGS There are probably many. Any bug reports, suggestions, and comments, are most welcome and should be sent to <schooler@isi.edu> or <touch@isi.edu>.