Mappa visitatori

Linux counter

Cisco User Group

Accessi

TodayToday19
YeserdayYeserday233
This WeekThis Week1298
This MonthThis Month5595
All DaysAll Days781875
54.196.159.11
Guests 8
Registered Users 1
Registered Today 0
Installazione di OpenMeeting 1.6 su Ubuntu Server 10.10 PDF Stampa E-mail
(1 - user rating)
Scritto da Alessandro Pensato   
Giovedì 30 Dicembre 2010 13:45

Introduzione
OpenMeetings è un software nato da Sebastian Wagner, un ragazzo tedesco, di Stuttgart, laureato in economia informatica presso l’università di scienze applicate di Pforzhein. Iniziò il progetto come parte integrante di un altro pacchetto, ma poi decise di realizzarlo stand-alone, per poterlo utilizzare con tutti i portali e sistemi.

Il software è basato su due componenti:

  • il server: scritto in linguaggio java e integrato nell’ambiente Red5, server opensource per la gestione di streaming;
  • il client: scritto in linguaggio openlaszlo e utilizzabile su tutti i browser internet che supportano il plugin Flash(c) di Macromedia.


Il software è rilasciato dall’autore con licenza opensource (LGPL). Questa modalità ha permesso di  aumentare l’interesse attorno al prodotto facendo nascere una comunità che contribuisce a migliorare e implementare nuove funzionalità. Si sono sviluppate, inoltre, delle integrazioni con altre tecnologie già esistenti, ad esempio piattaforme di e-learning (Moodle, Dokeos, ..). La scelta di basare il client su un prodotto compatibile con il plugin di Flash permette di non dover far installare del software a chi si vuole collegare in videoconferenza, evitando così i conseguenti pericoli: fa uso della normale tecnologia già presente nella maggior parte dei personal computer. L’interfaccia client è stata personalizzata in 18 lingue.

Sito di riferimento del progetto è: http://code.google.com/p/openmeetings/

Installazione
Sono partito con un'installazione base di Ubuntu Server 10.10, alla quale vanno aggiunti i vari software a supporto di OpenMeetings.

Ecco come si presenta il mio file /etc/apt/source.list

nano /etc/apt/source.list
deb http://us.archive.ubuntu.com/ubuntu/ maverick main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ maverick main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ maverick-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu/ maverick universe
deb-src http://us.archive.ubuntu.com/ubuntu/ maverick universe
deb http://us.archive.ubuntu.com/ubuntu/ maverick-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ maverick-updates universe
deb http://us.archive.ubuntu.com/ubuntu/ maverick multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ maverick multiverse
deb http://us.archive.ubuntu.com/ubuntu/ maverick-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ maverick-updates multiverse
deb http://archive.canonical.com/ubuntu maverick partner
deb-src http://archive.canonical.com/ubuntu maverick partner
deb http://extras.ubuntu.com/ubuntu maverick main
deb-src http://extras.ubuntu.com/ubuntu maverick main
deb http://security.ubuntu.com/ubuntu maverick-security main restricted
deb-src http://security.ubuntu.com/ubuntu maverick-security main restricted
deb http://security.ubuntu.com/ubuntu maverick-security universe
deb-src http://security.ubuntu.com/ubuntu maverick-security universe
deb http://security.ubuntu.com/ubuntu maverick-security multiverse
deb-src http://security.ubuntu.com/ubuntu maverick-security multiverse


Una volta modificato come sopra, bisogna aggiornale l'elenco dei pacchetti disponibili, installare eventuali aggiornamenti e quindi riavviare il sistema prima di procedere oltre.

apt-get update
apt-get upgrade
apt-get dist-upgrade
reboot


Ora possiamo partire con le fasi di preparazione del nostro sistema, installando i vari software e tools necessari per il corretto funzionamento di OpenMeetings.
Cominciamo ad installare il supporto per le applicazioni Java, il serrver MySQL e varie librerie audio/video.

apt-get install -y sun-java6-bin sun-java6-jdk sun-java6-jre mysql-server openoffice.org-writer openoffice.org-calc openoffice.org-impress openoffice.org-draw openoffice.org-math imagemagick gs-gpl libart-2.0-2 libt1-5 zip unzip bzip2 subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev libogg-dev sox libvorbis0a libvorbis-dev libgsm1 libgsm1-dev libfaad2 flvtool2 lame libgif4
New password for the MySQL "root" user: pwdads31
Repeat password for the MySQL "root" user: pwdads31


Per alcuni software si rende necessaria l'installazione direttamente dai sorgenti e da pacchetti non presenti nei repository ufficiali.

wget http://old-releases.ubuntu.com/ubuntu/pool/universe/s/swftools/swftools_0.9.0-0ubuntu1~jaunty1_i386.deb
dpkg -i swftools_0.9.0-0ubuntu1~jaunty1_i386.deb

wget http://www.ffmpeg.org/releases/ffmpeg-0.6.1.tar.gz
tar zxvf ffmpeg-0.6.1.tar.gz
cd ffmpeg-0.6.1
./configure --enable-libmp3lame --enable-libvorbis --enable-libgsm --enable-libfaad --enable-libfaac --enable-gpl --enable-nonfree
make
make install


Ora possiamo procedere all'installazione vera e propria di OpenMeetings.

cd
wget http://openmeetings.googlecode.com/files/openmeetings_1_6_rc1_r3621.zip
unzip openmeetings*
mv red5 /opt/
chown -R nobody\: /opt/red5
chmod +x /opt/red5/*.sh
chmod +x /opt/red5/webapps/openmeetings/jod/*.sh


Ora bisogna creare uno script che si occuperà di avviare e fermare il server Red5 e OpenOffice.

nano /etc/init.d/red5
#! /bin/sh
#
# red5 red5 initscript
#
# Author: Simon Eisenmann .
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Red5 flash streaming server"
NAME=red5
RED5_HOME=/opt/red5
DAEMON=$RED5_HOME/$NAME.sh
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
#
# Function that starts the daemon/service.
#
d_start() {
start-stop-daemon --start -c root --pidfile $PIDFILE --chdir $RED5_HOME     --background --make-pidfile --exec $DAEMON
}
#
# Function that stops the daemon/service.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name java
rm -f $PIDFILE
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
exit 0


nano /etc/init.d/openoffice
#!/bin/bash
# openoffice.org headless server script
#
# chkconfig: 2345 80 30
# description: headless openoffice server script
# processname: openoffice
#
# Author: Vic Vijayakumar
# Modified by Federico Ch. Tomasczik
#
OOo_HOME=/usr/bin
SOFFICE_PATH=$OOo_HOME/soffice
PIDFILE=/var/run/openoffice-server.pid
set -e
case "$1" in
start)
if [ -f $PIDFILE ]; then
echo "OpenOffice headless server has already started."
sleep 5
exit
fi
echo "Starting OpenOffice headless server"
$SOFFICE_PATH -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1
touch $PIDFILE
;;
stop)
if [ -f $PIDFILE ]; then
echo "Stopping OpenOffice headless server."
killall -9 soffice && killall -9 soffice.bin
rm -f $PIDFILE
exit
fi
echo "Openoffice headless server is not running."
exit
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0


Rendiamo eseguibili gli script di controllo appena creati, e registriamoli sotto init.d in modo che vengano lanciati ad ogni avvio del sistema.

chmod +x /etc/init.d/red5
chmod +x /etc/init.d/openoffice
update-rc.d red5 defaults
update-rc.d openoffice defaults


Ora passiamo a preimpostare il database MySQL dove saranno registrate le impostazioni di OpenMeetings come le stanze, le opzioni, gli utenti, ecc,

echo "CREATE USER openmeetings@localhost;" | mysql -u root -ppwdads31
echo "CREATE DATABASE openmeetings DEFAULT CHARACTER SET 'utf8';" | mysql -u root -ppwdads31
echo "GRANT ALL PRIVILEGES ON openmeetings.* TO 'openmeetings'@'localhost' IDENTIFIED BY 'openmeetings' WITH GRANT OPTION;" | mysql -u root -ppwdads31
echo "FLUSH PRIVILEGES;" | mysql -u root -ppwdads31


Configurazione
Ora passiamo a modificare alcuni parametri base, ma possiamo anche non toccare niente e cominciare ad usarlo.

nano /opt/red5/webapps/openmeetings/config.xml
<currentappname>Meetings</currentappname>
<currentappnameurl>http://conference.porkyhttp.no-ip.info</currentappnameurl>


Riavviamo l’application server per rendere effettive le modifiche, quindi collegiamoci all’url
precedentemente impostato, o all’ip della macchina, sulla porta 5080

/etc/init.d/red5 restart
http://conference.porkyhttp.no-ip.info:5080/openmeetings/install


Ora perfezioniamo la configurazione del sistema.

nano /opt/red5/webapps/openmeetings/conf/hibernate.cfg.xml
<!-- User / Password -->
<property name="connection.username">root</property>
<property name="connection.password">pwdads31</property>


Qui riporto per intero il mio file /opt/red5/webapps/openmeetings/config.xml

nano /opt/red5/webapps/openmeetings/config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<config>
<rtmphostlocal></rtmphostlocal>
<rtmpport>8080</rtmpport>
<rtmpTunnelport>8088</rtmpTunnelport>
<rtmpsslport>443</rtmpsslport>
<useSSL>no</useSSL>
<red5httpport>80</red5httpport>
<basebgcolorizer>0x67B3E4</basebgcolorizer>
<baseMousecolorizer>0x7DBEE8</baseMousecolorizer>
<baseMouseOvercolorizer>0x7DBEE8</baseMouseOvercolorizer>
<currentappname>IBIM-CNR Conference</currentappname>
<currentappnameurl>http://conference.ibim.cnr.it</currentappnameurl>
<currentappnamebugurl>http://code.google.com/p/openmeetings/issues/list</currentappnamebugurl>
<loudnessAcitviation>0</loudnessAcitviation>
<webAppRootKey>openmeetings</webAppRootKey>
<httpRootKey>/openmeetings/</httpRootKey>
<showWindowEffect>n</showWindowEffect>
<showRecording>visible</showRecording>
<showmodernWhiteBoard>y</showmodernWhiteBoard>
<firstdayinweek>1</firstdayinweek>
<framesPerSecond>20</framesPerSecond>
<bandwidthNeededNormal>16384</bandwidthNeededNormal>
<bandwidthNeededBest>49152</bandwidthNeededBest>
<camQualityNormal>85</camQualityNormal>
<camQualityBest>90</camQualityBest>
<microphoneRateNormal>22</microphoneRateNormal>
<microphoneRateBest>44</microphoneRateBest>
<defaultWhiteboardWidth>800</defaultWhiteboardWidth>
<defaultWhiteboardHeight>600</defaultWhiteboardHeight>
<adminModuleUser>userAdmin</adminModuleUser>
<adminModuleRoom>roomAdmin</adminModuleRoom>
<adminModuleOrg>orgAdmin</adminModuleOrg>
<adminModuleLanguages>languagesEditor</adminModuleLanguages>
<adminModuleConnections>roomClient</adminModuleConnections>
<adminModuleConfiguration>confAdmin</adminModuleConfiguration>
<adminModuleBackup>backupContent</adminModuleBackup>
<moderatorModuleUser>userModerate</moderatorModuleUser>
<moderatorModuleRoom>roomModerate</moderatorModuleRoom>
<dashboardModuleStartScreen>mainDashboard</dashboardModuleStartScreen>
<dashboardModuleCalendar>lzCalendar</dashboardModuleCalendar>
<conferenceModuleRoomList>allmeetings</conferenceModuleRoomList>
<conferenceRoomModule>flexibleConferenceRoom</conferenceRoomModule>
<eventModuleRoomList>allEvents</eventModuleRoomList>
<eventRoomModule>flexibleEventRoom</eventRoomModule>
<restrictedRoomModule>restrictedConferenceRoom</restrictedRoomModule>
<interviewRoomModule>interviewConferenceRoom</interviewRoomModule>
<recordModule>lzRecordContent</recordModule>
<userSettingsModule>userSettings</userSettingsModule>
</config>


Questo invece è come si presenta il mio file /opt/red5/conf/red5.properties

nano /opt/red5/conf/red5.properties
# Socket policy
policy.host=0.0.0.0
policy.port=843
# HTTP
http.host=0.0.0.0
http.port=80
https.port=8443
# RTMP
rtmp.host=0.0.0.0
rtmp.port=8080
rtmp.io_threads=16
rtmp.connect_threads=4
rtmp.send_buffer_size=271360
rtmp.receive_buffer_size=65536
rtmp.ping_interval=1000
rtmp.max_inactivity=60000
rtmp.tcp_nodelay=true
# RTMPS
rtmps.host=0.0.0.0
rtmps.port=8443
rtmps.ping_interval=5000
rtmps.max_inactivity=60000
rtmps.max_keep_alive_requests=-1
rtmps.max_threads=20
rtmps.acceptor_thread_count=2
rtmps.processor_cache=20
# RTMPS Keystore Password
rtmps.keystorepass=password
# RTMPT
rtmpt.host=0.0.0.0
rtmpt.port=8088
rtmpt.ping_interval=5000
rtmpt.max_inactivity=60000
rtmpt.max_keep_alive_requests=-1
rtmpt.max_threads=20
rtmpt.acceptor_thread_count=2
rtmpt.processor_cache=20
# MRTMP
mrtmp.host=0.0.0.0
mrtmp.server=localhost
mrtmp.port=9035
mrtmp.event_threads_core=4
mrtmp.event_threads_max=32
# event threads queue: -1 unbounded, 0 direct (no queue), n bounded queue
mrtmp.event_threads_queue=0
mrtmp.event_threads_keepalive=60
mrtmp.send_buffer_size=271360
mrtmp.receive_buffer_size=65536
mrtmp.ping_interval=5000
mrtmp.max_inactivity=60000
mrtmp.tcp_nodelay=true
# Debug proxy (needs to be activated in red5-core.xml)
proxy.source_host=127.0.0.1
proxy.source_port=1936
proxy.destination_host=127.0.0.1
proxy.destination_port=1935
# JMX
jmx.rmi.port.registry=9999
jmx.rmi.port.remoteobjects=
jmx.rmi.host=0.0.0.0
jmx.rmi.ssl=false


Supporto per OpenLDAP
Dato che ho un server LDAP con gli utenti caricati, ho utilizzato la possibilità di far leggere a OpenMeetings gli utenti già esistenti, senza dover farli registrare sul sistema con altre credenziali.
La registrazione degli utenti resta valida magari per degli utenti esterni, che dovrenno utilizzare la piattaforma.
Ecco il mio file di configurazione per il collegamento al server LDAP.

nano /opt/red5/webapps/openmeetings/conf/om_ldap.cfg
ldap_server_type=OpenLDAP
ldap_conn_url=ldap://ldap.ibim.cnr.it:389
ldap_admin_dn=cn:admin,dc:ibim,dc:cnr,dc:it
ldap_passwd=++pwdads31
ldap_search_base=ou:Users,dc:ibim,dc:cnr,dc:it
field_user_principal=uid
ldap_auth_type=SIMPLE
ldap_sync_password_to_om=no
ldap_user_attr_lastname=sn
ldap_user_attr_firstname=givenName
ldap_user_attr_mail=mail
ldap_user_attr_street=streetAddress
ldap_user_attr_additionalname=description
ldap_user_attr_fax=facsimileTelephoneNumber
ldap_user_attr_zip=postalCode
ldap_user_attr_country=co
ldap_user_attr_town=l
ldap_user_attr_phone=telephoneNumber



Installazione di OpenMeeting 1.6 su Ubuntu Server 10.10

 

Aggiungi commento


Codice di sicurezza
Aggiorna