|
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 updateapt-get upgradeapt-get dist-upgradereboot
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.debdpkg -i swftools_0.9.0-0ubuntu1~jaunty1_i386.deb wget http://www.ffmpeg.org/releases/ffmpeg-0.6.1.tar.gztar zxvf ffmpeg-0.6.1.tar.gzcd ffmpeg-0.6.1./configure --enable-libmp3lame --enable-libvorbis --enable-libgsm --enable-libfaad --enable-libfaac --enable-gpl --enable-nonfreemakemake install
Ora possiamo procedere all'installazione vera e propria di OpenMeetings.
cdwget http://openmeetings.googlecode.com/files/openmeetings_1_6_rc1_r3621.zipunzip openmeetings*mv red5 /opt/chown -R nobody\: /opt/red5chmod +x /opt/red5/*.shchmod +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 -ePATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDESC="Red5 flash streaming server"NAME=red5RED5_HOME=/opt/red5DAEMON=$RED5_HOME/$NAME.shPIDFILE=/var/run/$NAME.pidSCRIPTNAME=/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/$NAMEfi## 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" instart)echo -n "Starting $DESC: $NAME"d_startecho ".";; stop)echo -n "Stopping $DESC: $NAME"d_stopecho ".";; restart|force-reload)echo -n "Restarting $DESC: $NAME"d_stopsleep 1d_startecho ".";;*) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2exit 1;;esacexit 0exit 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/binSOFFICE_PATH=$OOo_HOME/sofficePIDFILE=/var/run/openoffice-server.pidset -ecase "$1" instart)if [ -f $PIDFILE ]; thenecho "OpenOffice headless server has already started."sleep 5exitfiecho "Starting OpenOffice headless server"$SOFFICE_PATH -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1touch $PIDFILE;;stop)if [ -f $PIDFILE ]; thenecho "Stopping OpenOffice headless server."killall -9 soffice && killall -9 soffice.binrm -f $PIDFILEexitfiecho "Openoffice headless server is not running."exit;;*)echo "Usage: $0 {start|stop}"exit 1esacexit 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/red5chmod +x /etc/init.d/openofficeupdate-rc.d red5 defaultsupdate-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 -ppwdads31echo "CREATE DATABASE openmeetings DEFAULT CHARACTER SET 'utf8';" | mysql -u root -ppwdads31echo "GRANT ALL PRIVILEGES ON openmeetings.* TO 'openmeetings'@'localhost' IDENTIFIED BY 'openmeetings' WITH GRANT OPTION;" | mysql -u root -ppwdads31echo "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 restarthttp://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 policypolicy.host=0.0.0.0policy.port=843# HTTPhttp.host=0.0.0.0http.port=80https.port=8443# RTMPrtmp.host=0.0.0.0rtmp.port=8080rtmp.io_threads=16rtmp.connect_threads=4rtmp.send_buffer_size=271360rtmp.receive_buffer_size=65536rtmp.ping_interval=1000rtmp.max_inactivity=60000rtmp.tcp_nodelay=true# RTMPSrtmps.host=0.0.0.0rtmps.port=8443rtmps.ping_interval=5000rtmps.max_inactivity=60000rtmps.max_keep_alive_requests=-1rtmps.max_threads=20rtmps.acceptor_thread_count=2rtmps.processor_cache=20# RTMPS Keystore Passwordrtmps.keystorepass=password# RTMPTrtmpt.host=0.0.0.0rtmpt.port=8088rtmpt.ping_interval=5000rtmpt.max_inactivity=60000rtmpt.max_keep_alive_requests=-1rtmpt.max_threads=20rtmpt.acceptor_thread_count=2rtmpt.processor_cache=20# MRTMPmrtmp.host=0.0.0.0mrtmp.server=localhostmrtmp.port=9035mrtmp.event_threads_core=4mrtmp.event_threads_max=32# event threads queue: -1 unbounded, 0 direct (no queue), n bounded queuemrtmp.event_threads_queue=0mrtmp.event_threads_keepalive=60mrtmp.send_buffer_size=271360mrtmp.receive_buffer_size=65536mrtmp.ping_interval=5000mrtmp.max_inactivity=60000mrtmp.tcp_nodelay=true# Debug proxy (needs to be activated in red5-core.xml)proxy.source_host=127.0.0.1proxy.source_port=1936proxy.destination_host=127.0.0.1proxy.destination_port=1935# JMXjmx.rmi.port.registry=9999jmx.rmi.port.remoteobjects=jmx.rmi.host=0.0.0.0jmx.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.cfgldap_server_type=OpenLDAPldap_conn_url=ldap://ldap.ibim.cnr.it:389ldap_admin_dn=cn:admin,dc:ibim,dc:cnr,dc:itldap_passwd=++pwdads31ldap_search_base=ou:Users,dc:ibim,dc:cnr,dc:itfield_user_principal=uidldap_auth_type=SIMPLEldap_sync_password_to_om=noldap_user_attr_lastname=snldap_user_attr_firstname=givenNameldap_user_attr_mail=mailldap_user_attr_street=streetAddressldap_user_attr_additionalname=descriptionldap_user_attr_fax=facsimileTelephoneNumberldap_user_attr_zip=postalCodeldap_user_attr_country=coldap_user_attr_town=lldap_user_attr_phone=telephoneNumber
Installazione di OpenMeeting 1.6 su Ubuntu Server 10.10
|