Dokeos Red5 applications
========================

Table of contents
-----------------
1. Installation
1.1. Red5
1.2. Dokeos Red5 Application 

2. Configuration

2.1. How does it work ?
2.2. Recorder
2.3. VideoConference

3. Known issues and improvments


==


1. Installation

1.1. Red5

To install red5, please check the documentation related to your platform on the red5 website[1]. Below, we will suppose that red5 home 
directory is /opt/red5. If you run red5 under MS-Windows, change /opt/red5 by your installation directory, for example: D:\applications\red5.
From now on, we will refer to red5 home directory by $RED5_HOME.

[1] http://osflash.org/red5

1.2. Dokeos Red5 Application

To install either the recorder or the videoconference application, the only step that needs to be done is to copy the .war file in the $RED5_HOME/webapps directory.
You have to restart red5 to get the applications deployed inside red5. You can install both applications inside red5. They can run together
inside the same server without conflict.


2. Configuration

2.1. How does it work ?

War files are shipped with a bunch of default configuration files. Normally, you should never touch the files in the war file.
Upon startup, the applications are checking if any external configuration file can be found. If not, the application will be loading
the configuration files located in the war file, thus loading the default configuration.

Each application has one main configuration file that the administrator can customize. The location and the name of this configuration file can
be found in a resource file in the war file. This resource file is called either videoconference.propeties or recorder.properties.

One of the well-known issue here is that you have to recompile the application with other settings if you want to change
the configuration location and name. We will find a better solution for a future release.

The main configuration file is an XML file. Currently, there is no validation of this XML. It will probably be supported in a future release.

2.2. Recorder

The recorder configuration file is named recorder-config.xml. It has the following format:

<?xml version="1.0" encoding="UTF-8"?>
<recorder-config>
  <video-streams-dir>/opt/dokeos/recorded-streams</video-streams-dir>
  <vod-streams-dir>/opt/dokeos/vod-streams</vod-streams-dir>
</recorder-config>

video-streams-dir is the directory where the streams will be recorded.
vod-streams-dir is the directory where the streams will be found for playback.

We know the name of the parameters have not been chosen well. They will probably be changed in a future release.

2.3. Videoconference

The videoconference configuration file is named videoconference-config.xml. It has the following format:

<?xml version="1.0" encoding="UTF-8"?>
<videoconference-config>
  <server-keys>
    <server-key host="__test-cblue.dokeos.com_" key="0123456789abcdef0123456789abcdef" />
  </server-keys>
  <moderator-check-on-whiteboard>false</moderator-check-on-whiteboard>
  <video-streams-dir>/opt/dokeos/recorded-streams</video-streams-dir>
  <vod-streams-dir>/opt/dokeos/vod-streams</vod-streams-dir>
</videoconference-config>

server-keys contains a list of server-key tags.
A server-key is a parameter used for authentication. It helps in determining whether the client connecting to the server is authorized to connect to the server by sharing a common key. For a given server-key, you provide the hostname and the shared key. The host name has currently a very specific format. It must start with two __ and end with one _. This will probably be improved in the future.

moderator-check-on-whiteboard defines whether only the teacher or all people in the room have access to the whiteboard. This parameter is deprecated in videoconference 2.0.0. The value can be true or false. Any other strings different from true are considered false.

Video-streams-dir and vod-streams-dir are not used at all. See recorder config for more info.


3. Known issues and possible improvements

We are not living in a perfect world... Even if we make a lot of efforts to get an application flexible and easy to use, we still have a lot of
improvements to do. Here is a list of improvment to be done for configuration handling:

* Find a solution to get external config directory platform independant.
* Rename parameters video-streams-dir and vod-streams-dir to a more explicit name.
* Check whether hostname can be stripped of these underscores.
* Remove or integrate moderator-check-on-whiteboard.
* Add XML validation of the config file.
