0% ont trouvé ce document utile (0 vote)
101 vues41 pages

Rapport de Stage : Environnement Numérique

Poulet de chair

Transféré par

nderslune24
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
101 vues41 pages

Rapport de Stage : Environnement Numérique

Poulet de chair

Transféré par

nderslune24
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Rapport de Stage

Mise en place d'un Environnement Numérique de Travail

Tuteur de stage : Mr RAZAFINDRADINA Bruno

Enseignant suiveur : Mr ROUSSEL Alain

GONTHARET Florent ― 2012 / 2013

DUT Réseaux & Télécommunications


Remerciements :

Tout d'abord, et pour la chance que cela représente, je tiens à remercier toutes les
personnes qui m'ont permis de réaliser ce stage :
- Mr Alain ROUSSEL, sans qui le stage n'aurait pu être possible,
- Mr Bruno RAZAFINDRADINA, pour son soutien et son accompagnement,
- Mr Marthinerot ZANDRY, pour ses conseils,
- Mr Mamy ANDRIANIRINA, pour son accueil et son dévouement,
- Les enseignants R&T de l'IUT Annecy pour leurs enseignements,
- Le personnel administratif de l'IST, pour son accueil au sein de l'IST d'Antsiranana,
- L'équipe enseignante de l'Université et de l'IST d'Antsiranana pour leur accueil
ainsi que leur accompagnement pendant, en dehors des heures de travail,
- Mes parents, qui m'ont soutenu et financé.
Sommaire

[Link]ésentation........................................................................................................1

I.L’Institut Supérieur de Technologie d'Antsiranana (IST-D).....................................................1

[Link] réseau local existant........................................................................................................3

[Link] fournisseurs de services................................................................................................4


[Link] d'Accès à Internet................................................................................................4
[Link] d'électricité..........................................................................................................5

[Link] à réaliser..................................................................................................................6

B.Réalisation du projet...........................................................................................7

[Link] en place et configuration de base du serveur................................................................7


[Link]....................................................................................................................................7
[Link]ématique.........................................................................................................................7
c.Réalisation...............................................................................................................................7
[Link] du serveur......................................................................................................7
[Link] du système d'exploitation...............................................................................8
[Link]èmes rencontrés & solutions..........................................................................................8

[Link] en place de l'Environnement Numérique de Travail.....................................................9


[Link]....................................................................................................................................9
[Link]ématique.........................................................................................................................9
c.Réalisation...............................................................................................................................9
[Link]èmes rencontrés & solutions........................................................................................12

[Link] en place et intégration d'une solution de vidéo-conférence......................................13


[Link]..................................................................................................................................13
[Link]ématique.......................................................................................................................13
c.Réalisation.............................................................................................................................13
[Link] d'OpenMeetings............................................................................................13
[Link]égration au sein de l'ENT.............................................................................................16
[Link]èmes rencontrés & solutions........................................................................................17

[Link]égration de l'ENT au sein du site existant......................................................................18


[Link]..................................................................................................................................18
[Link]ématique.......................................................................................................................18
c.Réalisation.............................................................................................................................18
[Link] de Moodle.................................................................................................18
[Link] de Joomla...................................................................................................20
[Link]èmes rencontrés et solutions.......................................................................................21

[Link]..................................................................................................................22

[Link] stage..............................................................................................................................22

[Link] de vue professionnel.................................................................................................22

[Link] de vue personnel.....................................................................................................23

[Link].........................................................................................................23

[Link]..............................................................................................................24

[Link].............................................................................................................27

[Link].....................................................................................................35
A. Présentation

I. L’Institut Supérieur de Technologie d'Antsiranana (IST-D)

Madagascar est une île de l'Océan Indien. Le stage a pris place à Antsiranana, aussi appelé
Diego-Suarez. Il s'agit de la plus grande ville du Nord de Madagascar, et du troisième port du pays.

Illustration 1 – Plan de situation global

Rapport de stage GONTHARET Florent 1


L'IST-D de trouve à l'Ouest de la ville, dans l'enceinte de la SECREN. C'est la Société
d’Études, de Construction, et de REparation Navale. Les locaux de l'IST-D sont loués parmi les
locaux inutilisés de la société.

Illustration 2 – Plan de situation locale

La structure accueille environ 600 étudiants, et de nombreuses filières :


• Quatre filières du département génie industriel pour le cycle de DTS et trois pour le DTSS;
• Quatre filières du management, commerce et service à cycle DTS et deux pour le DTSS;
• Et deux filières du département génie industriel pour le cycle d'ingéniorat.

Rapport de stage GONTHARET Florent 2


II. Le réseau local existant
L'organisation du réseau de l'IST-D se décompose en 2 sous-réseaux principaux :
• Le réseau filtré, qui réparti la connexion entre les différents utilisateurs;
• Le réseau ENT, non filtré, mis à disposition de la salle de vidéo conférence
uniquement. C'est sur ce réseau que se trouve le serveur ENT.
Cette organisation est due au fait que le prestataire Telma ne nous laisse pas configurer le
routeur. Toutes les actions qui doivent être exécutées sur cet équipement sont donc
obligatoirement à soumettre à l'opérateur pour qu'il les effectue lui-même, à distance.
Un firewall a donc été déployé, afin de pouvoir superviser les différents réseaux. Ce dernier
ne sachant pas comment disposer le Polycom derrière un second routeur, il a fallut créer un
deuxième réseau non filtré pour rendre l'installation possible.

Illustration 3 – Topologie du réseau

Rapport de stage GONTHARET Florent 3


III. Les fournisseurs de services

a. Fournisseur d'Accès à Internet


L'accès à Internet est fourni par la société Telma. Il s'agit du premier opérateur Internet,
mobile, et fixe du pays, privatisé en 2004. Le développement des infrastructures fibres optique
lancé en 2009 à travers le pays a permis la mise en place d'un réseau national avec l'objectif de
relier les différentes institutions du pays.

Illustration 4 – Carte du réseau national Telma


La fibre optique n'est cependant toujours pas déployée jusqu'à Antsiranana. L'iRENALA
(Research and Education Network for Academic and Learning Activities) est l'organisme gérant ce
réseau. Il est souvent insuffisant, et les engorgements sont fréquents. Le débit est donc très
aléatoire, et les 10Mbit/s alloués à l'IST-D ne sont pas assurés. Des coupures et des
dysfonctionnements du réseau de l'opérateur peuvent entraver l'accès à Internet durant des jours.

Rapport de stage GONTHARET Florent 4


b. Fournisseur d'électricité
L'électricité à Antsiranana dépend de deux acteurs principaux :
• La JIRAMA (JIro sy RAno MAlagasy), société nationale ayant pour mission la
production d'électricité, sa distribution, et la distribution d'eau.
• L'ENELEC (ENergie ELECtrique), société privée de production d'électricité. Elle se
charge de produire cette énergie afin de répondre aux besoins de la JIRAMA, qui se
charge alors de la distribuer. ENELEC est le principal acteur privé du secteur
d'Antsiranana.

Illustration 5 – Organisation du réseau électrique d'Antsiranana

Par manque d'infrastructures, l'électricité n'est pas de bonne qualité. De plus, les retards de
paiement de la JIRAMA ne permettent pas à ENELEC d'assurer l'entretien du matériel à temps. Il
est fréquent que sur les cinq générateurs, seul trois fonctionnent. La production étant d'origine
fossile, avec l'utilisation de groupes électrogènes à grande échelle. La demande est souvent
supérieure à la production, et les délestages sont fréquents.
Cependant, l'IST-D étant dans l'enceinte de la SECREN, cette dernière dispose de sa propre
centrale, capable d'assurer la production de 6500KVA. Le basculement entre les générateurs prend
une quinzaine de minutes. C'est donc suffisant pour que les machines sans batterie se coupent. De
plus, les surtensions sont fréquentes, et les alimentations non protégées ne durent pas longtemps.
La situation est donc sensible dans un domaine où l'électricité est essentielle.

Rapport de stage GONTHARET Florent 5


IV. Projet à réaliser
Le projet à réaliser au sein de l'IST-D consiste à mettre en place un Environnement
Numérique de Travail (ENT), et y intégrer une solution de vidéo-conférence.

Description :
L'IST-D accueille des étudiants venant de tout le pays, ainsi que des missionnaires. Il est
donc important que les enseignants puissent assurer un suivi de leurs cours, même lorsque des
déplacements doivent se faire. Le but est donc de mettre en place un serveur accueillant un ENT,
ainsi qu'une solution de vidéo conférence.

Objectif du travail :
• Mettre en place et configurer un serveur.
• Proposer une solution d'ENT, l'installer, et configurer les droits d'accès (étudiants,
professeurs).
• Proposer une solution de vidéo conférence compatible avec l'ENT, l'installer, et
effectuer son intégration au sein de celui-ci.
• Configurer le réseau afin de rendre le serveur accessible depuis les différents
réseaux de l'IST-D, ainsi que depuis l'extérieur.
• Création d'un template unique permettant l'intégration de l'ENT au site de l'IST-D
déjà existant.

Le travail présente donc plusieurs aspects, et demande une certaine polyvalence. En effet,
chaque point requiert des connaissances sur des outils différents.

Rapport de stage GONTHARET Florent 6


B. Réalisation du projet

I. Mise en place et configuration de base du serveur

a. Objectif
Pour cette partie, nous allons étudier la mise en place du serveur. Celui-ci est dédié à
l'hébergement de l'ENT, et à la plate-forme de vidéo-conférence. Il sera chargé de répondre aux
requêtes des clients Web, et de diffuser en flux continu (streaming) les différentes conférences.
Ainsi, on y trouvera :
• un serveur web Apache avec PHP5
• un serveur de base de données MySQL
• un serveur de streaming Flash Red5 (vidéo-conférence)
• Toutes les dépendances & librairies nécessaires

b. Problématique
Les capacités du serveur doivent être suffisantes pour y stocker des cours sur le long terme,
et pour tenir la charge réseau lors de vidéo-conférences, ou lors des pointes de visites. Il faut que
celui-ci soit accessible depuis Internet et depuis le réseau local. Un serveur existe déjà, mais celui-
ci ne dispose pas de capacités suffisantes (notamment en ce qui concerne l'espace disque).
De plus, il n'y a aucun budget alloué pour une telle machine, il faut arriver à faire grâce au
matériel présent sur place. Il s'agit principalement de PC quasi obsolètes, ou bien tout simplement
hors services. Les applications doivent elles aussi être gratuites. Nous allons donc nous orienter
vers une installation open-source.

c. Réalisation

1. Assemblage du serveur
Pour l'assemblage du serveur, nous choisissons parmi les pièces disponibles sur place. Le
boîtier est récupéré sur une ancienne machine, l'alimentation et la carte mère, non endommagés,
sont eux aussi réutilisés. Tous sont compatibles pour l'ajout de plusieurs disques durs si les besoins
venaient à augmenter.
Un disque dur de 40Go devrait être suffisant dans un premier temps. Nous installons un
total de 512Mo de mémoire vive avec un processeur monocœur à 1,8GHz. La carte graphique vient
elle aussi d'un ancien ordinateur.

Rapport de stage GONTHARET Florent 7


2. Installation du système d'exploitation
Notre choix se portera sur Debian 7. Il s'agit de la dernière version du système Debian, déjà
largement utilisé dans le milieu professionnel. Le choix d'un tel système repose sur sa fiabilité, sa
robustesse, ainsi que sa gratuité. Un facteur décisif étant que l'IST disposait déjà d'une version du
système, donc pas de téléchargement nécessaire. En effet, le temps de téléchargement peut vite
devenir très important.
Les composants systèmes installés sont triés. En effet, pour limiter la charge de la machine,
afin qu'elle conserve de bonnes capacités, il n'y a ni interface graphique, ni application pré-
installée.
La configuration de notre serveur commence par le paramétrage de l'adressage réseau.
Celui-ci se passe dans un fichier de configuration :

/etc/network/interfaces
iface eth0 inet static # on va définir une IP fixe
gateway [Link] # la passerelle par défaut
address [Link] # IP de notre serveur
netmask [Link] # masque réseau en /24

d. Problèmes rencontrés & solutions


La première difficulté fut de trouver le matériel compatible pour l'assemblage du serveur.
En effet, les pièces doivent être trouvées sur place pour des raisons financières, et celles
disponibles sont souvent sur des ordinateurs non fonctionnels. Dans un premier temps, le disque
dur était hors d'usage, et nous ne disposions pas d'une carte graphique compatible. Enfin, ce fut
au tour du lecteur CD, remplacé par un lecteur DVD pour pouvoir installer le système. En effet, le
BIOS ne nous permet pas de démarrer par un autre moyen.
Après quelques recherches dans les différents bureaux, nous voici désormais avec une
machine opérationnelle. Une fois ceci fait, l'installation et la configuration du système a pu se
dérouler normalement, malgré deux coupures électriques obligeant à recommencer l'opération
deux fois.

Rapport de stage GONTHARET Florent 8


II. Mise en place de l'Environnement Numérique de Travail

a. Objectif
Un Environnement Numérique de Travail (ENT) est une plate-forme de travail collaboratif
permettant à des enseignants, ou des étudiants, d'accéder à du contenu préalablement mis à
disposition. Nombre d'entre eux ne viennent pas de la région. Il est impératif pour les enseignants
de pouvoir donner à distance à leurs élèves des supports de cours, et à ceux-ci de pouvoir y
accéder même loin de l'université.

b. Problématique
Du fait de son orientation collaborative, il faut que l'ENT soit accessible depuis les différents
réseaux locaux, ainsi que depuis Internet. De plus, un tel environnement exploite une base de
données, ainsi qu'un serveur Web.

c. Réalisation
Dans un premier temps, il a fallut mettre en place le serveur Web. Le choix s'est porté sur
Apache 2.2.22 pour son support et sa documentation, ainsi que pour sa gratuité et sa
compatibilité. Aucune configuration particulière n'a été à prévoir. L’installation par défaut se
suffisant à elle même. PHP5 s'installe lui aussi sans aucune configuration particulière. Nous allons
tout de même renforcer la sécurité de ce serveur en créant le fichier suivant :

/etc/php5/apache/[Link]
register_globals = off
expose_php = off
enable_dl = off
allow_url_fopen = off
allow_url_include = off
display_errors = off

Ainsi, on limite la portée les variables, le téléchargement de fichier, et l'inclusion de fichiers


distants par les méthodes url fopen et url include. Enfin, on cache les messages d'erreurs
qui peuvent diffuser des informations sensibles.

Rapport de stage GONTHARET Florent 9


Deuxièmement, le serveur de base de données. Le choix fût porté sur MySQL 5.5.30 pour
sa compatibilité avec nos futurs éléments. Les versions plus récentes n'étant pas supportées.

Enfin, l'installation de Moodle se fait au moyen d'une interface Web étape par étape. La
version choisie fût la dernière en date (v2.4.3+).

Illustration 6 – Moodle installé avec son nouveau thème

Une fois Moodle installé, il faut gérer les différents droits, et les inscriptions des étudiants.
La gestion des droits Moodle s'organise point par point, au sein d'une interface Web. Plus de 250
droits sont administrables, et ce pour chaque rôle (Enseignant, Étudiant, ...).

Rapport de stage GONTHARET Florent 10


Illustration 7 – La gestion des droits sous Moodle

Pour rendre notre application plus intuitive à joindre, et disponible depuis tous les réseaux
locaux, il fallut apporter quelques modifications à la configuration du serveur DNS Bind9 (installé
par défaut) afin de mettre en place un nom de domaine ([Link] Les fichiers
suivants ont donc reçu les ajouts respectifs :

/etc/bind/[Link]
zone "[Link]" {
type master;
file "/etc/bind/[Link]";
};

La première ligne définit le nom de la zone, correspondante au domaine que l'on souhaite
créer. La suivante définit que le serveur est celui qui diffusera l'enregistrement sur le domaine. Un
serveur peut aussi être esclave, ou un serveur cache. Enfin, file "..." indique le chemin où
trouver le fichier de configuration correspondant à la zone créée.

Rapport de stage GONTHARET Florent 11


/etc/bind/[Link]
;
; BIND data file for local zone
;
$TTL 604800
@ IN SOA [Link]. [Link]. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS [Link].
@ IN A [Link]

On va définir la configuration du domaine :


@ IN SOA [Link]. [Link]. ()
On définit ici le nom complet de notre domaine (avec un point à la fin). Les paramètres
contenus entre les parenthèses sont ceux par défaut, ils conviennent à la configuration.
@ IN NS [Link].
@ IN A [Link]
On définit ici les domaines correspondant à la zone, afin que le serveur réponde aux
requêtes.

d. Problèmes rencontrés & solutions


L'accès à la configuration du routeur Telma n'est pas possible. Pour rendre le serveur
accessible depuis l'extérieur, il faut donc en faire la demande et attendre que l'opération soit
effectuée par leurs techniciens. A cette heure, le port 80 est bien redirigé sur l'ENT. Cependant, la
vidéo-conférence, qui exploite les ports 1935, 5080, 4445, et 8088, n'est toujours pas
opérationnelle.
Pour le moment, notre application ne dispose cependant pas de nom de domaine en
dehors du réseau local. Elle n'est donc joignable que via l'adresse IP du routeur Telma. Nous allons
corriger ceci lors de l'intégration de Moodle au site Internet déjà existant.

Rapport de stage GONTHARET Florent 12


III. Mise en place et intégration d'une solution de vidéo-conférence

a. Objectif
L'IST-D accueille un grand nombre de missionnaires, où de formateurs, qui se déplacent
pour enseigner. Pour faciliter ces échanges, vitaux pour l'établissement, nous allons intégrer à
l'ENT une solution de vidéo-conférence.

b. Problématique
Il existe un grand nombre de solutions de vidéo-conférence disponibles. Pour commencer, il
faut une application gratuite. Dans l'optique de l'intégrer à Moodle, il faut qu'elle soit compatible.
La base de données doit l'être aussi. De plus, il faut qu'elle soit disponible sous Linux et Windows,
et simple d'utilisation. L'établissement souhaite aussi pouvoir y afficher des documents.
Le choix s'est donc porté sur OpenMeetings. Développé par Apache, c'est une solution
gratuite, basée sur le Plug-in Flash. Compatible sur tous les systèmes ayant installé ce dernier, c'est
une solution légère et adaptée aux postes de l'établissement. De plus, un module est développé
pour l'interfaçage avec Moodle. Cette application comporte aussi la fonction d'affichage de fichiers
de types divers via un tableau partagé.

c. Réalisation

1. Installation d'OpenMeetings
Pour commencer, il faut installer les différentes librairies et autres dépendances.
OpenMeetings est basé sur un serveur Java, et utilise beaucoup d'applications extérieures pour les
conversions. Il faut donc installer :
• Oracle Java ;
• OpenOffice (conversion de documents) ;
• SWFTools (conversion en Flash de fichiers) ;
• ImageMagick, Zlib1g LibJPEG8, LibGIF, LibFreeType6 (application & librairies de traitement
d'images) ;
• Zlib1g-dev, libogg-dev, sox, libvorbis0a, libvorbis-dev, libgsm1, libgsm1-dev, libfaad2,
flvtool2, lame, libmp3lame-dev, libsdl1.2-dev, libx11-dev, libxfixes-dev, libxvidcore4,
libxvidcore4-dev, libt1-5 (librairies nécessaires à FFMpeg).
Une fois les librairies réunies, il faut télécharger les sources de FFMpeg et les décompresser.
Ceci fait, il faut passer à la compilation. Nous avons besoin de deux commandes :
/usr/local/share/ffmpeg # ./configure --enable-libmp3lame --enable-libxvid
--enable-libvorbis --enable-libgsm --enable-gpl –enable-nonfree
/usr/local/share/ffmpeg # make

La première définit les paramètres utilisés pour la compilation. Ici, on choisit les librairies que l'on
souhaite, précédemment installées, afin de répondre à nos besoins. La seconde commande lance
la compilation. L'opération est assez longue.

Rapport de stage GONTHARET Florent 13


Il faut alors bloquer la mise à jour de FFMpeg, spécifique à notre machine. En effet, il
comporte les librairies dont nous avons besoin, ce qui n'est pas le cas des mises à jour. On va
renseigner le paquet par cet ajout :
/etc/apt/preferences
Package: ffmpeg
Pin: version 1.1.2-1
Pin-priority: 1001

Ainsi, on ajoute le nom et la version du paquet. La dernière ligne à 1001 bloque tout simplement
les mises à jours.

Une fois ces différents éléments installés, l'installation d'OpenMeetings peut commencer.
Le paquet est disponible dans les dépôts Apache, et s'installe simplement. Un fichier de
configuration doit être modifié pour prendre en charge le serveur MySQL précédemment installé :

/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/[Link]

<?xml version="1.0" encoding="UTF-8"?>


<property name="[Link]"
value="DriverClassName=[Link]
, Url=jdbc:MySQL://SERVEUR:PORT/DBNAME?
autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExi
st=true&amp;characterEncoding=utf-
8&amp;connectionCollation=utf8_general_ci&amp;cachePrepStmts=true
&amp;cacheCallableStatements=true&amp;cacheServerConfiguration=tr
ue&amp;useLocalSessionState=true&amp;elideSetAutoCommits=true&amp
;alwaysSendSetIsolation=false&amp;enableQueryTimeouts=false&amp;p
repStmtCacheSize=3000&amp;prepStmtCacheSqlLimit=1000
, MaxActive=100
, MaxWait=10000
, TestOnBorrow=true
, poolPreparedStatements=true
, Username=DBUSER
, Password=DBPASSWORD" />
?>

Annexe I : fichier complet

Cette configuration est spécifique à MySQL. Les 3 points à noter sont en gras dans le code :
• SERVEUR:PORT : l'adresse du serveur MySQL et le port utilisé pour la connexion
• DBNAME : le nom de la base de données à laquelle OpenMeetings doit se
connecter
• DBUSER & DBPASSWORD : respectivement le login et le mot de passe pour se
connecter à la base de données

Rapport de stage GONTHARET Florent 14


Pour finir, il faut ajouter à OpenMeetings le connecteur Java spécifique à MySQL lui
permettant de dialoguer correctement avec la base de données. Ici nous utiliserons MySQL-
Connector-Java 5.1.23. Il suffit de copier le contenu de l'archive dans le répertoire de librairies :
# cp /opt/MySQL-connector-5.1.23/[Link]
/opt/red5/webapps/openmeetings/WEB-INF/lib

Nous allons aussi rajouter une application facilitant la conversion des documents uploadés :
JodConverter. Cette application se charge de faire le lien entre chaque type de fichier uploadé et
l'application apte à le convertir.
Aussi, pour les documents bureautiques, il faut activer OpenOffice afin qu'il reste en
attente de conversion. Pour se faire, on utilise la commande suivante, qu'on ajoute dans un script,
afin de l'exécuter à chaque démarrage :
/etc/init.d/[Link]
/usr/lib/openoffice/program/soffice "-accept=socket,host=localhost
,port=8100;urp;[Link]" -nologo -headless
-nofirststartwizard

Ce script va lancer une instance d'OpenOffice écoutant sur le port 8100, en attente de conversion.
Pour plus de sécurité, on limite l'accès depuis localhost. Ainsi, on bloque les connexions
extérieures. Puis, nous l'ajoutons au démarrage par la commande suivante :
# update-rc.d [Link] defaults

Enfin, l'installation peut continuer à l'aide de l'interface Web d'OpenMeetings :


[Link]
Il n'y a pas de configuration spéciale, on définit étape par étape les options d'administration
telles que le mot de passe, ou le nom de l'organisation. Une fois terminée, nous allons automatiser
son démarrage, comme nous l'avons fait pour OpenOffice. On ajoute ce script :
/etc/init.d/[Link]
RED5_HOME = /usr/lib/red5
DAEMON = $RED5_HOME/$[Link]
PIDFILE = /var/run/$[Link]
cd $RED5_HOME
start-stop-daemon --start -c nobody --pidfile $PIDFILE \ --chdir
$RED5_HOME --background --make-pidfile \ --exec $DAEMON >/dev/null
2>/dev/nul &

Puis on le déclare avec la commande :


# update-rc.d [Link] defaults

Rapport de stage GONTHARET Florent 15


2. Intégration au sein de l'ENT
Pour intégrer OpenMeetings à Moodle, nous devons utiliser le module mis à notre
disposition et conçu spécialement pour ça. Il suffit de copier les fichiers du module dans le dossier
correspondant :

# cp /home/mod-moodle/openmeetings /var/www/moodle/mod/openmeetings

Ensuite, nous devons nous connecter à l'ENT pour accéder à l'interface d'administration.
Celle-ci nous prévient qu'un nouveau module doit être installé. Une fois l'opération effectuée
(automatique), la page de gestion du module est disponible. Il suffit de renseigner l'identifiant, le
mot de passe, le port, et le nom de l'application sur le serveur, afin que la plate-forme puisse
joindre correctement notre serveur Red5 avec OpenMeetings.

Illustration 8 – Configuration du module OpenMeetings pour Moodle

Rapport de stage GONTHARET Florent 16


Comme notre serveur n'a pas encore de nom de domaine sur Internet, et peut être joint
par 2 adresses IP différentes avec la redirection de ports mise en place par Telma sur son routeur,
une simple adresse IP ne suffira pas. La modification de la ligne 30 du script du module
OpenMeetings va remédier à ce problème :

/var/www/moodle/mod/openmeetings/openmeetings_gateway.php
$CFG->openmeetings_red5host = $_SERVER["HTTP_HOST"];

Annexe II : fichier complet

Ce code PHP va adapter l'adresse IP en fonction des demandes. On remplace alors la valeur
normalement récupérée par celle générée dynamiquement, afin que l'adresse soit toujours la
bonne. On rajoute cette ligne dans la fonction getUrl(), utilisée par les autres scripts pour charger
l'application.
Une fois ces changements effectués, on peut désormais créer une activité intégrant
l'interface OpenMeetings au sein même de Moodle.

Illustration 9 – Intégration d'OpenMeetings au sein de Moodle

d. Problèmes rencontrés & solutions


Dans un premier temps, il fallut trouver la bonne version d'OpenMeetings, afin qu'elle soit
compatible avec les différentes applications déjà mises en place. La liste des librairies est longue,
ainsi que la compilation. Les coupures de courant n'ont pas rendu cette dernière aisée.
De plus, une fois OpenMeetings installé, et les différentes applications en place, le module
annoncé comme compatible ne l'était pas. Après l'avoir analysé, et prévenu l'équipe d'Apache, un
correctif compatible fût mis à disposition par l'équipe de développement.

Rapport de stage GONTHARET Florent 17


IV. Intégration de l'ENT au sein du site existant

a. Objectif
L'IST-D dispose déjà d'un site existant ([Link] et intégrer l'ENT au
sein de celui-ci permet de regrouper les plate-formes, et facilite l'accès à celles-ci en exploitant la
même adresse notamment.

b. Problématique
Le site de l'IST-D exploite la plate-forme Joomla! 1.5, et est hébergé sur un serveur
appartenant à Telma. Même souci que sur le routeur, nous ne disposons pas de droits
d'administration sur le serveur. Un serveur FTP est disponible mais ne nous laisse modifier que les
fichiers du répertoire Web. Il va donc falloir trouver une solution pour permettre l'intégration.

c. Réalisation
Joomla! & Moodle ont l'avantage d'être des plate-formes open-sources. Il y a une grande
communauté, et des modules déjà disponibles. Pour notre cas, Joomdle permet d'effectuer ce que
l'on souhaite. Nous allons donc le mettre en place. Joomlde utilise le protocole XML-RPC pour
dialoguer d'un serveur à l'autre.

1. Configuration de Moodle
Pour commencer, il suffit de placer les éléments correspondants dans l'arborescence
Moodle. Une simple visite sur la page d'administration de la plate-forme, et cette dernière nous
propose d'installer le module. Tout est automatique.
La configuration du module est désormais disponible. Pour que celui-ci fonctionne bien, il
faut installer le module XML-RPC de PHP. Ceci pour permettre l'utilisation de ce protocole de
communication entre plate-formes Web. Un simple

# apt-get install php5-xmlrpc

permet d'installer l'extension. Une fois ceci fait, il faut activer l'utilisation des web-services dans
Moodle. Ceci permet la création d'un compte avec des droits restreint, et utilisant un jeton pour se
connecter, on renforce ainsi la sécurité.

Illustration 10 – Activation de l'accès web-services

Rapport de stage GONTHARET Florent 18


Une fois activé, on va définir par quels protocoles ces web-services peuvent accéder à la
plate-forme. Le but étant de restreindre le risque d'intrusion, sans pour autant bloquer l'accès au
service à notre site. On active alors uniquement le dialogue via XML-RPC, et on désactive le reste.

Illustration 11 – Sélection du protocole dans Moodle

Pour continuer, on va ajouter un utilisateur à notre plate-forme, uniquement destiné à la


communication web-services. Pour des raisons de sécurité, on va limiter les droits de cet
utilisateur, mais on va l'autoriser à utiliser le XML-RPC pour communiquer. Ainsi, notre plate-forme
Joomla viendra s'identifier avec ce compte pour obtenir l'accès à la plate-forme. Il faut aussi créer
le rôle correspondant, et l'autoriser à utiliser le XML-RPC. Pour finir, il faut assigner l'utilisateur au
rôle.

Illustration 12 – Paramétrage des droits du nouveau compte

Ensuite, il nous faut déclarer le service à Moodle. On utilise l'interface prévue à cet effet, en
limitant son accès aux utilisateurs autorisés seulement. Il faut définir les fonctions réalisables par le
service. On ajoute l'utilisateur précédemment créé à la liste des comptes autorisés. Nous allons
aussi autoriser l'affichage de Moodle dans une iframe.

La dernière étape consiste à créer un jeton permettant d'identifier le service qui accède à la
plate-forme.

Rapport de stage GONTHARET Florent 19


Illustration 13 – Génération du jeton Moodle pour Joomdle

2. Configuration de Joomla
A l'image de Moodle, il faut activer l'utilisation des web-services au sein de la plate-forme.
Le module téléchargé précédemment contient aussi des fichiers propres à Joomla. Il suffit d'utiliser
la page d'installation des modules et de les sélectionner à l'aide de l'interface. L'application va se
charger de les installer.
Pour finir, l'interface de gestion du module est désormais disponible. Les informations
essentielles se situent dans la configuration générale. En effet, on y retrouve l'adresse de notre
serveur Moodle et le jeton d'authentification créé auparavant.

Illustration 14 – Gestion du module Joomdle sous Joomla

Il faut ainsi indiquer le jeton généré par Moodle à l'étape précédente, afin d'authentifier le
service sur la plate-forme. La configuration est désormais correcte.

Rapport de stage GONTHARET Florent 20


d. Problèmes rencontrés et solutions
Le problème rencontré ici est dû au fait que nous n'avons pas de droit sur le serveur du site
en place. Ainsi, même si la configuration est correcte, il faut attendre que Telma mette en place le
XML-RPC sur son serveur, pour que la liaison soit enfin effective. Une alternative consiste à utiliser
URL Fopen, qui permet à PHP de récupérer le contenu à distance, mais cette solution n'est elle non
plus pas disponible. A ce jour, le souci n'est toujours pas résolu.

Illustration 15 – Les deux alternatives ne sont pas disponibles

Une deuxième solution est elle aussi en cours d'élaboration, avec le changement
d'hébergement. En effet, le Ministère a annoncé avoir mis à disposition un serveur destiné à
héberger ce site. Cependant, le serveur se situe à Tananarive, et personne n'a pas encore
communiqué les informations de connexion.
Nous sommes donc en attente d'une réponse venant de Telma ou du Ministère.

Rapport de stage GONTHARET Florent 21


C. Bilan

I. Le stage
Ce stage de trois mois au sein de l'Institut Supérieur de Technologie d'Antsiranana s'est très
bien déroulé. L'ambiance au sein de l'équipe est très bonne, les échanges se font facilement, et le
travail en est lui aussi facilité.
Les problèmes posés demandent une part d'investissement, De plus, le manque de
moyens, ou d'électricité font partie des contraintes. C'est donc un travail d'adaptation, de
recherches, pour trouver des solutions et les réaliser.
Durant ce stage, j'aurai découvert la vie à l'IST-D, les démarches à accomplir au sien d'une
telle organisation, et comment s'articule la journée type d'un administrateur réseau. J'aurai aussi
appris les enjeux d'un tel réseau, ses multiples facettes, et les différents acteurs qui rentrent en
jeu.
Chaque mission qui m'a été confiée avait un but et une application précise. J'ai beaucoup
aimé les phases de recherches, d'étude, avant d'entamer l'installation et la configuration. Chaque
point ayant ses particularités, et son domaine de connaissances l'accompagnant. C'est donc un
travail polyvalent et chaque jour a sa part d'apprentissage et de découverte.

II. Point de vue professionnel


A l'issue de ces trois mois, je peux faire un point sur l'enseignement dispensé ces deux
dernières années au sein du DUT R&T.
En effet, mettre en place un nouveau serveur sur le réseau, adapter les configurations
existantes des équipements déjà en place, sont des points déjà largement abordés. Ils ne m'ont
d'ailleurs pas posé problème.
Les étapes d'installation des plate-formes diffèrent de l'une à l'autre, mais là encore il s'agit
de points abordés en cours pour beaucoup. En effet, l'administration de systèmes Linux fait partie
des enseignements. Les phases plus spécifiques à l'application sont des phases de recherches, de
documentation, et d'apprentissage, mais nous avons appris à nous servir des documentations
disponibles sur Internet, et à les exploiter.
Cependant, il est extrêmement difficile de gérer l'avancée comme vu lors du projet de
deuxième année. En effet, les acteurs extérieurs (notamment Telma), les contraintes techniques et
budgétaires, les coupures de courant, sont autant de facteurs agissant directement sur l'avancée
du projet. Il faut donc une certaine flexibilité et adaptabilité pour avancer, et ne pas accumuler de
retard.

Rapport de stage GONTHARET Florent 22


III. Point de vue personnel
Au cours de ce stage, j'ai pu solidifier et les connaissances et les techniques apprises au
cours de ces deux années de DUT. J'ai pu élargir mes compétences au delà de ces années. Cela a
aussi bénéficié à développer mon autonomie et ma capacité à gérer un projet. Aussi, pour venir en
complément, je souhaite élargir mes connaissances sur les réseaux étendus, et participer à des
projets pour venir en aide à ces établissements.
Le fait de partir à Madagascar pour réaliser ce stage s'inscrit au cœur d'un projet de vie. En
effet, l'idée de voyager ne m'est pas nouvelle, et cette opportunité m'a permis de la concrétiser.
Partir travailler dans un autre pays permet d'aller à la rencontre d'une autre population en dehors
du cadre touristique. Cela permet aussi de découvrir des habitudes et coutumes différentes . De
plus, c'est un sentiment d'utilité enthousiasmant de réaliser projet comme celui-ci.
La polyvalence et la mobilité sont deux points importants pour moi. Ce sont aussi deux
atouts dans le monde du travail. Ainsi, toujours dans une optique de réalisation de mon projet de
vie, je souhaite continuer d'apprendre et d'élargir mes connaissances, tout en intégrant le voyage.
Je souhaite, dès la rentrée prochaine, continuer en DUETI pour obtenir un équivalent de Licence
Télécommunications & Réseaux, afin de pouvoir poursuivre en Master T&R.

D. Conclusion
Mener un projet en autonomie, et étendu sur trois mois, m'a permis de renforcer mes
connaissances, et de les mettre en pratique. J'ai pu renforcer mes capacités à gérer un projet, et à
faire face aux différentes situations qui peuvent se révéler problématiques.
Le travail mené durant ces trois mois de stage a permis de répondre aux attentes du cahier
des charges. Les différentes tâches ont été réalisées dans le respect des délais donnés, et avec une
écoute attentive aux attentes de l'établissement. Et ce, malgré les pannes diverses, les problèmes
d'électricité, et les débits du réseau ne permettant pas de travailler dans des conditions optimales.
Pour conclure, c'est un stage très enrichissant du point de vue personnel et professionnel. Il
reste cependant beaucoup à faire concernant le développement du réseau de l'IST-D. Les moyens
déployés dans l'infrastructure sont faibles, et l'accès aux ordinateurs est souvent difficile.

Rapport de stage GONTHARET Florent 23


E. Lexique

– Apache
Fondation à but non lucratif. Elle développe des logiciels open-sources (sous la
licence Apache).

– BIOS (Basic Input Output System)


Ensemble de fonctions primaires d'un ordinateur, permettant l'initialisation du
matériel et le démarrage du système.

– Compilation
Action de transformer les sources d'une application en un programme exécutable
par la machine.

– Délestage
Lorsque la demande en électricité dépasse la production, l'approvisionnement est
temporairement coupé dans certaines zones, afin de rétablir l'équilibre.

– DNS (Domain Name System)


Service permettant notamment de faire le lien entre un nom de domaine et une
adresse IP, pour permettre de joindre un serveur plus facilement.

– DTS (Diplôme de Technicien Supérieur)


Diplôme délivré par l'IST-D au terme de deux années de formation. Il atteste de la
qualification professionnelle de l'élève.

– DTSS (Diplôme de Technicien Supérieur 2)


Diplôme délivré par l'IST-D au terme de trois années de formation. Il atteste de la
qualification professionnelle de l'élève.

– Flash
Ensemble d'applications permettant la manipulation d'images, de vidéos, ou
d'audio, permettant la création d'animations.

– iFrame
Technologie Web permettant l'incrustation d'une page Internet au sein d'une autre,
dans un cadre.

Rapport de stage GONTHARET Florent 24


– FTP (File Transfert Protocol)
Protocole destiné au transfert de fichiers sur un réseau informatique.

– Java
Langage de programmation multi plates-formes orienté objet. Très utilisé en
entreprise.

– Librairie
Ensemble de fichiers de fonctions déjà écrites, mis a disposition pour accélérer le
développement d'une application.

– MySQL
Système de gestion de base de données gratuit mais non open-source.

– PHP (Hypertext Preprocessor)


Langage de programmation libre, permettant la création de pages Web dynamiques.

– Plug-in
Module d'extension permettant l'apport de nouvelles fonctionnalités à un logiciel
pour le compléter.

– Polycom
Terminal de visioconférence.

– Streaming
Technologie de diffusion continue de contenu multimédia. Le serveur transmet
progressivement le fichier sous forme de flux, qui est lu au fur et à mesure par le
client. C'est un « téléchargement provisoire ».

– SSH (Secure SHell)


C'est à la fois une application et un protocole de communication sécurisé. Les
communicants doivent s'authentifier, puis les échanges sont chiffrés.

– XML-RPC (XML-Remote Procedure Call)


Protocole permettant à des applications s'exécutant dans des environnements
différents, d'appeler des méthodes par le biais du réseau.

Rapport de stage GONTHARET Florent 25


F. Index des illustrations

– Plan de situation global.........................................................................................................1


– Plan de situation locale.........................................................................................................2
– Topologie du réseau..............................................................................................................3
– Carte du réseau national Telma............................................................................................4
– Organisation du réseau électrique d'Antsiranana................................................................5
– Moodle installé avec son nouveau thème..........................................................................10
– La gestion des droits sous Moodle......................................................................................11
– Configuration du module OpenMeetings pour Moodle.....................................................16
– Intégration d'OpenMeetings au sein de Moodle................................................................17
– Activation de l'accès web-services......................................................................................18
– Sélection du protocole dans Moodle..................................................................................19
– Paramétrage des droits du nouveau compte......................................................................19
– Génération du jeton Moodle pour Joomdle.......................................................................20
– Gestion du module Joomdle sous Joomla..........................................................................20
– Les deux alternatives ne sont pas disponibles....................................................................21

Rapport de stage GONTHARET Florent 26


G. Annexes
• Annexe I – /opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/[Link]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

[Link]

Unless required by applicable law or agreed to in writing,


software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.

-->
<persistence xmlns="[Link] xmlns:xsi="[Link]
instance"xsi:schemaLocation="[Link]
[Link] version="2.0">
<persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
<provider>[Link]</provider>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link].Organisation_Users</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>

Rapport de stage GONTHARET Florent 27


<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<class>[Link]</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="[Link]" value="unsupported" />
<property name="[Link]"
value="[Link]" />
<property name="[Link]"
value="DriverClassName=[Link]
, Url=jdbc:mysql://localhost:3306/DBNAME?
autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-
8&amp;connectionCollation=utf8_general_ci&amp;cachePrepStmts=true&amp;cacheCallableStatements=true&amp;c
acheServerConfiguration=true&amp;useLocalSessionState=true&amp;elideSetAutoCommits=true&amp;alwaysSendSe
tIsolation=false&amp;enableQueryTimeouts=false&amp;prepStmtCacheSize=3000&amp;prepStmtCacheSqlLimit=100
0 , MaxActive=100
, MaxWait=10000
, TestOnBorrow=true
, poolPreparedStatements=true
, Username=DBUSER
, Password=DBPASSWORD" />
<property name="[Link]" value="buildSchema" />
<property name="[Link]" value="DefaultLevel=WARN, Runtime=INFO" />
<property name="[Link]" value="true" />
<property name="[Link]" value="false" />
<property name="[Link]" value="batchLimit=100" />
<property name="[Link]" value="false" />
</properties>
</persistence-unit>
</persistence>

Rapport de stage GONTHARET Florent 28


• Annexe II – /var/www/moodle/mod/openmeetings/openmeetings_gateway.php
<?php
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License") + you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* [Link]
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

require_once($CFG->dirroot.'/mod/openmeetings/lib/openmeetings_rest_service.php');

class openmeetings_gateway {
var $session_id = "";
function getUrl() {
global $CFG;
$CFG-> openmeetings_red5host = $_SERVER["HTTP_HOST"]; //Ligne rajoutée
$port = $CFG->openmeetings_red5port == 80 ? '' : ":" . $CFG->openmeetings_red5port;
return "[Link] . $CFG->openmeetings_red5host . $port . "/" . $CFG->openmeetings_webappname;
}
function var_to_str($in) {
if(is_bool($in)) {
if($in)
return "true";
else
return "false";
} else
return $in;
}
function openmeetings_loginuser() {
global $CFG;
$restService = new openmeetings_rest_service();
$response = $restService->call($this->getUrl()."/services/UserService/getSession","session_id");
if ($restService->getError()) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
$this->session_id = $response;
$result = $restService->call($this->getUrl()."/services/UserService/loginUser?"
. "SID=".$this->session_id
. "&username=" . urlencode($CFG->openmeetings_openmeetingsAdminUser)
. "&userpass=" . urlencode($CFG->openmeetings_openmeetingsAdminUserPass)
);

Rapport de stage GONTHARET Florent 29


if ($restService->getError()) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP
body)</h2><pre>'; print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
$returnValue = $result;
}
}
}
}
if ($returnValue>0)
return true;
}else
return false;
}
function openmeetings_updateRoomWithModeration($openmeetings) {
global $CFG;
$restService = new openmeetings_rest_service();
$err = $restService->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) .
'</pre>';
exit();
}
$course_name = 'MOODLE_COURSE_ID_'.$openmeetings->course.'_NAME_'.$openmeetings->name;
$isModeratedRoom = false;
if ($openmeetings->is_moderated_room == 1) {
$isModeratedRoom = true;
}
$result = $restService->call($this->getUrl()."/services/RoomService/updateRoomWithModeration?" .
"SID=".$this->session_id.
"&room_id=".$openmeetings->room_id.
"&name=".urlencode($course_name).
"&roomtypes_id=".urlencode($openmeetings->type).
"&comment=".urlencode("Created by SOAP-Gateway").
"&numberOfPartizipants=".$openmeetings->max_user.
"&ispublic=false".
"&appointment=false".
"&isDemoRoom=false".
"&demoTime=0".
"&isModeratedRoom=".$this->var_to_str($isModeratedRoom));
if ($restService->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
return $result;
}
}
return -1;
}
function openmeetings_setUserObjectAndGenerateRecordingHashByURL($username, $firstname,

Rapport de stage GONTHARET Florent 30


$lastname, $userId, $systemType, $recording_id) {
$restService = new openmeetings_rest_service();
$result = $restService->call($this->getUrl().
'/services/UserService/setUserObjectAndGenerateRecordingHashByURL?'.
'SID='.$this->session_id .
'&username='.urlencode($username) .
'&firstname='.urlencode($firstname) .
'&lastname='.urlencode($lastname) .
'&externalUserId='.$userId .
'&externalUserType='.urlencode($systemType) .
'&recording_id='.$recording_id,
'return');
if ($client_roomService->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
return $result;
}
}
return -1;
}
function openmeetings_setUserObjectAndGenerateRoomHashByURLAndRecFlag($username, $firstname,
$lastname, $profilePictureUrl, $email, $userId, $systemType, $room_id, $becomeModerator, $allowRecording) {
global $CFG;
$restService = new openmeetings_rest_service();
$err = $restService->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) .
'</pre>';
exit();
}
$result = $restService->call($this->getUrl().
"/services/UserService/setUserObjectAndGenerateRoomHashByURLAndRecFlag?" .
"SID=".$this->session_id.
"&username=".urlencode($username).
"&firstname=".urlencode($firstname).
"&lastname=".urlencode($lastname).
"&profilePictureUrl=".urlencode($profilePictureUrl).
"&email=".urlencode($email).
"&externalUserId=".urlencode($userId).
"&externalUserType=".urlencode($systemType).
"&room_id=".urlencode($room_id).
"&becomeModeratorAsInt=".$becomeModerator.
"&showAudioVideoTestAsInt=1".
"&allowRecording=".$this->var_to_str($allowRecording));
if ($restService->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
return $result;

Rapport de stage GONTHARET Florent 31


}
}
return -1;
}

function deleteRoom($openmeetings) {
global $CFG;
$restService = new openmeetings_rest_service();
$err = $restService->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) .
'</pre>';
exit();
}
$result = $restService->call($this->getUrl()."/services/RoomService/deleteRoom?" .
"SID=".$this->session_id.
"&rooms_id=".$openmeetings->room_id);
if ($restService->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
return $result;
}
}
return -1;
}
function openmeetings_setUserObjectAndGenerateRoomHash($username,
$firstname,
$lastname,
$profilePictureUrl,
$email,
$externalUserId,
$externalUserType,
$room_id,
$becomeModeratorAsInt,
$showAudioVideoTestAsInt) {

global $CFG;
$restService = new openmeetings_rest_service();
$result = $restService->call($this->getUrl().
"/services/UserService/setUserObjectAndGenerateRoomHash?" .
"SID=".$this->session_id.
"&username=".urlencode($username).
"&firstname=".urlencode($firstname).
"&lastname=".urlencode($lastname).
"&profilePictureUrl=".urlencode($profilePictureUrl).
"&email=".urlencode($email).
"&externalUserId=".urlencode($externalUserId).
"&externalUserType=".urlencode($externalUserType).
"&room_id=".$room_id.
"&becomeModeratorAsInt=".$becomeModeratorAsInt.
"&showAudioVideoTestAsInt=".$showAudioVideoTestAsInt);
$err = $restService->getError();
if ($err) {

Rapport de stage GONTHARET Florent 32


echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) .
'</pre>';
exit();
}

if ($restService->getError()) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
return $result;

}
}
return -1;
}

/**
* Create a new conference room
*/
function openmeetings_createRoomWithModAndType($openmeetings) {
global $USER, $CFG;
$restService = new openmeetings_rest_service();
$course_name = 'MOODLE_COURSE_ID_'.$openmeetings->course.'_NAME_'.$openmeetings->name;
$isModeratedRoom = "false";
if ($openmeetings->is_moderated_room == 1) {
$isModeratedRoom = "true";
}
$url = $this->getUrl().'/services/RoomService/addRoomWithModerationAndExternalType?' .
'SID='.$this->session_id .
'&name='.urlencode($course_name).
'&roomtypes_id='.$openmeetings->type .
'&comment='.urlencode('Created by SOAP-Gateway') .
'&numberOfPartizipants='.$openmeetings->max_user .
'&ispublic=false'.
'&appointment=false'.
'&isDemoRoom=false'.
'&demoTime=0' .
'&isModeratedRoom='.$isModeratedRoom .
'&externalRoomType='.
urlencode($CFG->openmeetings_openmeetingsModuleKey);
$result = $restService->call($url, "return");
if ($restService->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result); echo '</pre>';
} else {
$err = $restService->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
return $result;
}
}
return -1;
}

Rapport de stage GONTHARET Florent 33


/**
* Get list of available recordings made by this Moodle instance
*/
function openmeetings_getRecordingsByExternalRooms() {
global $CFG;
$restService = new openmeetings_rest_service();
$url = $this->getUrl()."/services/RoomService/getFlvRecordingByExternalRoomType?" .
"SID=".$this->session_id .
"&externalRoomType=".urlencode($CFG->openmeetings_openmeetingsModuleKey);
$result = $restService->call($url,"");
return $result;
}
}
?>

Rapport de stage GONTHARET Florent 34


H. Bibliographie

– [Link]
Site du système d'exploitation Debian, utile pour trouver toutes sortes de paquets.
En anglais.

– [Link]
Site internet du module d'intégration de Moodle à Joomla. On y trouve un wiki très
complet et indispensable pour la configuration. En anglais.

– [Link]
Plate-forme de l'ENT Moodle. Comporte un wiki assez peu documenté en français,
mais bien plus complet en anglais, ainsi qu'un forum. Utile pour trouver des
modules ou de la documentation.

– [Link]
Site internet de la fondation Apache, pour l'application OpenMeetings. En anglais, il
est cependant complet. Attention cependant, des informations sont obsolètes.

– [Link]
Site internet de la distribution linux Ubuntu. La documentation est cependant riche,
et le forum actif. On y retrouve des tutoriels, valables pour Debian. En français.

Rapport de stage GONTHARET Florent 35


Dans le cadre d'un partenariat existant entre le département Réseaux &
Télécommunications (R&T) de l'IUT d'Annecy, et l'Institut Supérieur de Technologie (IST)
d'Antsiranana, à Madagascar, je suis parti effectuer mon stage de fin de DUT R&T au sein de cet
établissement.

Ce stage concernait la mise en place d'un environnement numérique de travail, ainsi que
l'intégration au sein de ce dernier, d'une solution de vidéo-conférence. Ceci, dans le but de
permettre aux enseignants comme aux étudiants, de pouvoir bénéficier d'intervenants extérieurs
plus facilement, et de faciliter l'accès des étudiants aux cours et aux autres documents.

Vous pourrez grâce à ce rapport, suivre les différentes étapes, de l'étude à la mise en place.
Vous trouverez aussi les différents problèmes rencontrés, et les solution apportée à ceux-ci pour
répondre au mieux aux attentes de l'établissement.

In the existing partnership between the Networking & Telecommunications Department of


the University of Annecy (France), and the Higher Institute of Technology in Antsiranana
(Madagascar), I went in this establishment to execute my internship, required to finish my
Networking & Telecommunications DUT.

This internship was about the installation of a digital working environment, and the
integration in this environment, of a video conferencing solution. In order of facilitating the
interaction between remote and local teachers or even students, and facilitating student's access
to their lessons and to others documents.

With this report, you will follow the different steps, from the analysing to the installation.
You will find the different problems, and their solution to fix them, in order to answer better to the
establishment's waitings.

Vous aimerez peut-être aussi