Note: You are currently viewing documentation for Moodle 2.1. Up-to-date documentation for the latest stable version is available here: Moodle Language Lab.

Moodle Language Lab

From MoodleDocs


This module is dependent on two server technologies apart from Moodle. I will attempt to describe as best I can how to install both the Red5 Server and the Palabre server. These are based on Ubuntu 10.04 LTS as this is the server uses. Generally speaking, these instructions should work on most linux distributions. No instructions will be provided (yet) for Windows based servers as they are straight forward.

Important Notice - May 18, 2012

Version 3.0 will be coming out shortly. We are currently working on it and approaching a beta release for May 25th. The whole interface has been revamped. Apart from the recorder being in flash, the rest of the interface in now HTML5 Based. Anyone interested in testing the beta version can communicate with me directly through messeaging.

Red5 Installation

These are based on instructions by Nicky Hajal from the following site: However, there are differences and I strongly suggest you follow these steps.

Make sure that you have the latest updates for your ubuntu server. I am using Ubuntu Server 10.04 LTS 64 Bit. To do this follow these steps.

sudo apt-get update
sudo apt-get upgrade

ONce this is done, you have to make sure that the following repositories are available. If not, add them to /etc/apt/sources.list

deb lucid multiverse
deb-src lucid multiverse
deb lucid-updates multiverse
deb-src lucid-updates multiverse
deb lucid-backports main restricted universe multiverse
deb-src lucid-backports main restricted universe multiverse
deb lucid partner
deb-src lucid partner

At the command prompt type the following

sudo apt-get update

Install the following packages

sudo apt-get install java-package
sudo apt-get install sun-java6-jdk
sudo apt-get install sun-java6-jre

NOTE: Nicky also installs ant and subversion. However, these two packages are never used during the Red5 install process. Therefore, I am omitting these two steps.

Download Red5 version 0.8. Nicky installs version 0.9. This is not a recommended version for Language Lab.


If you would like to experiment with the most recent release of Red5, here is the link. Note that this version has not yet been tested.


sudo mkdir /usr/share/red5
sudo cp red5-0.8.0.tar.gz /usr/share/red5
cd /usr/share/red5
sudo tar xvfz red5-0.8.0.tar.gz

You can start Red5 by typing the following command.

sudo sh

In your browser, goto http://your-red5-server-address:5080/ You should see the Red5 default page.

This is not ideal because as soon as you press CTRL-c to return to the command prompt, Red5 turns off. You also don't want to log in to your server everytime you reboot just to turn on Red5. In order to have Red5 start as a "service" when ever you boot, do the following.

Create a file based on this boot script: in your home directory. Then follow these steps.

sudo mv red5 /etc/init.d/
sudo chmod a+x /etc/init.d/red5

Start the server by typing the following

sudo /etc/init.d/red5 restart

You can now use CTRL-c to returm to the command prompt without turning off Red5. However, this script will not boot when you reboot your server. You must perform this final step.

sudo update-rc.d red5 defaults

Now reboot your server to make sure Red5 starts

sudo reboot

Installing OflaDemo

Once Red5 is installed, you still need to install OflaDemo in order for the language lab to work.

Goto your Red5 server with a browser. http://your-red5-server-address:5080/

Click on "Click here to install demos". In the table of demos, click on OflaDemo and then the Install button.

If it fails to install try changing the permissions on the following folder

sudo chmod 775 -R /usr/share/red5/webapps

Try installing again.

You should now have a fully configured and functional Red5 Server.


A new version of Language lab is now available. This new version does not depend on the Palabre XML Socket Server. You can downlod the new version at

Thank you for your patience.

Red5 Adapter Plugin (RAP)

The Red5 Adapter Plugin is used to manage streamed files on the Red5 server. When ever a teacher or a student records themselves, a .flv file is created on the Red5 Server in the oflaDemo/streams folder. Without the RAP, such as earlier versions of Language lab, the stream folder would fill up with, often, unnecessary files or previous files from past courses. This resolves the issue by letting Moodle interact directly with the Red5 server. Future versions of RAP will also be able to send files to Moodle when creating backups. Other useful functions will be added as requests come in. NOTE: RAP does not need to be installed or functional for the language lab to work.

RAP Installation

Installing RAP is quite simple. Keep in mind that RAP is installed on the Red5 Server, NOT THE MOODLE server. You will need a web server such as Apache or IIS, if installing on Windows, on your Red5 server. The examples used within this document, are with an ubuntu 10.04 LTS server. This, however, should work on any server that supports PHP 5.x.x.

I will assume that you have already installed the the web server. In my case Apache2 with PHP5.

Although not required, installing an SSL certificate for your web server makes it more secure. This can be a self signed certificate. You can follow these instructions if you need help creating such a certificate.

  1. Inside the mod/languagelab folder in Moodle, you will find another folder called RAP. Copy the contents of the RAP folder into the default web folder on the Red5 Server. Usually something like /var/www
  2. Copy the config.xml file to a folder outside of the web folder. This is for security reasons. You wouldn't want someone to access your config file.
  3. Edit the config.php file. Change the $CFG->xml_path= value to the path value of your config.xml file.
  4. Rename the adapter.php file to what ever name you want. Remember to keep the .php extension. It makes the system more secure.
  5. Login to your Moodle server as an administrator. Enter into the Language lab settings by going into the Settings block under Site Administration->Plugins->Activity Modules->Language lab (If you are hosting a Red5 server for someone else and you do not have access to their Moodle server, send the Moodle administrator this information.)
  6. Under File name for the Red5 Adapter Plugin, enter the new name that you have given the adapter.php file WITHOUT the .php extension. For example, if you have changed the name to mynewadapter.php, you would enter mynewadapter
  7. Check the Secure access to Red5 Adapter Plugin if your server is using an SSL certificate. Again, not necessary, but it just makes the whole system more secure.

RAP: Edit config.xml

In the config.xml, you will find a default moodle tag. You must edit the following attribute values

serverAddress='IP or Domain name of Red5 Server' 

This is the IP address or Domain name of the Red5 server that you are installing the RAP. You can get this address from your Moodle Language Lab settings under Path to your Red5 server.

languagelabPrefix='Prefix from Moodle language lab setup'

This is the prefix found in the Moodle Language Lab settings under Enter a prefix for recorded streams.


This is the path to your oflaDemo stream folder. On ubuntu systems, this is usually /usr/share/red5/webapps/oflaDemo/streams Do not forget to add the end slash (/).

salt='a mix of letters/numbers/symbols'

This is used for security reasons. This password salt must also be entered in the Password salt value in the Moodle Language Lab settings.

Save the file.

If you are hosting more than one Moodle server with the Language lab, you can add another Moodle tag with the appropriately defined attributes. For example you could have your config.xml file look similar to the following.

   <moodle serverAddress='' languagelabPrefix='mdl_firstserver' streamFolderPath='/path/to/red5/oflaDemo/streams/folder/' salt='abcdefgh123456@#$'/>
   <moodle serverAddress='' languagelabPrefix='mdl_secondserver' streamFolderPath='/path/to/red5/oflaDemo/streams/folder/' salt='ijKLMNOpq09876*&%$'/>

You can check your configuration by running a test. Just point your browser to

Using the Language lab

Creating a language lab activity

As with all Moodle editing, you must first turn on editing. From the add an activity drop down menu select Language lab.

You may get a flash pop-up window. You must agree to use if you want to record yourself.

  • Activity name: Add a name for this activity
  • Description: This is where you explain what you want the students to do. Videos and audio files can be uploaded. If you did install the Language lab TinyMCE plugin, you can also record yourself.
  • Master track: A master track is an audio sample with blank spaces allowing students to record themselves during the blank spaces.

Simply press the round record button and record your exercise. For example, you could record the following exercise:

 Please say the word bonjour (leave a 5 second pause) Now, say the words bon soir (again, leave a 5 second pause)
 This recording will play back when the student presses the record button. During the 5 second pauses, the student can say the words and they will be recorded. As the teacher, when you listen to the student recordings, the Master Track will be played with the students response allowing you to easliy compare.
 Note: We had to integrate in this fashion because Flash does not allow pausing while recording.
  • Master Track (mp3 only: Similarily, if you have previous recordings in MP3 format, you can choose to upload the MP3 file and use it as the Master Track. If you do use the MP3 file, it is important that you check the following checkbox 'Use the Uploaded MP3 as Master Track.' Otherwise, the manually recorded track above will be used.
 If you have previously uploaded an MP3, but would like to use the manual recording, uncheck the checkbox from 'Use the Uploaded MP3 as Master Track.'
 Note: Once students have started submitting recordings, you will no longer be able to change the Master track.
  • Use the Uploaded MP3 as master track: If you did upload an MP3 file, you must check this box in order to use it. Otherwise the recorded file will be used.
  • One recording per student: Check this box if you want students to only submit one recoding. The default is the ability for them to submit multiple recordings per excercise.
  • Available From/ Due Date: Choose the date that the students can record. Once they are past the due date, students will still have access to the activity, but they will not be able to record.
  • Allow video: This feature was added in for those who teach sign language. It can be used for other reasons too. If checked, Video and audio will be recorded. Note that you do need a web cam for this feature to work.
  • Use grade book: By default, no grading will be given for language lab activities. That way you can create as many language activities for exercise purposes, without filling up your grade book. If you do want to grade this particular activity, check this box.
  • At this point you can save and return to course or save and display. Without any student submissions, you will not be able to see anything.

Student view

Teacher view

Class monitor