= Media Server (RMS) Installation Guide = Dolphin comes with a free Media Server software (formerly Ray Media Server - RMS), based on open-source [http://osflash.org/red5 Red 5]. Media Server is required for media streaming features of some Dolphin modules. Some hosting providers already have it installed, but you may need to install one yourself if you plan to use Dolphin with media streaming. ---- == Start == * Obtain SHELL access details for your server. * Log into your shell account using your favorite SSH client (UNIX) or use a Remote Desktop Connection with your server (WINDOWS). '''Note''': You need the ports '''1935''', '''1936''' and '''5080''' to be opened/enabled in your firewall or iptables. ---- == Choose a Folder to Install Media Server (UNIX) == * Choose the folder where RMS will be installed to. You can create a new separate folder for that. It doesn't matter where you create this folder but remember that if you want to prevent the folder from being accessed from a browser you should create it in the root directory of your hosting account (/) or your home directory if root is not accessible or writable ('''/home/myaccount/'''). * For the purpose of this Installation Guide we assume you have created "ray_server" folder inside "/opt" directory. Now the absolute path to your Media Server folder is '''/opt/ray_server/'''. ---- == Uploading Files == * [https://www.boonex.com/downloads Download] the latest Media Server application suitable for your operating system (it will be an archive for UNIX and an executable file for Windows). * If you're installing the UNIX version, unzip the archive and upload the contents of the extracted folder into the folder you created on your server (for example '''/opt/ray_server'''). * If you're installing the Windows version, run the downloaded executable file on your Windows server. If you have follow the wizard's instructions Media Server would be installed by default at '''C:\RMS'''. ---- == Configuration == Make the following changes to the files inside the Media Server directory: 1. '''access.dat''' - input all domain names which will be allowed to access RMS. Every domain name should be written on a separate line and should not contain "!http://" and "www", just '''yourdomain.com'''; 2. '''red5.sh''' (UNIX) - set the value for '''JAVA_HOME''' variable. It should be the path to the folder where JRE is installed. For example: {{{ JAVA_HOME=/opt/ray_server/jre1.x; }}} 3. '''run_daemon.sh''' (UNIX) - set the value for '''RAY_SERVER_PATH''' variable. It should be the path to the RMS folder on your server. For example: {{{ RAY_SERVER_PATH=/opt/ray_server; }}} ---- == Permissions == * Now you have to add "executable" permissions to all the '''*.sh''' files inside Media Server directory. You can do it by invoking the following command (UNIX only): {{{ chmod -v 777 *.sh }}} Make sure your current directory is the Media Server folder. '''Note''': You can skip this step on Windows. ---- == Test Launch == * Now you can perform the test of Media Server functionality. UNIX - invoke command: {{{ ./red5.sh }}} WINDOWS - run (from Media Server directory): {{{ start.exe }}} You may get the following results: * '''If the server has been launched successfully:''' {{{ [INFO] 6413main:( org.springframework.web.context.ContextLoader.info ) RootWebApplicationContext: initialization completed in 84 ms [INFO] 6595 main:( org.mortbay.log.info ) StartedSelectChannelConnector @ 0.0.0.0:5080 [DEBUG] 6596main:( org.red5.server.Standalone.debug ) Startup done in: 6597 ms }}} * '''If your server doesn't have sufficient RAM or you have no permissions to start RMS''', you would see an output like this: {{{ Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. }}} ''Possible solution for UNIX-based operating systems only:'' Edit the file '''red5.sh'''. Find the line containing this text: {{{ export JAVA_OPTS="$LOGGING_OPTS $SECURITY_OPTS $JAVA_OPTS" }}} and replace it with: {{{ export JAVA_OPTS="-Xint -Xms8M -Xmx16M $LOGGING_OPTS $SECURITY_OPTS $JAVA_OPTS" }}} ''Try to restart the server now. If there are no errors, this is it! If some still appear, try to increase the numbers up to 16/32 respectively. If this brings no result, try to change your hosting or use a superuser (root) account for installation.'' ---- == Running Media Server == Cancel the execution of '''red5.sh''' or '''start.exe''' and run RMS '''as a service''' (background application). You can do it by: UNIX: {{{ ./run_daemon.sh }}} WINDOWS: {{{ start_service.exe }}} You can now execute the following command on UNIX-based OS to make sure that RMS has started: {{{ ps ax | grep red5 }}} The output should contain a line that looks like this: {{{ 18247 pts/0 Sl+ 0:55 /opt/red5new_555/jre1.x/bin/java -Djava.security.manager -Djava.security.policy=conf/red5.policy -cp red5.jar:conf:. org.red5.server.Standalone }}} If you don't see such a line, check '''red5.sh''' and '''run_daemon.sh''' for all the required changes (see '''Configuring RMS''' point above). On Windows you should run Task Manager and look for "javaw.exe" process to make sure the server has been started. * After you have successfully started RMS, enter '''Modules -> Flash Apps -> Settings''', tick the '''Use RMS''' checkbox and enter your RMS IP address in the '''RMS Address''' field. * After you save the settings by clicking the '''Save''' button the necessary changes will be made on the RMS side and it will become usable. ---- == Launching Media Server on Startup == * Now you should add a task to your server's startup file, so every time your server restarts, RMS could start automatically. On most Linux systems this file is '''/etc/rc.local'''. You should input the following lines in it: "cd path_to_rms" and "/path_to_rms/run_daemon.sh", where "path_to_rms" stands for the absolute path to Ray Media Server folder. For example: {{{ cd /opt/ray_server ./run_daemon.sh }}} '''Note''': on Windows machines the service will be installed automaticaly once you have run it for the first time. ---- == Base Settings for Media Server == * Now you need to enter the Ray Base (in Dolphin navigate to '''Plugins -> Ray Suite''') and specify your '''RMS Address''' and ports in the '''Ray Base Settings''' (by default you should specify '''1935''' for '''RMS Port''' and '''5080''' for '''RMS HTTP Port'''). Also make sure that the '''Use RMS''' checkbox is ticked. * If your RMS is inaccessible you will receive a notification about it after you have completed the previous step. In case of successful connection there will be no notification. ---- == Stopping_Starting_Upgrading Media Server == * UNIX (providing that Media Server is installed in the folder '''ray_server'''): {{{ ps ax | grep ray_server }}} Now notice the process ID which precedes the RMS startup string, for example: {{{ 24945 ? Sl 1052:57 /opt/ray_server/jre/bin/java -Djava.security.manager -Djava.security.policy=conf/red5.policy -cp red5.jar:conf: org.red5.server.Standalone }}} In this example, the first number ''24945'' is the RMS process ID. Now you need to kill this process by running the following command: {{{ kill -9 PROC_ID }}} where ''PROC_ID'' is the ID of the RMS process To start it again, run the '''run_daemon.sh''' file located in the '''ray_server''' directory: {{{ ./run_daemon.sh }}} * On '''Windows''' systems, you will have to open consequently '''Start -> Programs -> RMS -> Stop service'''. To start it again, open consequently '''Start -> Programs -> RMS -> Start service''' * To upgrade your current version of RMS, you need to stop the currently running RMS process, install the new version (see above) and start the process again. ---- == Changing Ports == When the default ports 1935, 1936 and 5080 are already in use by some application on your server, you can change them and start Media Server on different ports. To do so, you need to do the following: * Edit the file '''conf/red5.properties''' and replace all instances of '''1935''', '''1936''' and '''5080''' with different port numbers (you need to make sure that these ports are open). For example: {{{ rtmp.port=1935 }}} should be replaced with something like {{{ rtmp.port=10000 }}} * Edit the files '''webapps/*/WEB-INF/red5-web.properties''' (where '''*''' stands for '''board''', '''chat''', '''global''', '''im''' and '''video''') and specify the port substituting '''1935''' after the IP address, for example: {{{ webapp.virtualHosts=192.168.1.1:10000 }}} in the '''video''' module you'll also need to specify an asterisk: {{{ webapp.virtualHosts=192.168.1.1:10000,* }}} * Now specify these ports in '''Admin Panel -> Plugins -> Ray Suite -> Settings''', where '''RMS Port''' should contain the number substituting the port '''1935''' and '''RMS HTTP Port''' should contain the number substituting the port '''5080'''.