Notes for OpenMCU
-----------------

Roger Hardiman, 20 June 2001


1. Introduction
---------------

OpenMCU is a simple Mutli Conference Unit using the H.323 protocol. It requires
the OpenH323 library - see http://www.openh323.org for more information.
It is known to run on Linux and FreeBSD and should run on any platform supported
by OpenH323.
If you run the program sucessfully on another platform them please
email to openh323@openh323.org


2. Features
-----------

The code contains the following features:

- requires no codec hardware to operate

- supports G.711, GSM MS-GSM and LPC-10 audio codecs

- supports H.261 video codec

- can accept multiple connections simultaneously

- several different conferences can be talking place at the same time
  using the 'rooms' feature

- display statistics on calls in progress

- initiate calls from the MCU to remote endpoints

- audio loopback mode echoes back your audio in a specific room. Ideal for
  setup of audio hardware and testing network performance.


3. Operation
------------

OpenMCU works by setting up a H.323 listener process, and then waiting for
incoming connections.
Whenever an incoming connection is established, it determines which conference
is required via the 'rooms' feature and adds the call to that conference.
You call the MCU using the format "room_name@server_name"
eg using ohphone I type
  ohphone meeting1@mcu.myservers.com

New rooms are created automatically and there is a default room for
people who do not specify a room or cannot specify a room (eg NetMeeting).
The default room is called room101.

You hear the audio from the other users, but only see the video from the
four users activly talking.

4. Command line options
-----------------------

OpenMCU has the following command line options:

  -u --username str     : Set the local endpoint name to str
  -g --gatekeeper host  : Specify gatekeeper host.
  -n --no-gatekeeper    : Disable gatekeeper discovery.
  --require-gatekeeper  : Exit if gatekeeper discovery fails.
  -i --interface ip     : Bind to a specific interface
  --g711frames count    : Set the number G.711 frames in capabilities (default 30)
  --gsmframes count     : Set the number GSM frames in capabilities (default 4)
  -t --trace            : Enable trace, use multiple times for more detail
  -o --output           : File for trace output, default is stderr
  --save                : Save arguments in configuration file
  -v --video            : Enable H261 video handling
  --videolarge          : Set the video size from normal (176x144) to large (352x288).
  --videotxquality n    : Select sent video quality,(def 9). 1(good)<=n<=31
  --videofill n         : Select number of updated background blocks per frame 1<=n<=99 (2 def)
  --videotxfps n        : Maximum number of transmitted video frames per sec 1<10(def)<30
  --defaultroom name    : Connections without a room name will join this room
                          (Default room is room101)
  --no-defaultroom      : Reject connections with no room specified
  --disable-menu        : Disable the command line menu
  --audio-loopback name : Users hear their own voice echo'ed back in this room
                          (Users also hear their own voice in room 'loopback')
                          (Use the name "*" to enable loopback in all rooms)
  -h --help             : Display this help message


Generally it is sufficient to use just the -n and -v options
eg
openmcu -n  (audio conference unit, with no gatekeeper)
openmcu -n -v (audio and video conference unit, with no gatekeeper)


5. OpenMCU menu options
-----------------------
When running openMCU, the following menu options are available (unless
the --disable-menu has been specified on the command line)

 ? : Print this help message
 v : report which connections are at each video corner
 m : make a call
 x : Exit immediately
 s : Report statistics
 z : Put message in log file (for debugging)


When making a call, the call will be added to the default room
(currently room101).

                              ------------------------
