Board800 Logo
Home  |   Start Drawing  |   Features  |   Buy Board800  |   FAQs  |   Contact
Board800 Installation Instructions

Download as PDF

Before we begin

  1. Once you purchase Board800, you will receive a 13 digit code
  2. Please visit http://www.board800.com/download and provide the 13 digit code as well as your e-mail address which you had entered while purchasing Board800
  3. You will see a page which will ask you the details of the Red5 Server (IP Address or Domain Name), and the link for downloading the whiteboard.swf file and the whiteboard.war file. Enter the domain name, and download both the files
In case you've misplaced the 13 digit code, please send an email to support@board800.com providing the e-mail address which you had entered while purchasing the application. The 13 digit code would be sent to the same e-mail address which was provided by you while purchasing the application, within 12-24 hours.

Installing Red5 Server

The following instructions assume that you are running a Debian based Linux distribution, such as Ubuntu. However, the instructions are generic in nature and conceptually would work similarily on all platforms.

  1. Red5 requires Java 1.5 at a minimum. On a debian based system, you can do the following using root privileges
    apt-get install sun-java6-jdk
  2. Download Red5 v0.9.1 from http://red5.org
  3. Follow the installation instructions as per Red5's documentation. Usually it involves just extracting the required files in a directory. Using root privileges, do the following
    mkdir /opt/red5
    tar -zxf red5-0.9.1.tar.gz -C /opt/red5
  4. Red5 needs port 5080, 5443, 1935 and 9999. Make sure those ports are available and not being used by other applications
  5. Open the file /opt/red5/conf/red5-common.xml in your favorite text editor, and modify the value for duration of checking .war files' availability for deploying. By default the value is 600000, which is 10 minutes. This means that Red5 would check every 10 minutes for the availability of .war files and then auto-deploy it if it finds any. Since we would want the auto-deploying to happen earlier, we can change the value to 60000, which comes out to be 1 minute.
    <!-- War deployer -->
    <bean id="warDeployService" class="org.red5.server.service.WarDeployer" init-method="init" destroy-method="shutdown">
       <property name="scheduler" ref="schedulingService"/>
       <property name="checkInterval" value="60000"/>
       <property name="deploymentDirectory" value="${red5.root}/webapps"/>
    </bean>
  6. Optional:: By default Red5 will take a minimum of 1 minute to deactivate a client which is not responding. You may want to reduce it depending on your requirements. To reduce it, modify the file /opt/red5/conf/red5.properties for
    rtmp.ping_interval=1000
    rtmp.max_inactivity=15000
  7. Now start Red5 server through its start script. Using root access, you may do the following. Windows users may want to use .bat file instead of .sh
    cd /opt/red5
    ./red5.sh &
  8. Now place the whiteboard.war file downloaded in the /opt/red5/webapps directory. Wait for a couple of minutes, and you will see that the whiteboard.war file has been deleted and in /opt/red5/webapps a new directory called whiteboard/ has been created.

Database Configuration

Board800 supports MySQL database. Other databases have not been tested, but would work without much difficulty.

Configuring MySQL

  1. Create a MySQL database named `Board800` and grant the necessary privileges. For example
    mysql> create database Board800;
    mysql> grant all privileges on Board800.* to board800@localhost identified by 'password123';
    mysql> exit;

    Then on the prompt, do
    mysql -u board800 -ppassword123 Board800 < /opt/red5/webapps/whiteboard/WEB-INF/sql_mysql.sql
  2. Now the database is ready. Next step is, letting Red5 know the database details. Copy the file whiteboard.db.properties.sample in WEB-INF directory to /opt/red5/conf and rename it to whiteboard.db.properties
  3. Using your favorite text editor, modify the file and enter the database username and password details.
  4. You may want to restart Red5 using the following
    cd /opt/red5
    ./red5-shutdown.sh
    ./red5.sh &

Using the whiteboard.swf file

  1. Board800 requires Flash Version 10 or above running on the client side. You may want to put additional checks regarding detecting the flash version available with the user accessing the whiteboard.
  2. The procedure for deploying whiteboard.swf file on your website is very simple and just like any other flash file setup.
  3. On your HTML page (we'll refer it as whiteboard.html), enter the following
    <object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab' height='580' width='720'>
    <param name='src' value="whiteboard.swf?scope=default" />
    <embed name='mySwf' src="whiteboard.swf?scope=default" pluginspage='http://www.adobe.com/go/getflashplayer' height='580' width='720'/>
    </object>
  4. There are Five Parameters that can be supplied to whiteboard.swf in the URL
    • scope : Scope is the unique name with which the board is identified. If you use Board800's free version available on this website, the scope can be referred as the 13 digit session name. By default, there's only one scope created with the name of default in the database for test purposes. For more scopes, you would need to add the required entries in the database.
      If using MySQL, use
      insert into b800_wb_basic (instancename) values('whiteboard/yourpreferredname');

      Example: If your preferred name is xanadu, then use
      insert into b800_wb_basic (instancename) values('whiteboard/xanadu');
    • port : The port on which Red5 server is running. By default it is 1935. If you change it, you may want to pass it as a parameter. The port has to be opened in the firewall. You can modify the port properties of the Red5 server by modifying /opt/red5/conf/red5.properties. Valid values are Numbers only.
    • proto : The protocol used. By default it is rtmp. If you wish to use rtmps or rtmpt, then just provide it as a value. Valid values are rtmp, rtmpt & rtmps. You may need to modify your Red5 configuration to enable rtmpt and rtmps support.
    • wbwidth : The width of the canvas. By default it is 640 pixels.
    • wbheight : The height of the canvas. By default it is 480 pixels.

    An example is whiteboard.swf?scope=xxyyzz&proto=rtmp&port=443&wbwidth=900&wbheight=600

  5. Now visit http://yourdomain/whiteboard.html. You should see the whiteboard and a Congratulations message.

Enabling 'Insert Image from URL' functionality

  1. Due to the security restrictions in Flash, it is possible to add an image from external URL, but it cannot be saved as an Image by clicking on 'Save Image' function on Board800. To enable 'Insert Image' functionality, you have to provide the following scripts on your server.
  2. In the table b800_wb_config, there are two rows which specify which script to use to enable adding of images.
  3. The configname filepath can have two values: location to a script on the same server on which whiteboard.swf resides, or an external server.
    1. Location of the script on the same server (PHP Example)
      • Assuming that the file name is getdata.php, put the configvalue as /getdata.php?img=
      • The getdata.php file would have the following content
        <?
        $filepath = urldecode($_GET[img]);
        $failurl = "http://".$_SERVER[HTTP_HOST]."/images/failed.png";

        $ch = curl_init();
        curl_setopt ($ch, CURLOPT_URL,"$filepath");
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
        $result = curl_exec ($ch);
        $content_type = strtolower(curl_getinfo( $ch, CURLINFO_CONTENT_TYPE ));
        curl_close ($ch);

        // Only allow jpeg, png, gif
        if ($content_type == 'image/png' ||
             $content_type == 'image/jpeg' ||
             $content_type == 'image/gif')
        { echo $result; }
        else {
             $ch1 = curl_init();
             curl_setopt ($ch1, CURLOPT_URL,"$failurl");
             curl_setopt ($ch1, CURLOPT_RETURNTRANSFER, true);
             curl_setopt ($ch1, CURLOPT_SSL_VERIFYPEER, false);
             $result1 = curl_exec ($ch1);
             curl_close ($ch1);
             echo $result1;
        }

        ?>
      • You may want to specify the $failurl link so that an appropriate image is displayed in case the link has an error.
    2. Location of the script on another server (PHP Example)
      • Assuming the server name is http://files.testdomain.com and the script name is getdata.php, then put the configvalue as http://files.testdomain.com/getdata.php?img=
      • The getdata.php would have the same content as mentioned above.
      • The server files.testdomain.com should have a file named crossdomain.xml with the following contents
        <?xml version="1.0"?>
        <!-- This is to be placed in the root directory of server which has the image files -->
        <cross-domain-policy>
        <site-control permitted-cross-domain-policies="all"/>
        <allow-access-from domain="*" to-ports="20-65535"/>
        </cross-domain-policy>
      • It is important to note that crossdomain.xml should be accessible by visiting http://files.testdomain.com/crossdomain.xml
  4. The configname uploadlocation needs to have the link of the site which allows for uploading of images. If that site is not there, the button would remain disabled.

If you need any help regarding installation, please send a mail to support@board800.com.


Board800 featured on: