HowTo Install Video Conference system on Nethserver

intermediate
draft
application

(Vincenzo Turri) #1

Some time ago I was looking for a program for Audio / Video Conferencing Free. the unique features required: the server had to be in my local network.
After much research I chose Openmeeting

“Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming.” (source http://openmeetings.apache.org/)

At first, the installation was done on ubuntu server 10. Now I installed on Nethserver 6.6.

I collected documentation from various sites and I wrote my how to replicate the operation.
The installation requires several steps. Copy following commands in a shell (putty)
If you want, you try it in a test server.

Let’s start
###Create temporary folder:###

cd 
mkdir tmp
cd tmp

###System Update:###

yum update

###Install Yum Utils###

yum install yum-utils 

###Install MySQL (if not present):###

yum install nethserver-mysql

Enable epel repository

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm

Enable rpmforge repository###

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

###Installation package for decoding audio / video:###

yum install  nasm libjpeg giflib ghostscript  unzip libtool bison ImageMagick file-roller unzip yasm x264 lame opus sox

###Install LibreOffice ot open Office documents:###

yum install libreoffice libreoffice-base libreoffice-core libreoffice-draw libreoffice-headless libreoffice-impress libreoffice-writer

###Install Adobe:###

wget http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
rpm -Uvh adobe-release-x86_64-1.0-1.noarch.rpm

alternatively with repository

rpm -Uvh http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
yum install flash-plugin
yum-config-manager --disable  adobe-linux-x86_64

###install vlc###

wget http://pkgrepo.linuxtech.net/el6/release/linuxtech.repo
cp linuxtech.repo /etc/yum.repos.d
yum install vlc

###Install java ###

yum install java-1.8.0-openjdk icedtea-web

select new java version (/usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java) with:

update-alternatives --config java 

if you use a different java version correct the name1.8.0 in 1.8.X**

###Install FFMpeg:###

yum install ffmpeg

###Install jod converter###

wget http://jodconverter.googlecode.com/files/jodconverter-core-3.0-beta-4-dist.zip
unzip jodconverter-core-3.0-beta-4-dist.zip
cp -Rf jodconverter-core-3.0-beta-4 /opt/jod

###Disable epel, rpmforge-release and linuxtech-release repository:###

yum-config-manager --disable epel
yum-config-manager --disable rpmforge-release
yum-config-manager --disable linuxtech-release

###Create Openmeeting DB ###

mysql -e "create database meeting DEFAULT CHARACTER SET 'utf8';\
GRANT ALL PRIVILEGES ON meeting .* TO 'openmeetings'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;" 

(in this example i create a database named meeting and a user named openmeetings with password = password)

###Install openmeeting###

mkdir /opt/red5
cd /opt/red5
wget http://it.apache.contactlab.it/openmeetings/3.0.7/bin/apache-openmeetings-3.0.7.zip
unzip apache-openmeetings-3.0.7.zip
rm -f apache-openmeetings-3.0.7.zip
chown -R nobody /opt/red5

###Install java connector for mysql:###

wget http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.29/mysql-connector-java-5.1.29.jar
cp /opt/red5/mysql-connector-java-5.1.29.jar /opt/red5/webapps/openmeetings/WEB-INF/lib

cd /opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF
mv persistence.xml persistence.xml-ori
cp mysql_persistence.xml persistence.xml

vi /opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

change on line 81

, Url=jdbc:mysql://localhost:3306/openmeeting

to

, Url=jdbc:mysql://localhost:3306/meeting

where meeting is the name of the database.

change on lines 86 e 87

, Username=root

to

, Username=openmeetings

and

, Password=" />

to

, Password=password" />

where meeting and password are user and password of db meeting

###Create demon###

vi /etc/init.d/red5

and paste

PROG=red5
RED5_HOME=/opt/red5
DAEMON=$RED5_HOME/$PROG.sh
PIDFILE=/var/run/$PROG.pid

. /etc/rc.d/init.d/functions
[ -r /etc/sysconfig/red5 ] && . /etc/sysconfig/red5
RETVAL=0
case “$1” in
start)
echo -n $“Starting $PROG: “
cd $RED5_HOME
$DAEMON >/dev/null 2>/dev/null &
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo $! > $PIDFILE
touch /var/lock/subsys/$PROG
fi
[ $RETVAL -eq 0 ] && success $”$PROG startup” || failure $"$PROG startup"
echo
;;
stop)
echo -n $"Shutting down $PROG: "
killproc -p $PIDFILE
RETVAL=$?
echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG

;;
restart)
$0 stop
$0 start
;;
status)
status $PROG -p $PIDFILE
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
RETVAL=1
esac
exit $RETVAL

chmod +x /etc/init.d/red5

###Start MySql if still it is not:###

service mysqld start

###Start OpenMeeting###

/etc/init.d/red5 start

…wait 30 seconds. For debug use:

cd /opt/red5
./red5.sh

###Configure firewall:###

config set OpenMeeting service status enabled TCPPort 5080,1935,8088 access private 
signal-event firewall-adjust

For debug disable firewall:

/etc/init.d/iptables stop

Remember to restart it after debug!!!
###Now open in your browser:###
http://nethserver_name:5080/openmeetings/install

compile all form, remember the path of programs:
swftools_path = /usr/bin
imagemagick_path = /usr/bin
office.path = /usr/lib/libreoffice
office.path (64bits) = /usr/lib64/libreoffice
jod.path = /opt/jod/lib
sox_path = /usr/bin
ffmpeg_path = /usr/bin

###At the end click Enter the Application and sart###
Any suggestion or correction is welcome


Building Docs Team
(Bogdan Costin) #2

Very nice HOW-TO!
Keep up the good work!

Br
Bogdan


(Alessio Fattorini) #3

Good work! Really!

Just two hints:
could you format properly the code using “preformatted text” button?

Can you use this way?
http://docs.nethserver.org/projects/nethserver-devel/en/latest/services.html#add-a-new-network-service


(Artem Fedai) #4

config set OpenMeeting service status enabled TCPPort 5080 UDPPorts 1935,8088 access private
signal-event firewall-adjust


(Vincenzo Turri) #5

Thanks @alefattorini @Nas I just corrected my post


(Artem Fedai) #6

@enzoturri are you shure that only TCP port must be opened ?


(Vincenzo Turri) #7

Yes . I made a mistake in the first howto


(Artem Fedai) #8

Great work!


(warren_midgley) #9

This is awesome

So have all the modifications and changes been made to the full HowTO?


(Vincenzo Turri) #10

Yes,I edited the first post


(warren_midgley) #11

Brillaint

Thank you @enzoturri


(Vincenzo Turri) #12

:smile:. Thanks. if you try it let me know if you have problems in order to improve the howto


(Stefano) #13

first of all, thank you for your effort and howto…

IMHO there are many things that need to be modified…

First of all… installing dev tools (compiler) on a exposed to wan server is a bad thing…
if you need to compile something, create another machine, install there all you need, compile and then copy the files on your server… this is one of the first rule to follow if you want to connect a server to internet

that said, you compile too many things… that’s bad… remember you’re using a NS / CentOS distro, so a distro that use packages…
if you need something, you’d better to search an rpm… I’m quite sure that many of the sw you compile are available as rpms too…
that’s necessary to be able to maintain and update your server in an easy way… or, at least, to clean up it when you want to uninstall sw.

if you don’t find a suitable rpm for centos/rh, use rpmfind to find the same package for anoter rpm based distro, download the src version, adapt .spec file and build your rpm… it’s easy (compiling all the packages you need listed in your howto is way too difficult)

finally, whan you approach to an howto for NS, you have to think in terms of db values, templates, fragments and events… so, no direct edit of conf files nor firewall/iptables rules…

you’ve to think that the day you decide to move your server to another hw or you need to restore a backup, everything should be available in rpms and included (data and conf) in your backup.

please, don’t get me wrong and no intention to be rude, but one aim of NS is to be easily mantained and restored… you (generally speaking) must think in this terms.


(Artem Fedai) #14

Yep I agree with @zamboni, in side that it hardly implement in template ! but it is a great work that have been made! And if it is second or backup server it could be implemented , but you should not do this on GW server or production :slight_smile:


(Vincenzo Turri) #15

You’re absolutely right.
To reach my goal I lost sight of the goal of NS ( simplicity )
I am looking for packages to change the howto

No problem , the observations are never wrong , but they help to improve the work .


(Alessio Fattorini) #16

Totally agree with @zamboni, I think we could work all togheter on this howto, it might be a starting ping, isn’t it?
I can wikify the first howto so everybody can contribute changing most controversial parts. What do you think @enzoturri?


(Alessio Fattorini) #17

Just added “drafts” tag as well


(Vincenzo Turri) #18

Great idea @alefattorini . The more the merrier


(Vincenzo Turri) #19

I updated the documentation removing dev tools installation. Many packages are available through rpm.
Now I have to modify it to use the fragments


(Alessio Fattorini) #20

Good, I just wikified the first post