Documente Academic
Documente Profesional
Documente Cultură
DublinRoad
CoWestmeath
Ireland
IUTAdeLilleI
BoulevardPaulLangevin
59650Villeneuved'Ascq
Miseenplaced'unservicedetlphonie
dansunrseaulocalpersonnalis
QuentinBezsilko
Tuteurdansl'entreprise:MonsieurAnthonyCunningham
Tuteurdestage:MonsieurMaxChlebowski
15Juin2009
QuentinBezsilko
16/06/09
REMERCIEMENTS
JetenaisremerciertoutparticulirementMonsieurMaxChlebowskipournousavoirsuivitoutau
longdecestage.JeremerciegalementMonsieurPatrickLebguepouravoirportattentionauxdivers
problmes que j'ai rencontrs. Je remercie Monsieur Sylvestre Vanuxem pour ses prcieux conseils
concernantlaralisationdecestage,ainsiquel'ensembledesenseignantsdudpartementinformatiquede
l'IUTdeLille1pourlaconfiancequ'ilsm'onttmoigneetpouravoirrenducestagepossible.
JevoulaisgalementremercierMonsieurAnthonyCunninghampournousavoirsuiviavecattention
toute la dure du stage et pour son accueil chaleureux dans le centre de recherche de l'AIT, ainsi que
MonsieurCormacMullally,membredel'quipederechercheversquinousnoussommestournsquandnous
avionsdesdifficultstechniqueseninformatiqueetencommunication.
QuentinBezsilko
16/06/09
RSUMENFRANAIS
MonstagedefindeformationenDUTinformatiques'estdroulenIrlandedanslavilled'Athlone,
aucentrederecherchedel'AthloneInstituteofTechnology,clbrepouravoirmenleprojetSUNAT.Aprs
avoircomprisenquoiconsistaitlamissionducentre,nousavonspucommencernotreprojettoutensachant
qu'ilallaittreorientverslerseau.Denotrepointdevue,celuiciconsistaitenlamiseenplaced'une
solutionVoIPdansunrseaulocalpersonnalis.Nousavonspu,aucoursdeceprojetmenenbinme,
dcouvrirquelstaientlesprotocolesimpliqusdanslefonctionnementdelatlphonieparInternet.Nous
avonspugalementcomprendreenquoiconsistaitletravailderechercheainsiqu'avoiruneideplusprcise
decequ'estlemondedel'OpenSource.Parailleurs,lesliensquenousavonspufaireavecnotreformation
sontasseznombreux.Deplus,lesprogrsquenousavonsfaitsenAnglaissontconsidrables.Ainsi,lebilan
humainmontrequelpointlestageauratuneexprienceenrichissante.Ils'inscritdanslacontinuitdela
formationquenousavonspusuivrel'IUT.
QuentinBezsilko
16/06/09
ENGLISHSUMMARY
OurplacementwhichputsanendtoourstudiesattheIUTInformatiqueofLilletookplace
inIrelandinAthlonetown,attheresearchcentreoftheAthloneInstituteofTechnology,famousfor
havingdevelopedtheSUNATproject.Afterhavingunderstoodwhattheirworkconsistedof,we
wereabletobeginourtask,knowingitwouldbenetworkorientated.WehadtoinstallaVoIP
solutiononbothalocalareanetworkandasimulatedInternet.Wehadtheopportunityduringthis
binomialprojecttofindoutwhichprotocolswereinvolvedinthevoiceovertheInternetprotocol.
Wealsohadtheopportunitytounderstandmoreabouttheworkthatacomputerscienceresearcher
doesandalsohadabetterunderstandingabouttheworldofOpenSourcesoftware.What'smore,we
wereabletocreatelinksbetweenthenotionswelearntduringourstudiesandtheworkwedid
duringtheplacement,andtheimprovementwemadeinenglishwasreallyimportanttoo.Therefore
thehumanappraisalshowsthisplacementhasbeenaveryenrichingexperienceasfarasweare
concerned.ItisthelogicalcontinuitytothestudiesweweretaughtattheIUTInformatiqueofLille.
QuentinBezsilko
16/06/09
SOMMAIRE
REMERCIEMENTS...................................................................................................................................page3
RSUMFRANAIS...............................................................................................................................page4
ENGLISHSUMMARY...............................................................................................................................page5
SOMMAIRE...............................................................................................................................................page6
INTRODUCTION......................................................................................................................................page7
DVELOPPEMENT
1.CHOIXDUSTAGEETPRSENTATIONDUCENTREDERECHERCHED'ATHLONE
a)lechoixdustagel'tranger....................................................................................................................page8
b)Descriptiondescomposantesducentrederecherche.............................................................................page8
c)LeprojetSUNATetlesrelationsducentrederechercheaveclesentreprises........................................page9
2.LESPROJETSRALISSENSTAGE
a)premierprojet:miseenplaced'unservicedetlphonieparInternet..................................................page11
b)deuximeprojet:miseenplaced'unrseaupersonnalissurInternet.................................................page16
c)Installerunrseauvirtuelavecportmirroingenutilisantunswitch.....................................................page19
3.LESAPPORTSDUSTAGE
a)lamthodologie.....................................................................................................................................page21
b)lesapportstechniques............................................................................................................................page21
c)lesapportshumains...............................................................................................................................page22
CONCLUSION........................................................................................................................................page24
ANNEXES...............................................................................................................................................page25
GLOSSAIRE............................................................................................................................................page42
BIBLIOGRAPHIE....................................................................................................................................page46
QuentinBezsilko
16/06/09
INTRODUCTION
De nos jours, l'une des priorits dans le monde de l'informatique consiste en l'amlioration des
moyensdecommunication.Eneffet,lesentrepriseslesplusractivessurlemarchtantcellesquigagnent
lespartsdisponibles,cellesciprouventdeplusenpluslebesoindecommuniquerdanslemondeentieren
tempsrelavecleursassocis,clientsetfournisseurs.
C'estpourquoilecentrederecherched'Athlonebassurlecampusdel'AIT(acronymeutilispour
AthloneInstituteofTechnology)orientesesrecherchessurlacommunicationdanslebutdel'amliorer
(rductiondescotsdescommunicationsetdestempsd'attentedesutilisateurs).Fondeen2003,son
prochain projet est de dvelopper un logiciel leur permettant de faciliter leur travail de recherche. Ses
rsultatspermettentgalementlemaintiendelarputationdel'AITcommeuncentred'excellencedansle
domainedel'ingnierieinformatique.
DanslecadredenotrestagequiconclutnotreformationenDUTinformatique,ilnousatdemand
avecmonbinmedemettreenplaceunservicedetlphoniepassantparleprotocole*Internettravers
unrseaupersonnalis.Nousnousattendionsmenerunprojetencorrlationaveccequefaitlecentrede
recherched'Athloneetcebienqu'ils'agissaitpournousd'unenouvelleexprience.
Ilnousfallaitdoncrflchirpoursavoircommentprocderdanslarsolutionduproblme.tant
donn que les projets de l'AIT sont dits Open Source*, nous avons men notre travail sur un systme
d'exploitationluiaussiOpenSource:Linux*.Sonutilisationnenousapasposdeproblmeparticulier
parcequenousavionsapprisl'utiliserlorsdenotreformation.Nousavonsgalementmenuntravailde
rechercheassezconsquentpourcomprendrelesnotionsquenousavonsmanipules.
Toutd'abord,lesinformationsquenousavonspurecenserlorsdenosdiverseslecturesnousontt
trsutilespourcomprendreleproblmequinousatpos.Ensuite,unefoisleproblmebiencompriset
analys, nous avons pu ensuite commencer sa rsolution. Enfin, le bilan de ce stage montre que cette
exprienceattrsenrichissanteenparticuliersurleplanhumainmaisaussisurlesplansmthodologique
ettechnique.
QuentinBezsilko
16/06/09
I.CHOIXDUSTAGEETPRSENTATIONDUCENTREDERECHERCHE
A)Lechoixdustagel'tranger
Lapremirequestionquelelecteurpeutseposerestdesavoirpourquoij'aichoisidefaireunstage
l'tranger.Enralit,ils'agissaitpourmoid'unprojetauquelj'avaisrflchidepuisdelonguesannes.Je
voulaisavoirl'opportunitdedcouvrirunpaysanglophoneetainsipratiquerunelanguequej'tudiedepuis
unpeuplusd'unedizained'annes.De plus,c'estuneculturequej'apprcietoutparticulirement.Cela
m'auraitgalementpermisd'largirmonespritcritique,demieuxcomprendrecequisepasseautourdemoi
etdedcouvrirdenouvellesmthodesdetravail.
C'estpourquoij'aisaisicetteopportunitquandelles'estprsentemoi.Deplus,monprofesseur
d'Anglaism'avaitconseilldefaireunstagel'tranger,carj'avaisselonluiunbonpotentieletcecine
pouvaittrequepositifpourlasuitedemestudesdansl'informatique.C'estpourquoij'aichoisidefairemon
stageenIrlandedanslavilled'Athlone.
Ainsi,nousavonstreusparMonsieurAnthonyCunninghamquitaitnotretuteuraucoursde
notrestage.Ilnousaprsentlecentrederecherchedanslequeliltravailleetnousapermisdemieux
comprendredansqueldomainesesituaitleurrecherche.Ilestaujourd'huichefdeprojetauseinducentrede
recherchemaisgalementresponsabledudveloppementdelogicielspourMidlandsInnovation*.Lalecture
desdocumentsenparticulierlecahierdescharges*duprojetSUNAT*quionttmisnotredisposition
nousontapportdesinformationscomplmentairessurl'histoireducentrederecherchedel'AIT.
B)Descriptiondescomposantesducentrederecherche
Lecentrederechercheatcreen2003.Ilreprsenteaujourd'huiunepremirequipeconstitue
devingtdeuxcontratspleintemps,deuxdoctorantsetunequipederecherchecomposedetroistudiants
quiprparentunPhD(enIrlande,cediplmeestquivalentaudoctorat),quatreenseignantschercheurs
tempspleinettreizechercheursayantuncontratduredtermine.Actuellement,l'quipederecherchea
pour objectif de dvelopper un logiciel ( plus prcisment un Middleware* ) capable de distribuer des
donneshtrognesdanslanouvellegnrationderseauxetainsis'adapteraucontexteactuel.
L'quipequitravaillesurceprojetestcomposedeseptmembresetunchefdeprojet.Lamajorit
d'entreeuxsontIrlandaismaisilsontprfrfaireappeldeuxdveloppeursvenusdeChineparcequece
paysralisebeaucoupdetravailderecherchesurlesrseaux.C'estunemaind'oeuvrequalifiequiaainsi
apporttoutesonexprienceendmontrantcommentlespaysasiatiquesbasaientleurrflexionpourla
constructiondeleurspropresrseaux.
Nousavonsgalementprisconnaissancedesrapportsdeprojetsquionttpublis.Onyretrouve
QuentinBezsilko
16/06/09
quelquesnotionsclscommelecahierdescharges,explicitantlanatureexactedutravail,lajustificationdes
cotsdechaqueprojetainsiquequelquesnotionsdestatistiquesquivontleurpermettredegagnerdutemps
etd'acquriruneffetd'exprience*pourlesprojetsvenir.C'estdirequelecentrederecherchevaprofiter
desesrcentsprojetspourendmarrerunnouveausurdesolidesbasesetainsigagnerdutemps.
Cetteprsentationfttrsbnfiquepournous.Certes,letempsutilispourprendreconnaissance
desactivitspeutparatreunpeutroplong(deuxsemaines),maisnoussavionsensuitequelsoutilsnous
allionsutiliseretquellevoienousdevionssuivrepourmenerbiennotreprojet.Nousavonspuprendre
consciencedel'enjeufinancierquereprsentaitlesprojetsmensparlecentrederechercheainsiqueleur
collaborationaveclesentreprises.Cemodlenousasemblbiendiffrentdeceluiquenouspouvonstrouver
enFrance.
Notreadaptationaucentrederechercheftgrandementfaciliteparlesconnaissancestechniques
quenousavonspuacqurirlorsdenotreformation.Eneffet,nousavonseunotredispositiondessourcesde
divers projets mens par le centre de recherche, en particulier celui nomm SUNAT. Ils ont choisi
d'implmenter leurs programmes en langage C parce que ce langage est celui avec lequel Linux a t
implment mais aussi parce que ce projet est Open Source, ce qui ne nous a pas pos de problme
particulierpourcomprendredequoiilenretournait.
C)LeprojetSUNATetlesrelationsentretenuesaveclesentreprises
LeprincipalprojetmenparlecentrederechercheesttrscertainementleprojetSUNAT(Seamless
UsethroughNetworkAbstractionTechnologies).C'estceprojetquiaapporttoutelanotoritducentrede
recherche. Il aura pour objectif de faciliter le dveloppement de logiciels dans un environnement de
convergencefixemobile.Parexemple,siunutilisateurentredansunenvironnement,avecunaccsInternet
sansfil,letlphonepeutsemuerenunnoCostVoice,quivalentunecommunicationtlphoniquepar
Internet.Cecipermetderduiredemanireconsidrablelescotsparcequesonprixrevientceluid'une
connexionInternet.Ceprojetdevraittreterminpourledbutdel'anne2011.
L'quipequiaraliseceprojettaitconstituedeseptmembres.Laplupartd'entreeuxavaient
acquisunebonneexprienceettaientemploysdansl'entrepriseEricsson,l'unedesplusimportantesen
Irlande.Voiciunecourteprsentationdesesmembres:
AustinHanleyestlattedelasectioningnieriel'AITetprofesseurdeMaths.IlarejointEricssonen
1980.
EndaFallonatravaillpourEricssonjusqu'en2001.C'estellequiarcoltunegrandepartiedesfonds
(deuxmillionsd'euros)pourmenerleprojet.
Dr.AdrianMatthewsestpassparl'universitdeQueen'sdeBelfast.Aujourd'hui,ilestdocteurdansle
domainedelaphysiqueettudielecomportementdesatomes.
Dr.PaulJacobestemployactuellemententantquechercheur.Ilarejointl'equipederechercheen1994et
superviseleslvesquitententaujourd'huidedcrocherleurMasterrechercheenInformatique.
DrRobertStewartestprofesseuretsespcialisedanslacommunicationparmobile.Ilestdiplmd'unphD
(docteur)l'universitdeQueenMarydeLondres.
Dr.DeclanByrnepossdeplusdevingtansd'expriencedansl'industrie.Ilestprofesseurdemathmatiques
QuentinBezsilko
16/06/09
etd'informatique.
JohnYuansengQiaopossdeseptansd'expriencedansl'industrie.Ilestdevenuchercheurl'AITen2005
etsespcialisedanslarsolutiondesproblmesderseau.Nousavonstsescollgueslorsdenotrestage.
Les entreprises Irlandaises spcialises dans la dveloppement de produits manufacturs vont
pouvoirenprofiterpleinementparcequecettenouvelletechnologievavenirs'inscriredansleurprocdde
fabricationsansgrandedifficulttechniqueetainsidevenir(ouresterselonquel'onparledupaysoudes
entreprises) les meilleurs fournisseurs de ce march. C'est pourquoi le centre de recherche possde un
nombreassezconsquentdepartenairesenIrlande.Eneffet,desentreprisesderputationmondialecomme
Ericsson,EircometAppleTreesoutiennentfinancirementlarecherchedanslepays.
LecottotalduprojetSUNATatestimunpeuplusd'unmilliond'eurosetlesprojetsencours
sontestimsenvironquatremillionsetdemid'eurosetceciconcerneseulementl'AIT.Ilexisteplusieurs
centresderechercheenIrlandeetlesprincipauxsontplacsdanslesgrandesvilles.AinsileCIT(Cork
InstituteofTechnology)aconuunoutildestinaudomainemdicaltoutcommeleGIT(GalwayInstituteof
Technology)etleDIT(DublinInstituteofTechnology)basesarecherchedansledomainedelaPhysique
ChimiedanssoncentreappelleCREST(CentreforResearchinEngineeringSurfaceTechnology).
Etantdonnquenousavionscomprislastructureducentre,sesmissionsetquenousavionsfait
connaissanceaveclesmembresdel'quipe,nouspouvionsdslorsconcentrernoseffortssurletravail
mener.Jemesuisparticulirementrjouisdel'orientationduprojetverslerseaupuisquej'avaisrencontr
quelquesproblmesdanscedomainelorsdemaformationetj'avaisainsil'opportunitderattrapermon
retard.Untravailpratiquenepouvaitainsitrequebnfiquepourmoi.
QuentinBezsilko
10
16/06/09
II.LESTAGE
A)Miseenplaced'unservicedetlphonieparInternet
Dslapremiresemaine,nousavonsmendefrontlesbasesduprojetetlalecturedesdocuments
misnotredispositionsurlecentrederecherche.Nousavonstoutd'abordprocdl'installationdeLinux
pourtravaillersurunsystmestable,quelquechosequenousavionsapprisfairelorsdenotreformation.
Puis,notretuteurnousafourninotrepremiertravail.CeluiciconsistaitenladcouverteduprojetOpenSIPS.
Ilnousfallaitcomprendrepourquoiilavaittimplmentetprocderl'installationdulogicielsurnos
machines.
LeprojetopenSIPSconsisteenuneimplmentationd'unserveurSIP*OpenSource,nonseulement
surleplandelalicence,maisaussiauvudesapolitiquequandonregardelacontribution,lacooprationet
lacommunautquiytravaille.Ladiversitvientdunombreimportantdepersonnesimpliquesdansle
projet,ainsiquedelarichesseetdesnombreusescaractristiquesd'OpenSIPS.OpenSIPSestlacontinuation
duprojetOpenSER.Ilpossdetoujoursl'espritdel'OpenSourceetdelacommunaut,maisgalement
l'envieduprogrstraversunprocessussolidedeconsolidation.
Bassurl'expriencedelaversionprcdente,cetteconsolidationestprimordialepourgarantirles
meilleurs rsultats dans le projet. Un environnement consolid est ncessaire pour l'implmentation de
projetsvolumineuxdontlebutestdefournirunesolutionprofessionnellepourlemondedel'industrie.
CetravailsurOpenSIPSquiconsistaitenuneinstallationnousaparusimpleaupremierabordalors
qu'enralit,ilftplusdifficilequ'onnepouvaitlepenser.Letravailderechercheesttoutd'abordvenu
s'orientersurleprotocoleSIP.Nousavionsvuslorsdenotreformationunprotocoleparticulier:leprotocole
TCP/IP*.Maisceluicitaitbiendiffrentdecequenousavionsappris.
SIPestl'abrviationdeSessionInitiationProtocol.Ils'agitd'unprotocoleouvertstandardsouvent
utilisdanslestlcommunicationsmultimdia(son,image).UncompteSIPpermetainsil'utilisateurde
bnficierdetouslesservicestlphoniquestraditionnels(confrence,doubleappel).Ilestlepluscourant
pourlatlphonieparInternet,appellaVoIP(VoiceoverInternetProtocol).Onl'utilisegalementpour
d'autresapplicationscommelavisiophonie,lamessagerieinstantane,laralitvirtuelleetlesjeuxvidos.
LeschmacidessousdcritunecommunicationSIP.L'metteurdumessageenvoieuneinviteau
destinatairepourtablirunesession.Ledestinatairerpondavecunmessageayantunstatutdevaleur180,ce
quisignifiequeletlphonesonne.Dsqueledestinatairedcroche,unenouvellerponseavecuncodede
retourgal200estenvoye,cequisignifiequeledestinataireaacceptl'invitation.L'metteurrecoitun
accusderception(ACK*)quicertifiedel'tablissementdelaconnexion.Lelecteurpourravoircomment
estmodliseuneinviteSIPenannexe1.
QuentinBezsilko
11
16/06/09
Schma1:reprsentationschmatiqued'unecommunicationparleprotocoleSIP
LeprotocoleVoIPpermetquantluidecommuniquerparlavoixviaInternetotoutautrerseau
quiaccepteleprotocoleTCP/IP.IlpermetdesupporterleservicedetlphonieIP(TelephonyoverInternet
Protocol).Sonhistoireremonteen1877lorsdesapremireutilisationcommerciale.Iladoncvoludepuis
plusdecenttrenteannes.C'estunprotocoleutilispresquepartoutmaissonprincipalinconvnientrside
danslefaitqu'ilesttropsouventpartagavecd'autresapplications.
Nous avons tent finalement avec succs d'installer OpenSIPS sur nos machines. La
caractristiqued'treOpenSourcepourunlogicielestpositiveparcequetoutlemondepeutamliorer,
utiliserets'approprierleprogramme.Maisuninconvnientrsidedanslefaitquelapublicationlibrede
tutorielssurleWebsembleparfoiss'avrerinexacte.C'estunproblmeauquelnousavonstconfronts
durantcetteinstallation.Aprsavoirpassuntempsassezconsquentrechercherunfichierd'installation
valide,nousavonspuinstallerlelogicieletl'utiliser.
QuentinBezsilko
12
16/06/09
Schma2:fonctionnementdesdiffrentsprotocolesdanslemodleOSI.
Nousavonsensuitedcidd'enrdigerunlorsdenotreinstallation.Ilfallaitdanscetexercicefaire
preuvederigueurtoutenessayantd'treleplusprcispossible.Cetyped'installationsembledjcompliqu
pouruninformaticienc'estpourquoiilfauttresrquelelecteurseraenmesuredesuivrecequenousavons
tentd'expliquer.Lelecteurpourradcouvrirletutoriel*creenannexe2.Ildcrittouteslesmanipulations
effectuerpourinstallerlelogiciel.Nousavonssollicitl'aidedenotretuteurpourchoisirlesmotsparceque
laprincipalecaractristiqued'untutorielestsaclart.Aprsplusieurscorrections,nousl'avonsvalidet
publisurInternet.Lelecteurpourraleretrouversurlesitedel'AIT(www.ait.ie).
Celogicieldoitimprativementtreaccompagnd'uneinterfaceclient.C'estaveclelogicielXLite
quenoussommesparvenusprocderunappeltlphoniquetraverslewebenutilisantleprotocoleSIP.
Celogicielnousapermisdecrerlesclientsduserveurauquelnousnoussommesconnects.Nouslesavons
stocksdansunebasededonnes(unebaseMySQLatchoisie).Cecinousagalementpermisd'utiliser
noscomptencesenbasededonnes.Nousavonsdoncputablirunlienentrecequenousavionsapprislors
denotreformationetletravailenentreprise.Ilfallaitgalementprocderunetapedeconfigurationpour
pouvoirl'utilisercorrectement.Celogicielcontenaitunfichierexplicatifpourl'installationmaisnousn'avons
pastrouvd'aidepourleconfigurer.Ainsi,notrerecherchenousaunefoisdepluspermisdetrouverune
solutionetnousavonsproposnotretuteuruntutorielpourlaconfigurationdulogiciel.Lelecteurpourra
lirelecontenudecetutorielenannexe3.
QuentinBezsilko
13
16/06/09
LanotionlaplusimportantequenousavonspuapprendreproposduprotocoleSIPestcertainement
qu'ilcontientlemessageSDP*.SDPestl'abrviationdeSessionDescriptionProtocol.Ils'agitld'unformat
pour dcrire les paramtres d'initialisation du flux dit mdia sous forme d'une chane forme par des
caractresdelatableASCII.LeprotocoleSDPnedlivrepaslemessageluimme,ilpermetsimplementde
dcrirelasessiondecommunication,l'inviteetlesparamtresditsdengociation.C'estunprotocoledestin
uneextensionpourlesnouveauxsupports(mdiaetformats).
Ainsi,nousavonspueffectuerunappeltlphoniqueparInternetl'aidedulogicielOpenSIPSetde
l'interface client Xlite. Nous avons utilis une base de donnes MySQL pour sauvegarder les donnes
concernantlesclients.Laprincipaledifficultprouversidaitdansletravailderecherche.Ilnousfallait
dcouvrirlemodleSIPainsiqueleslogicielsutiliss.Cecinousapermisdenousamliorerdansnotre
manire de rechercher les informations et de consolider les savoirs que nous possdions concernant les
rseauxinformatiques.
Enapartavecletravaild'installation,nousavonspulireparmilesnombreuxdocumentsquenous
avionsparcourusdessourcesd'unlangagequenousavionsbeaucouputilislorsdenotreformation:leJava.
Cecodesourcequelelecteurpourraretrouverenannexe4montreuneutilisationparmilesplussimplesdu
protocoleSIPl'aidededeuxpaquets:
java.http.*
java.http.sip.*
Ceciestunevisionintressanteparcequenousavonsainsitcapablesdemieuxcomprendrecommentle
protocolefonctionnaitetceciconstituaitunpointdevuediffrentsurleprotocoleSIP,plusorientsurles
notionsquenousavionsmanipuleslorsdenotreformation.Ils'agitd'uneservlet*,unprogrammeJava
particulierquenousavonsappriscrireunpeuplusttdanslesemestre.
Une fois l'appel ralis, nous l'avons analys, pour comprendre exactement comment un appel
tlphonique tait ralisable par Internet. C'est avec un autre logiciel Open Source que nous avons pu
analyserleprocessus.Celogiciels'appelleWireshark*.Ilestdestinl'analysederseauxdansplusdehuit
centprotocoles.C'estl'outillepluspopulairedanslemonde,ilesttrspuissant,scurisetfournitdes
informationssurlesprotocolesrseauxetapplicatifspartirdedonnescaptures.Ilutiliseunebibliothque
particulireappelepcappourcapturerlespaquets.Ilpossdedenombreusesfonctionnalits(tri,filtrage
dedonnes,suividespaquets).
Nousavonspudenouveaucrerdesliensaveclesnotionsquenousavionstudiesaucoursdenotre
formation.Eneffet,celogicielnouspermettaitderetrouverledatagrammeIPV4*,danslequelsetrouveen
particulierleprotocoleutilispourl'envoidumessage,l'adressesourceetdedestinationdumessageainsi
quelatailledumessage.Maislaprincipaleinformationquecetteanalysenousapermisdecomprendreest
quecettemaniredeprocdertaittrspeuconvaincante,parcequ'ellenefonctionnepassilelocuteurne
connaitpasl'adresseIPdesoninterlocuteur,uncasquiestassezfrquentdanscetypedesituation.C'est
pourquoiilnousfallaitprocderautrement.Nousavonsdoncdcidd'ajouterunproxy*notreinstallation.
Leproxy(traduitenfranaisparunserveurmandataire)estunserveurplacentredeuxutilisateurs
quineconnaissentpasleursemplacementsrespectifs(notionmieuxconnuesouslenomd'adresseIP*).En
effet,l'associationentrel'utilisateuretl'adresseIPatpralablementstockedansunebasededonnespar
unregistrar*.Leproxyestcapabled'interrogercettebasepourredirigerlesmessagesverslebondestinataire.
IlnesecontentequederelayerlesmessagesSIPpourtablir,contrleretterminerlasession.
Quandlasessionest tablie, les donnes (par exemple le flux RTPpour le protocole VoIP) ne
transitentplusparleserveur,ellessontdirectementchangesentrelesdiffrentsutilisateurs.Cesserveurs
mandatairessontsurtoututilissparcequecelapermetde:
journaliserlesrequtes.
QuentinBezsilko
14
16/06/09
scuriserlerseaulocal.
filtrerlesmessagesetlesrendreanonymes.
Ilestdoncimportantdel'utiliserpourscuriserparexemplelessystmesd'informations.
LelogicielutilispourmettreenplaceleproxyestappelMediaProxy.Ils'agitd'unrelaipourle
protocole RTP/RTCP*, ainsi que pour les flux UDP* qui fonctionnent en tandem avec OpenSIPS pour
fournirunrseauutilisantleprotocoleNAT*.Ainsi,MediaProxyseconduitcommeunerelaipourlesflux
ditsmdiaetpermettentuntransfertdefluxaudioetvidoenpassantparlerouteursansavoirlebesoin
d'installerdesoutilssupplmentairesayantuncotlev.
LerleprincipalduprotocoleRTPconsisteenlamiseenuvredesnumrosdesquencedes
paquetsIPpourreconstituerlesinformationsdevoixetcemmesilerseausousjacentenchangel'ordre.
RTPestl'abrviationdeRealTransferProtocol.Ilpermet:
d'identifierletyped'informationtransporte.
d'ajouterdesmarqueurstemporelsetdesnumrosdesquence(remiseenordredespaquets).
decontrlerl'arrivedestinationdespaquetsparl'envoid'accussderception.
Il contient des informations prcieuses concernant la transaction comme la version du protocole, son
extension,lenumrodesquence(lanotionlaplusimportanteici)ainsiqueletypedefluxenvoy.
Pourinstallerleproxy,noussommesrepartissurlesmmesbasesdetravailquelorsdel'installation
d'OpenSIPS.Eneffet,cecinousapermisdeprendredel'exprienceetd'amliorernotremthodedetravail.
Nous sommes parvenus trouver le bon fichier qui expliquait clairement les dmarches suivre pour
installer correctement le logiciel plus rapidement et le temps pris pour effectuer l'opration a t
considrablementrduit.
Nousavonsapprisunnombreimportantdenotionslorsdel'installationduproxy.Eneffet,ilnous
fallaitnousdocumenteretlarecherchemenenousapermistoutd'abordpermisdefaireconnaissanceavec
denouveauxprotocoles(SIP,RTP,SDP),puisdemieuxcomprendrecommentilsfonctionnaientlesunsavec
lesautres.Nousavonsgalementputablirunlienentrelesnotionsquenousavionstudieslorsdenotre
formationetlesnotionsquenousavonsappriseslorsdenotrestage.Ils'agissaitpournousd'unenouvelle
faondevoirletravailderecherche,diffrentdeceluidel'IUTcarcontrairementnotreformation,nous
n'avonspastmissurlavoiepourtrouverlesbonnessources.Nousavonsbiencomprisl'intrtd'utiliserle
proxydanscecasdefigure:ilpermetdesavoirquelestletempsexactdecommunication,doncderduire
lescotsmaisonl'utiliseicisurtoutparcequesanslui,lacommunicationauraittimpossiblesachantquele
locuteurneconnaissaitpasl'adresseIPdesoninterlocuteur.
Voicilediagrammequireprsentelasituation.Nousobservonsquelssontlesprotocolesmisenjeu
danscetteapplication(SIP,SDP,RTP/RTCP,TCP/IP).Nouspouvonsgalementanalyserquelssontlesoutils
ncessairespourlamiseenplaced'untelenvironnement(notonsl'importancedelaprsenceduproxyetdu
dispatcher).
QuentinBezsilko
15
16/06/09
Schma3:communicationtlphoniqueparInternetenutilisantunproxy
Lapremirepartieduprojetnousapermisdecomprendrecommentfonctionnaitlacommunautde
l'OpenSource.Lagratuitdeslogicielsnedonnepasunautreutilisateurledroitd'exigerdesfichiersd'aide
pourl'installation.Ainsi,lemoyenquenousavonsutilispourrsoudreledernierproblmerencontr(faire
passerlesmessagesSDPparleproxy)atd'envoyerunmessagesurunforumadaptetunutilisateur
expriment nous a rpondu le lendemain. Nous avons ainsi pu terminer le premier projetet passer au
second,c'estdirel'installationd'unrseaulocalpersonnalissurInternet.
B)Miseenplaced'unrseaupersonnalissurInternet
Lapremirepartiedenotreprojettanttermine,nousavonsensuitetravaillsurunersolution
possibledescarencesquepossdeactuellementleprotocoledecommunicationIPV4.Eneffet,cemcanisme
arrivesaturationdeparl'extensioninattenduequesembleprendreInternet,leschiffresannoncentquece
phnomneprendrarellementeffetvers2010.Cettecroissanceexponentiellen'avaitpastenvisageetdes
solutionsdoiventtreapportesdanscesens.Ainsi,estapparuleprojetduprotocoledecommunication
IPV6,quiconsisteenuncodagedesadressesIPsurcentvingthuitbitsaulieuducodagesurtrentedeuxbits
utilispourlesadressesIPV4.Maiscettesolutionesttrsonreuse.
QuentinBezsilko
16
16/06/09
Uneautresolutionexisteetconsisteenlatraductiond'adressesdetyperseau.Ils'agitdefaire
correspondrelesadressesIPinternesnonuniquesetsouventnonroutables*(c'estdirequ'onnepeutpas
prciserlasourcelecheminsuivrepourarriveraudestinataire)d'unIntranetversunensembled'adresses
externesuniquesetroutables.Cemcanismepermetdefairecorrespondreuneseuleadresseexternepublique
visiblesurInternettouteslesadressesd'unrseauprivetpallielacarencedesadressesIPV4d'Internet.
Danscettesituation,onditqu'unrouteur*faitduNAT(abrviationdeNetworkAddressTranslation)traduit
enfranaispartraductiond'adressesrseau.
Audeldelaraisonpourlaquellecemcanismeatprincipalementcre,leNATpermetgalement
de scuriser encore un peu plus son rseau. En effet, la passerelle* (en anglais gateway) cachant
compltementl'adressageinternedurseau,lemcanismedetraductiond'adressespermetunefonctionde
scuritcardupointdevuedel'observateurexterneaurseau,touteslesrequtessemblentprovenirde
l'adresseIPdelapasserelle.Leschmacidessousdtailledemanireplusexplicitelasituation.
Schma4:miseenplaceduNAT
Nousavonsdoncinstalldenouvellesmachinespourconfigurernotreenvironnement.Leprocessus
utilistaitidentiqueceluichoisiprcdemment.LeslogicielsopenSIPSetMediaProxyonttrutiliss,
QuentinBezsilko
17
16/06/09
tout comme la base de donnes MySQL. Au total, quatre machines taient prises en compte dans la
constructiondenotreLAN*(localareaNetwork).Nousavonsgagnuntempsconsidrableenayantprofit
d'uneffetd'expriencepuisquenousavionsraliscetteoprationquelquesjoursauparavant.
Le matriel mis notre disposition pour installer notre environement tait assez important.
L'installation a t rendue difficile par notre manque d'exprience et notre travail de recherche pour y
parveniraencorettrsconsquent.Nousavonstentdechercherdesdocumentsquipouvaientnousaider
etnousenavonsbeaucoupquinenousontpaspermisdersoudrenotreproblme.Finalement,enayantbien
configurleprincipalfichier,noussommesparvenusconnectertouslesordinateursaurouteurquenous
avonsutilis.Nousavionsdoncconstruitunrseaulocalauseinducentrederecherche.
Al'aide des prcieuxconseils que nous avons pu obtenir, nous avons su immdiatement quel
endroitnousdevionsregarderpoursavoircommentconfigurernotrerouteur.Cequinousapermisdegagner
dutemps.Ils'agissaitenralitd'uneadresseIPparticulirequenousdevionssaisiraulancementdenotre
connexionInternet.Nousconnaissionslesparamtressaisiretnousavonspuprocderlaconfigurationet
l'installationdenotrerouteur.Nousavonsludanslapagedeconfigurationquelenombremaximalde
machinesquenouspouvionsconnectertaitaunombredecinquante,maisparsoucidesimplicit,nousn'en
avonsutilisquequatre.
Cependant,unproblmepersistequandnousmettonsenplaceuntelenvironnement.Eneffet,un
contrle est effectu par rapport l'utilisateur externe au rseau donc ceci constitue bien une scurit
supplmentaire par rapport au modle prcedent. Mais ce procd ne prend en compte les utilisateurs
connectsunserviceetquisetrouventendehorsdu parefeu*.C'estpourquoinousavonseubesoinde
l'intgrernotreenvironnement.
Unfirewall*estunlmentdurseauinformatique,logicielet/oumatrielquiapourfonctionde
fairerespecterlapolitiquedescuritdurseau,cellecidfinissantlestypesdecommunicationinterditsou
autoriss.Ilcontrlelestrafficsentrelesdiffrenteszonesdeconfianceenfiltrantlesfluxdedonnesquiy
transitent.Engnral,lesfluxdedonnesincluentInternetetaumoinsunrseauinterne.
Cecipermetdoncdupointdevuedel'utilisateurdecontrlerlesprivilgesd'accsetdelimiter
l'utilisationdesressourcesdurseauauxpersonnesautorises.Cefiltrageestralissurdiffrentscritres
comme l'origine et la destination des paquets, les options contenues dans les donnes, l'anciennet des
utilisateurs.Parailleurs,ilexisteplusieurscatgoriesdeparefeucommeceluiditsanstat(stateless)quiest
leplusanciendesfiltragesrseaux,ouencoreleparefeuapplicatifquiconstitueladerniremoutureetquia
la capacit de vrifier la conformit du paquet parrapport unprotocole donn. Le quatrime
schmaexpliquedemanireplusconcrtelefonctionnementduparefeu.
Schma5:fonctionnementduparefeudansunrseauinformatique
QuentinBezsilko
18
16/06/09
Ilestcependantcertainqueleparefeupossdequelqueslimites.Eneffet,ilneconstituepasune
scuritabsolue.Ilneprotgelerseauquesil'ensembledescommunicationsversl'extrieurpasseparson
intermdiaireetqu'ilestcorrectementconfigur.Donctoutaccsaurseauextrieurparcontournementdu
parefeuconstitue une faille de scurit. De mme, l'introduction de supports de stockage provenant de
l'extrieursurdesmachinesinternesaurseauousurdesordinateursportablespeutporterprjudicela
scuritglobaledurseau.
Cetteinstallationatrenduepossibleparlaconnaissancequenousavionsdesbasesdedonnes.En
effet,ceprogrammeystocketouslesutilisateurs.Nousn'avonspaseudemalmodifierlesadressesIPpour
quelaconnexions'effectuecorrectement.Cependant,undernierproblmepersistaitparcequetouterelance
du programme efface les donnes sauvegardes prcdemment dans la base en ce qui concerne les
utilisateurs.Nousavonsdoncdciddetrouveruneautresolutionpourautomatiserletraitement.
Cederniertravailderechercheatpltotrapidedeparl'effetd'expriencequenousavonsacquis
lorsdel'installationdenotreproxy.Certes,lamthodeutilisetaitlgrementdiffrentemaisladmarche
taitpresqueidentique.IlnousafallumodifierlescriptdeconfigurationdulogicielOpensips.C'estdeparle
logicielWiresharkquececiatrendupossible.Eneffet,l'analysedespaquetsfttrsutilecarcecinousa
permisdecomprendrequelendroitlesmessagesneprenaientpaslabonnedirection.
Nousavonsainsiterminnotresecondprojetdansleslimitesquinousavaienttimparties.Le
travailleplusdifficileauratlarecherched'informationscarilprendbeaucoupdetempsmaisaussiparce
quelenombredemodulesutilisspourcrerlelogicielestassezconsquent.Nousavonsaussiterminla
documentationconcernantl'installationd'unrseaupersonnalisenpassantparleNAT.Nousavonsttrs
contentd'avoirraliscetteinstallationparcequecetravailaurauneimportancedansl'avenirpourlecentre
derecherchedel'AIT.
C)Installationd'unrseauvirtuelavecportmirroingenutilisantunswitch
L'tapesuivanteconsistaitenunmontaged'unrseauayantunniveauencorepluslev.Lebuttait
demettreenplaceunrseaupermettantle portmirroring*enutilisantunswitch*.Lerseauainsicre
pouvaittrequalifiderseauvirtuel(appelpluscourammentVLAN*pourvirtualLAN).Aulieudepasser
directement du NAT prcedemment cre au logiciel Opensips, nous voulions passer par un switch
intermdiairedanslebutd'interconnecterlesdeuxsegmentsdenotrerseaulocal).
Pourcela,unmodleassezonreuxatmisnotredisposition.Lefaitd'avoirceswitchnotre
dispositionnousamontrtoutelaconfiancedel'quipederecherche.Nousavonsdoncessaydel'utiliser
correctementafindemettreenplaceleschmademand.Cependant,nousn'avionsjamaisutilisunteloutil
lorsdenotreformation,c'estpourquoinousavonsprisletempsdebiennousdocumentersurlesujetpourne
pasperdredetempsentantinduitenerreur.
Lepremiertravailquenousavonsralisaconsistenlarecherched'informationssurleswitch.
Nousavonspuamliorernotreconnaissancesurcetoutilpuisquenousavionsapprisquoiilservaitlorsde
notreformation.Pourrsumer,cetoutilpermetderelierplusieurssegments(cablesoufibres)dansunrseau
informatique.Pourfonctionner,ilmetjourunetabled'adressesquiluipermetensuitedesavoirsurquel
portildoitredirigerlesmessages,sachantqu'ilexisteplusieursmthodespourlefaire.Ensuite,nousavions
besoindeconnatresonadresseIPpourpouvoireffectuernotreconfiguration.
Pourtrouverl'adresseIPduswitch,nousavonsutilisletravaileffectuprcedemment,c'estdire
QuentinBezsilko
19
16/06/09
lamiseenplacedenotrerouteur.Eneffet,cellecinousapermisdeconsulterlatablederoutagemisejour
automatiquement.Nousavonsdoncchoisicommesolutiondebrancherlerouteuravecleswitch.Puisnous
avonsconsultlatablederoutagequicontenaitbienl'adresseIPduswitch.Nousavonsainsitenmesure
d'effectuerlaconnexionavecnotreswitch.Laconfigurationaensuitetsimplifieetnousavonspuraliser
unappeltlphoniquetraversleNATetleswitch.
Unproblmeintressantauquelnousavonsensuitetentderpondreestledlaiprispourfairele
lienentrelemoduleOpensipsetlestlphones.Pourcela,nousavonsutilislemoduleJpcapquiala
particularitd'treOpenSourceetquiatcrpourtrecompatibleaveclamajoritdesversionsdeLinux
etdeWindowsenayantsuivilesconseilsdenotretuteur.Aprsunecourteprocdured'installationetde
configuration,nousavonspuprocderl'critured'unprogrammepermettantdecalculercedlai.Nous
avons suivi une procdure stricte de documentation comme nous avions appris le faire lors de notre
formation,cequinousapermisdegagnerdutempscarnoussavionsdesuitequelendroitnousdevions
cherchernousinformations,savoirlajavadoc*.
Pourcela,nousavonseubesoinunefoisdeplusdefaireappeluneaide.Nousl'avonstrouvesur
unforumspcifiquel'utilisationdumodulejpcap*proposparJava.Leproblmequenousavonsrencontr
taitassezdifficilersoudreseuls.IlnousfallaitpouvoirdistinguerlespaquetsRTCPmislorsd'une
conversationtlphoniquealors qu'aucunfiltre nelepermettait lorsde l'xcutionde notre programme.
N'ayantobtenuaucunerponsenouspermettantd'obtenirunesolutionpourrsoudrenotreproblme,nous
avonschoisid'implmenternotreprogrammed'uneautremanire.
Lesportsdelasourceetdeladestinationtantlesseulescaractristiquesdupaquetpermettantde
reconnatreleprotocoleRTCP,nousavonsdoncchoisidebasernotrerflexionsurceuxci.Nousavonspu
ainsisavoirquelstaientceuxdestinslasourceetceuxdestinsladestination.Lestimestamps*nousont
permisdecalculerledlaientrechaquepartieselonuneformulequenousavonspuretrouverdansun
documentdel'IETF.Letempsquenousavonsutilispourvenirboutdeceproblmetaitassezconsquent
maisilenvalaitlapeine.Nousavionsbienconsciencedel'enjeuqu'ilreprsentaitpourleprojetmenpar
notretuteurc'estpourquoinoustenionsabsolumentrussiruneimplmentationcorrecte.Lelecteurpourra
retrouverlessourcesdeceprogrammeenannexe5.
Notreprojets'estterminsurlelogicielpermettantdecalculerledlaimoyen.Atraversletravail
effectu,nousavonspunousrendrecomptequelestagenousapermisd'acqurirbeaucoupd'expriencetout
d'abordparcequ'ils'agissaitdenotrepremierstageenentreprise.Iltaittempspournousd'effectuerunbilan
destroismoispasssaucentrederecherche.
QuentinBezsilko
20
16/06/09
III.LESAPPORTSDUSTAGE
a)Lamthodologie
Lesdiversestapesquiontconstituceprojetonttpourlamajoritd'entreellesdenouvelles
expriences.C'estpourquoilamthodologieutiliselorsdecestagetaitunpeudiffrentedecellequenous
avionspuacqurirlorsdenotreformation.Deplus,lesexigencesdel'entreprisesontsuprieurescellesdes
professeurs.Ainsi,nousavonspunousadapterunnouvelenvironnement,d'unctsurletravaileffectuen
stageetd'unautrectsurlaculturedupaysdanslequelnousl'avonseffectu.
Laplusgrandepartiedutravaillorsdecestageaconsistenlarecherched'informationsconcernant
les diffrents protocoles de communication. Certes, nous avions dj vu en cours quelques notions qui
abordaientlesujetmaislescomptencesrequisespourmeneruntelprojettaientaudessusdenosmoyens.
Cependant,l'intrtsuscitparletravaileffectunousapermisd'oubliernotremanqued'expriencesurle
sujetetainsinousnoussommesmisauniveaupourpouvoircomprendrelesdiffrentesnotionsabordes.
Nousavonsdoncchangnotrepointdevuesurleproblmepos.
Cequinousapermisdecomprendrequelarecherchencessiteunespritcritique.Ilfautabsolument
vrifierlesinformationsquel'onpeuttrouvercarsanscela,nouspouvonspartirsurunemauvaisevoie,
recommencertoutletravaileffectuetnepastrercompensdenotretravail.Deplus,lapertedetemps
peuts'avrerdsastreusepourl'entreprise.
Alorsquelorsdenotreformationlamajoritdestravauxs'effectuaientseuls,lestageenentreprise
nousapermisd'avoirunenotionplusconcrtedecequ'estletravailenquipe.Laplupartdestravaux
entreprisonttralissavecunautretudiant,cequiestmieuxpourapercevoiruneerreurdelogiqueoude
raisonnement.Deplus,laconfrontationdespointsdevuenouspermetdemieuxrflchir,dedvelopperun
espritcritiqueetd'aborderplussereinementdestravauxdifficiles.
b)Lesapportstechniques
Letravailquinousavonsparticulirementapprciestlacrationdututorielconcernantl'installation
dulogicielOpenSIPS.Eneffet,cetravailtaittoutd'abordutileparcequ'ilpourratrerutilispard'autres
informaticiensettoutecrationquiestutileauxautresvainciterledveloppeurpoursuivresesefforts.
Nousn'avionsjamaisralisuntravailsimilaireauparavantetilnousapermisdenousinscriredansla
logiquedel'OpenSource.Ils'agissaitpournousd'unenouvelleexpriencetrsenrichissante.
Ainsi,nousavonspuamliorernotrecapacitderecherchedesinformations.Deplus,lesprojets
OpenSourcesontpardfinitionlibresd'accs.Ainsi,ladocumentationpeutparfoiss'avrerinexacte.Nous
ne sommes pas en droit d'exiger du crateur une quelconque documentation puisque nous utilisons un
QuentinBezsilko
21
16/06/09
programmequinenousappartientpas.Ils'agitd'unprogrammedontlecrateuratrsgnreusementchoisi
delelaisserlibred'accs.
Deplus,cetravailderecherchenousagalementpermisd'amliorernotresavoirconcernantles
rseauxinformatiques.Nousavonspuconstaterqu'ils'agissaitd'undomainericheetvari.Lesnotionsont
t trs difficiles saisir au premier abord mais avec le temps et beaucoup de patience, nous sommes
parvenuscomprendrelemcanismequipermetdefairefonctionnerlesprotocolesquenousavonstudiset
leurimbricationlesunsaveclesautres.Surleplanpdagogique,cestageaurattrscomplet.
Nousavonspucrerdesliensentrelesnotionstudieslorsdenotreformationetcellesquenous
avonsutiliseslorsdenotrestage.Laformationcomplmentairedontnousavonspubnficierlorsdenotre
stagenousdmontrequeletravaileffectuerpourrestercomptitifestassezconsquent.Laremiseniveau
constitueenquelquesorteuneautremthodedetravailquenousavonspuapprendrependantcestroismois
destageparcelorsdenotreformation,nousnesavionspasquelpointiltaitimportantdecontinuer
manipulerlesnotionstudies.
c)Lesapportshumains
Nous avons galement punous rendre compte de l'ampleur que semble constituer ce monde de
l'OpenSource.Eneffet,ilexisteactuellementuneimportantecommunautquitravailledansunbutnon
lucratifetdontl'undesprincipauxobjectifsestdepermettreunaccsplusrapideetplusfaciletousles
utilisateursn'ayantpasoupeud'exprience.Nousavonspuainsiapporternotremodestecontributionau
mondedel'OpenSourcelorsdelardactiondecetutorieletaffinernotrevisionpuisqu'cesujet,nousen
avionsuneidequitaitbiendiffrentedelaralit.
Cetteprisedeconscienceconcernantlapuissancedumondedel'Opensource,nousladevonsnotre
travailconcernantl'installationduproxy.NousvoulionsfairepassernosfluxSDPparluimmemaisnousne
savionspascommentprocder.Ainsi,unmembreparmil'quipedescrateursdecelogicielarponduun
jourplustardunmessagequenousluiavionsenvoydanslequelnoussollicitionsleuraide.Bienque
l'erreurtaitminime(inversiondel'ordredesparamtresdansunfichierdeconfiguration),jenepensepas
quenousaurionstcapablesdelatrouvercourtterme.Cetteaidenousaurapermisdegagneruntemps
considrableetdefinircettemanipulationdansledlaiquinoustaitimparti.
Lespersonnesavecquinousavonstravailllorsdenotrestagenousontapportleurexprience.Tout
d'aborddansledomainedel'informatique,ellesonttoujourstcapablesderpondrenosquestionsquand
nousavionsbesoindeleuraide.Ensuite,nousavonspupratiquernotreanglaisetlamargedeprogression
dontnousavonspuprofiterestassezimportante.Elledmontrel'attentionporteparnostuteursquandnous
noustionsdansuneimpasse.Enfin,nousavonspudcouvriruneculturediffrentedelantre.L'quipede
recherchetantconstituedemembresdenationalitsdiffrentes,elleapunousfairecomprendrequele
mondedel'informatiquenepouvaitserduireniuneentreprise,niunpays.
Nous avons galement apprci les compliments que nous avons reus lors de notre stage, en
particulierquandnousavonstcapablesdemettreenplacelasolutionVoIPpourlecentrederecherche.
Nousnenoussommespasrenduscompteimmdiatementdel'ampleurquesembleavoirletravailquenous
avonseffectu.Eneffet,cettesolutionseradsormaisutiliseparlecentrederecherchequandilseraamen
communiquertraverslepays.Lefaitdesesentirutiledansuneentrepriserendleprogrammeursatisfait
desontravailetl'incitepoursuivresesefforts.
QuentinBezsilko
22
16/06/09
Letravaileffectuparuntudiantfaisantpartiedelapromotionprcdenteestactuellementrutilis
parlecentrederecherche.Ils'agitd'unlogicielquipermetdechoisirenpourcentagelaqualitdufluxmdia
qui est diffus en direct d'un ordinateur un autre. Le fait de savoir qu'il y avait une probabilit de
rutilisationdenotretravailparlecentrederecherchenousaapportunemotivationsupplmentairedans
notretravail.L'ambiancedetravailtaitexcellentetoutaulongdustageetnousn'avonspaseulamoindre
difficultexposernosdifficults,touslesmembressesontmontrstrscomprhensifsnotregard.
J'ai galement compris que la recherche est un domaine qui me conviendrait bien puisque
j'affectionnelarecherched'informations,larsolutiondesproblmesainsiquel'apprentissagedenotions
informatiquestraverslalectured'articlesdepresse,detutorielsetdedocumentsfournispardesorganismes
rputs.C'estpourquoijevaistenterdepoursuivremestudespouravoirl'opportunitd'effectuercemtier.
QuentinBezsilko
23
16/06/09
CONCLUSION
CetteexprienceenIrlandeauseinducentrederechercheauratpourmoilameilleuredepuisque
jetravailledanslemondedel'informatique.Ils'agissaitd'unprojetauquelj'avaisrflchidepuisplusieurs
annesetjem'taisbienprparpourpouvoirleraliser,enparticulierdansl'apprentissagedel'anglais.J'ai
pucomprendredeschosesdontjeneconnaissaispasl'existenceavantmonstage,enparticulierdanslemilieu
des rseaux informatiques. Le projet men avait une logique bien perceptible puisque chaque tape
constituaituneamliorationdenosinstallations,etilm'apermisd'amliorermescapacitsdecomprhension
desproblmesetmthodologiquesenparticulierlorsdelarecherchedesinformations.Biensr,nousavons
tassezsouventconfrontsdesproblmesquenouspensionsnepastrecapablesdersoudre,maisla
persvrance et l'aide de notre tuteur de stage nous ont permis de nous en sortir chaque difficult
rencontre.J'entiredoncunbilantrspositifetj'espredenouveauavoirl'opportunitd'effectuerunstage
aussiplaisantetintressantqueceluil.Ilm'adonnuneperspectiveencequiconcernemonavenir.
QuentinBezsilko
24
16/06/09
ANNEXES
Annexe2:letutotield'installationd'OpenSIPS:
****************************************************
*
*
*
Author:QuentinBezsilko&BenjaminGrassart
*
*
Dateofcreation:23rdofApril
*
*
*
****************************************************
ThisfileisatutorialexplainingstepbystephowtoinstallOpenSIPSon
alinuxdistribution.IthasbeeninstalledonUbuntu8.10(32bits)butstill
workswithotherversions.
Firstwewillseehowtoinstallopensipswithadatabaseandafterhowtoaddamediaproxyrelay.
Tostart,weneedtofindallthesystemforupdateandupgrade.
We'llalsoneedsomeprogramstouseOpenSIPS.
Inordertodoso,openaterminalandrunthefollowingcommands.
Note:Youshouldbeloggedinasthesuperusertoexecutethesecommands.
bezsilko@bezsilkoubuntu:~$su
Password:
Ifitworked,youcangotothenextstep!
#######################################################################################
QuentinBezsilko
25
16/06/09
Ifyoudon'tknowyourrootpasswordorifyouhaven'tsetitalready,trythis.
bezsilkq@bezsilkqubuntu:~$sudopasswd
[sudo]passwordforbezsilkq:
Theconsolewillaskyoursudopassword.
Thenyou'llbeabletoenteranewrootpassword.Aconfirmationwillbeasked.
Amessageofconfirmationwillbewrittenifthepasswordhasbeensuccesfullychanged.
#######################################################################################
Onceyou'reloggedinasroot,youshouldhaveacommandinvitelikethis.
root@bezsilkqubuntu:/home/bezsilkq#
Thechar'#'provesyouareloggedinasroot
Nowyoucaninstalltheprogramstoconfigureyourenvironment.
aptgetupdate&&aptgetupgrade
aptgetinstallbuildessentialopensslbisonflex
aptgetinstallmysqlserverlibmysqlclient15offlibmysqlclientdev
Note:Whenyouwillsetmysqlup,apasswordwillbeaskedtolaunchit,forbiddinganyonetowriteinto
yourdatabase.Don'tforgettocreateyourrootpasswordandchoosesomethingyou'llremember.
Youcannowdownloadthelastversionofopensips.We'llsavethesourcesandputthemintheappropriate
directory:/usr/src.
Nowadaysthelatestversionis1.5.1,sowewilluseit.Youcanhavealookattheofficialwebsite
http://www.opensips.org/tocheckthelastversion.
***************************************************************************************
FirstMethod(usingtheterminal):
Trythesecommands:
bezsilkq@bezsilkqubuntu:~$cd/usr/src
bezsilkq@bezsilkqubuntu:~$wgethttp://opensips.org/pub/opensips/latest/src/opensips1.5.1tls_src.tar.gz
Thiscommandwillsavethepackageintoyour/usr/srcdirectory.
***************************************************************************************
***************************************************************************************
SecondMethod(usingthebrowser):
GototheOpensipsofficialwebsite:http://www.opensips.org/.Havealookattherightofthepage,clickon
readmoreandgotothedownloadsection.*
Note:Becareful,OpenSIPSCPisacontrolpanelforopensips,butit'snotOpenSIPS!
Downloadthelatestversionofopensips.Clickonthelinkinthesection:2.TarballsfromSourceForgeand
takethetlsversion.
Weneedtomovethesourcesintotheproperdirectory,soopenaterminalandexecutethiscommand:
QuentinBezsilko
26
16/06/09
bezsilkq@bezsilkqubuntu:~$sudomv/home/bezsilkq/Desktop/opensips_1.5.1tls.tar.gz/usr/src/
***************************************************************************************
Thisfileisinanarchivesoweneedtousethiscommandtoextractit:
bezsilkq@bezsilkqubuntu:~$tarxvzfopensips1.5.1tls_src.tar.gz
Thecommandtarextractsyourpackageintoyourdirectory.Formoreinformationtrythisintoyourterminal:
bezsilkq@bezsilkqubuntu:~$mantar
Now,we'regoingtoplaceourselvesintotheopensipsdirectoryandcompilethesourceswithalltheavailable
modules.Todoso,usethefollowingcommand:
bezsilkq@bezsilkqubuntu:~$cdopensips1.5.1tls
bezsilkq@bezsilkqubuntu:~$makeallinclude_modules="db_mysql"modules
bezsilkq@bezsilkqubuntu:~$makeinstallinclude_modules="db_mysql"modules
We'llalsoneedtocopytheopensips.defaultandopensips.initfilesintheirproperdirectories
(/etc/default/opensipsand/etc/init.d/opensips).
Todoso,trythesecommandintoyourterminal:
bezsilkq@bezsilkqubuntu:~$cp/usr/src/opensips1.5.1tls/packaging/debianetch/opensips.default
/etc/default/opensips
bezsilkq@bezsilkqubuntu:~$cp/usr/src/opensips1.5.1tls/packaging/debianetch/opensips.init
/etc/init.d/opensips
Note:Thecommandcpisshortforcopy.Trythisformoreinformations:
bezsilkq@bezsilkqubuntu:~$mancp
Thelastcopiedfilesneedsomechangesabouttheiroptionvalues.
First,openthe/etc/default/opensipsfilewithemacsorvim.
Note:formoreinformationsaboutbothtexteditors,trythesecommands:
bezsilkq@bezsilkqubuntu:~$manemacs
bezsilkq@bezsilkqubuntu:~$manvim
Changethefollowinglinesandsave.
RUN_OPENSIPS=yes
1.Usertorunas
USER=opensips
1.Grouptorunas
GROUP=opensips
1.AmountofmemorytoallocatefortherunningOpenSIPSserver(inMb)
MEMORY=128
Second,openthe/etc/init.d/opensipsfileandmakethefollowingchanges(don'tforgettosave).
Thelineyou'llhavetochangeisDAEMON=/usr/sbin/opensips.
PutDAEMON=/usr/local/sbin/opensipsinstead.
QuentinBezsilko
27
16/06/09
Thirdweneedtochangethe/usr/local/etc/opensips/opensipsctlrcfile.
Soopenitwitheitheremacsorwimandmakethefollowingchanges.
SIP_DOMAIN=localhost
DBENGINE=MYSQL
DBHOST=localhost
DBNAME=opensips
DBRWUSER=opensips
DBRWPW="opensipsrw"
DBROUSER=opensipsro
DBROPW=opensipsro
DBROOTUSER="root"
USERCOL="username"
INSTALL_EXTRA_TABLES=ask
INSTALL_PRESENCE_TABLES=ask
INSTALL_SERWEB_TABLES=ask
CTLENGINE="FIFO"
OSIPS_FIFO="/tmp/opensips_fifo"
PID_FILE=/var/run/opensips/opensips.pid
Note:Allthelinesprefixedbythe'#'chararecommentsandignoredbythecompiler.Youmustuncomment
theselinesbytakingoffthe'#'char
We'llneedtocreateadatabasetosaveallthecreatedusers.We'llbeusingthemySQLone.Todoso,trythe
followingcommand:
root@bezsilkqubuntu:/home/bezsilkq#opensipsdbctlcreate
MySQLpasswordforroot:
Note:thiscommandwillaskyourmySQLpassword,soIhopeyoudidn'tforgetit!
ThisdatabasehastobeconfiguredsoI'lltellyouthechangesyou'llhavetodo.
Openthe/usr/local/etc/opensips/opensips.cfgfileandmakethefollowingchanges:
loadmodule"db_mysql.so"#uncommentthisline
loadmodule"auth.so"#uncommentthisline
loadmodule"auth_db.so"#uncommentthisline
1.modparam("usrloc","db_mode",0);#Commentthisline
modparam("usrloc","db_mode",2)#uncommentthisline
modparam("usrloc","db_url","mysql://opensips:opensipsrw@localhost/opensips")#uncommentthisline
1.auth_dbparams
#uncommentthefollowinglinesifyouwanttoenablethedatabaseauthentification
modparam("auth_db","calculate_ha1",yes)
modparam("auth_db","password_column","password")
modparam("auth_db","db_url","mysql://opensips:opensipsrw@localhost/opensips")
Wearenearlyfinished.Weneednowtocreatetheusers.Thatiswhyourdatabasehasbeensetup.
Sotrythefollowingcommandstocreatethem.
QuentinBezsilko
28
16/06/09
Createthesoftphoneuserinthedatabase:
root@bezsilkqubuntu:/home/bezsilkq#opensipsctladd12341234
root@bezsilkqubuntu:/home/bezsilkq#opensipsctladd56785678
Note:thefirstcommandenablesyoutocreateausernamed1234withthepassword1234intothe
opensipsdbctldatabase(createdjustbefore)
Nowwe'llcreatetheOpensipsuserinmySQL.
ToconnecttomySQL,trythiscommandandenteryourmysqlpassword:
root@bezsilkqubuntu:/home/bezsilkq#mysqlp
Enterpassword:
Note:thepoptionmeansyouwanttoconnectwithapassword.
You'llhavethe"mysql>"invitenow.
Thentrythefollowingcommands.HereisanormalexecutionofthemySQLrequests.
mysql>GRANTALLPRIVILEGESON*.*TOopensips@localhostIDENTIFIEDBY'opensips';
QueryOK,0rowsaffected(0.00sec)
mysql>GRANTALLPRIVILEGESON*.*TOopensips@127.0.0.1IDENTIFIEDBY'opensips';
QueryOK,0rowsaffected(0.00sec)
Note:thesecommandsenablesyoutogiveallthepermissionstotheOpensipsuser(writeandreadthe
databasearethemostimportantones).
Congratulations,youmanagedtoinstallOpenSIPSonyourUbuntuversion.
Lastbutnotleastthingyouneedtoknowishowtorunit.
Youhavetwoopportunitieswhichdothesamething:
Note:Checkifyou'restillthesuperuseronyourlaptop.Ifso,trythiscommandtobecometherealuser.
root@bezsilkqubuntu:/home/bezsilkq#exit
Thenyourinvitewillcomebacklikethis:
bezsilkq@bezsilkqubuntu:~$
ThentryeitherthiscommandtostartOpensips:
bezsilkq@bezsilkqubuntu:~$sudo/etc/init.d/opensipsstart
[sudo]passwordforbezsilkq:
Orthisone:
bezsilkq@bezsilkqubuntu:~$opensipsctlstart
Sometimesbothpreviousmethodsdonotwork,soyoucantrythisone:
bezsilkq@bezsilkqubuntu:~$sudoopensips
ItwillalsoindicatethelisteningportandtheIPaddressoftheserver.
YoucannowuseOpensipswithxliteandmakephonecallovertheInternet.
QuentinBezsilko
29
16/06/09
Annexe3:Tutorield'installationdulogicielXLite
***************************************************
*
*
*
Author:QuentinBezsilko&BenjaminGrassart*
*
Dateofcreation:24thofApril
*
*
*
***************************************************
ThisfileisatutorialexplaininghowtoinstalltheXLitemoduleandhowmakeitworkwithopensips.
Note:ThisprogramhasbeeninstalledonaUbuntu8.10(32bits)version.
NoproblemhasbeenreportedexceptthatusingGSMcodecmightcrashonsomeplatformcombination.
Letusseehowtoinstallthissoftware:
INSTALLATION:
First,youneedtodownloadthesourcesusingtheInternet.
Sogotothecounterpathwebsite>http://www.counterpath.net/xlite.html
Andclickonthedownloadbutton.
Thenweneedtountarthefile:
>tarzxvfXLite_Install.tar.gz
MoveintotheXlitedirectory
>cdxtenxlite
Formoreinformationsaboutthiscommand,trythisintoyourterminal
>mancd
Theexecutableisnamedxtensoftphone,weneedtogivehimthepermissiontobelaunched
Sotrythiscommand
>chmod+xxtensoftphone
Youcannowruntheexecutable:
>./xtensoftphone
Youcancopytheexecutabletoadefined$PATHifyousowish.
CONFIGURATIONOFTHESOFTWARE:
ClickonthebuttonontherighthandsideoftheClearbutton.
ChecktheSystemsettingsitemandthenchoosetheSIPProxy.
We'llchangethevaluesonthedefaultitem.
Hereisanexecutionoftheopensipsprogram
bezsilkq@bezsilkqubuntu:~$sudoopensips
[sudo]passwordforbezsilkq:
QuentinBezsilko
30
16/06/09
Listeningon
udp:127.0.0.1[127.0.0.1]:5060
udp:192.168.101.134[192.168.101.134]:5060
tcp:127.0.0.1[127.0.0.1]:5060
tcp:192.168.101.134[192.168.101.134]:5060
Aliases:
tcp:bezsilkqubuntu.local:5060
tcp:localhost:5060
udp:bezsilkqubuntu.local:5060
udp:localhost:5060
Makethefollowingchangesmatchingyouropensipsexecution:
Enabled:Yes
DisplayName:Quentin
Username:5678
Authorizationuser:5678
Password:5678
Domain/Realm:localhost
SIPProxy:udp:192.168.101.134:5060
OutBandProxy
UseOutboundProxy:Default
SIPInternalIP:Default
Register:Default
VoicemailSIPURL:
ForwardSIPURL:
UseVoicemail:ForwardtoVoicemail
DirectDialIP:No
DialPrefix:
Thethreelastitemsdon'tneedtobechanged.
Note:Don'tputanyvaluewhereIdidn'tgiveoneinthistutorial.
Annexe4:Utilisationsimpled'unproxydansuneservletSIPenJava
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassSimpleProxyextendsSipServletimplementsServlet{
finalstaticprivateStringSHUTDOWN_KEY=newString("shutdown");
finalstaticprivateStringSTATE_KEY=newString("state");
finalstaticprivateintINVITE_RECEIVED=1;
/*leconstructeur*/
publicSimpleProxy(){
super();
}
protectedvoiddoInvite(SipServletRequestrequest)throwsServletException,IOException{
try{
if(request.isInitial()==true)
QuentinBezsilko
31
16/06/09
{
//CecidevraitcrerlasessionSIP.Cetchantillonutiliseuniquementlasessionpourlarception
//d'unBYEmaisTivoliPerformanceViewerpeuttreutilispoursuivrelacrationd'appelsaumoyendela
visualisation
//ducomptagedesessionsactives.
Integerstate=newInteger(INVITE_RECEIVED);
SipSessionsession=request.getSession();
session.setAttribute(STATE_KEY,state);
log("SimpleProxy:doInvite:settingattribute");
Proxyproxy=request.getProxy();
SipFactorysipFactory=(SipFactory)getServletContext().getAttribute(SIP_FACTORY);
if(sipFactory==null){
thrownewServletException("NoSipFactoryincontext");
}
StringcallingNumber=request.getTo().toString();
if(callingNumber!=null){
StringdestStr=format_lookup(callingNumber);
URIdest=sipFactory.createURI(destStr);
if(((SipURI)request.getRequestURI()).getTransportParam()!=null)
((SipURI)dest).setTransportParam(((SipURI)request.getRequestURI()).getTransportPa
ram());
proxy.setRecordRoute(true);
proxy.proxyTo(dest);
}
else{
SipServletResponsesipresponse=request.createResponse(400);
sipresponse.send();
}
}
else
{
//log("SimpleProxy:doInvite:actualiserlacible,laisserleconteneurgrerl'invite");
super.doInvite(request);
}
}
catch(Exceptione){
e.printStackTrace();
}
}
protectedvoiddoResponse(SipServletResponseresponse)throwsServletException,
IOException{
super.doResponse(response);
//Exempled'utilisationd'unobjetdesessionpourstockerl'tatdelasession.
SipSessionsession=response.getSession();
if(session.getAttribute(SHUTDOWN_KEY)!=null)
{
//log("SimpleProxy:doResponse:invalidationdelasession");
session.invalidate();
}
QuentinBezsilko
32
16/06/09
}
protectedvoiddoBye(SipServletRequestrequest)throwsServletException,
IOException{
SipSessionsession=request.getSession();
session.setAttribute(SHUTDOWN_KEY,newBoolean(true));
super.doBye(request);
}
protectedStringformat_lookup(StringtoFormat){
intstart_index=toFormat.indexOf('<')+1;
intend_index=toFormat.indexOf('>');
if(start_index==0){
//nepass'enoccuper
}
if(end_index==1){
end_index=toFormat.length();
}
returntoFormat.substring(start_index,end_index);
}
}
Annexe5:rsolutionduproblmeposparledlai(programmeJAVA)
importjpcap.*;
importjpcap.packet.*;
importjava.io.*;
importjava.util.List;
importjava.util.ArrayList;
importjava.net.*;
publicclassDelai{
/*Fourparametersareneededinthisclass
theportofthesender
theportofthereceiver
twoliststosavethepackets(oneforthesenderandoneforthereceiver)
*/
List<UDPPacket>listSender;
List<UDPPacket>listReceiver;
intportDstSender;
intportDstReceiver;
/*Theconstructor*/
Delai(intport_dst_sender,intport_dst_receiver){
listSender=newArrayList<UDPPacket>();
listReceiver=newArrayList<UDPPacket>();
portDstSender=port_dst_sender;
portDstReceiver=port_dst_receiver;
QuentinBezsilko
33
16/06/09
}
//returnsaStringwhichrepresentsthedataformatinhexadecimallikeinwireshark
publicstaticStringgetHexString(byte[]bytes){
StringBuildersb=newStringBuilder(bytes.length*2);
inti=0;
for(byteb:bytes){
Strings=String.format("%x",b);
if(s.length()==1){
s="0"+s;
}
//thenextlinesarejustheretogetabetterdisplay
sb.append(s+"");
i++;
if(i%16==0){
sb.append("\n");
}
}
returnsb.toString();
}
//returnsthereferencetimestampfromthesender
publicbyte[]getMiddleNTPTimestamp(UDPPacketpacket){
byte[]timestamp=newbyte[4];
byte[]data=((Packet)(packet)).data;
//wetakethecorrrespondingbyteinthesenderpacket
timestamp[0]=data[10];
timestamp[1]=data[11];
timestamp[2]=data[12];
timestamp[3]=data[13];
returntimestamp;
}
//returnsthereferencetimestampfromthereceiver
publicbyte[]getLSRReceiver(UDPPacketpacket){
byte[]timestamp=newbyte[4];
byte[]data=((Packet)(packet)).data;
//wetakethecorrespondingbyteinthereceiverpacket
timestamp[0]=data[24];
timestamp[1]=data[25];
timestamp[2]=data[26];
timestamp[3]=data[27];
returntimestamp;
}
QuentinBezsilko
34
16/06/09
//returnsthereferencetimestampfromthereceiver
publicbyte[]getLSRSender(UDPPacketpacket){
byte[]timestamp=newbyte[4];
byte[]data=((Packet)(packet)).data;
//wetakethecorrespondingbyteinthereceiverpacket
timestamp[0]=data[44];
timestamp[1]=data[45];
timestamp[2]=data[46];
timestamp[3]=data[47];
returntimestamp;
}
//returninIntthetypeofthereport.200correspondtoasenderreport,201correspondtoareceiverreport
publicintgetTypeReport(UDPPacketpacket){
bytetype=((Packet)(packet)).data[1];
ByteType=newByte(type);
returnType.intValue()+256;
}
voidcapturePacketFromFile(StringfileName){
intnbPacketCaptured=0;
intnbPacketIgnored=0;
//wemustdestroytheolddatabeforeloadthenewone
listSender.clear();
listReceiver.clear();
try{
JpcapCaptorcaptor=JpcapCaptor.openFile(fileName);
captor.setFilter("udp",true);
booleancontinuer=true;
booleansender_detecte=false;
while(continuer){
//readapacketfromtheopenedfile
Packettemp=captor.getPacket();
UDPPacketpacket=null;
//wecontinueonlyifthepacketisgoodandifthefileisnotattheend
if(temp!=null&&temp!=packet.EOF){
packet=(UDPPacket)temp;
//weonlyusethepacketwiththeportofRTCP
if(packet.dst_port==this.portDstSender||packet.dst_port==this.portDstReceiver){
if(getTypeReport(packet)==200){
listSender.add(packet);
sender_detecte=true;
}else{
//weneedtohaveasenderbeforetakethereceiver
QuentinBezsilko
35
16/06/09
if(sender_detecte){
listReceiver.add(packet);
}
else
nbPacketIgnored++;//thereceiverpacketrelatedwithanotherfile
}
nbPacketCaptured++;
}
}else{
continuer=false;//westopifwe'reattheend
}
}
captor.close();
System.out.println("alliswell:we'vecaptured"+nbPacketCaptured+"packets.");
System.out.println("We'veskipped"+nbPacketIgnored+"packet(s)atthebeginningbecausethere
wererelatedwiththepreviouspackage");
}catch(IOExceptione){System.out.println(e);}
}
//capturethepacketandfilterwithanaddresssourceandandaddressdestination
voidcapturePacketFromFile(StringfileName,InetAddresssource,InetAddressdestination){
intnbPacketCaptured=0;
intnbPacketIgnored=0;
//wemustdestroytheolddatabeforeloadthenewone
listSender.clear();
listReceiver.clear();
try{
JpcapCaptorcaptor=JpcapCaptor.openFile(fileName);
captor.setFilter("udp",true);
booleancontinuer=true;
booleansender_detecte=false;
while(continuer){
//readapacketfromtheopenedfile
Packettemp=captor.getPacket();
UDPPacketpacket=null;
//wecontinueonlyifthepacketisgoodandifthefileisnotattheend
if(temp!=null&&temp!=packet.EOF){
packet=(UDPPacket)temp;
//weonlyusethepacketwiththeportofRTCP
if(packet.dst_port==this.portDstSender||packet.dst_port==this.portDstReceiver){
//wetakeonlythepacketcorrespondingtotherequiredipaddress
if(source.equals(packet.src_ip)&&destination.equals(packet.dst_ip)){
if(getTypeReport(packet)==200){
listSender.add(packet);
sender_detecte=true;
QuentinBezsilko
36
16/06/09
}else{
//weneedtohaveasenderbeforetakethereceiver
if(sender_detecte){
listReceiver.add(packet);
}
else
nbPacketIgnored++;//thereceiverpacketrelatedwithanotherfile
}
nbPacketCaptured++;
}
}
}else{
continuer=false;//westopifwe'reattheend
}
}
captor.close();
System.out.println("alliswell:we'vecaptured"+nbPacketCaptured+"packets.");
System.out.println("We'veskipped"+nbPacketIgnored+"packet(s)atthebeginningbecausethere
wererelatedwiththepreviouspackage");
}catch(IOExceptione){System.out.println(e);}
}
//printsthepacketswithsomeinformationsandthedata(formatinhexa)
voidprintPackets(){
UDPPacketpacket=null;
intnbPacketDisplayed=0;
//displaysallthesenderpackets
System.out.println("DisplayoftheSenderpackets:\n");
for(inti=0;i<listSender.size();i++){
packet=listSender.get(i);
byte[]donnees_rtcp=((Packet)packet).data;
System.out.println("packetn"+i+":"+packet);
System.out.println("report'stype:"+getTypeReport(packet));
System.out.println("timestamp:"+getHexString(getMiddleNTPTimestamp(packet)));
System.out.println("LSR:"+getHexString(getLSRSender(packet)));
System.out.println(getHexString(donnees_rtcp)+"\n");
nbPacketDisplayed++;
}
//displaysallthereceiverpackets
System.out.println("DisplayoftheReceiverpackets:\n");
for(inti=0;i<listReceiver.size();i++){
packet=listReceiver.get(i);
byte[]donnees_rtcp=((Packet)packet).data;
System.out.println("packetn"+i+":"+packet);
System.out.println("report'stype:"+getTypeReport(packet));
System.out.println("timstamp:"+getHexString(getLSRReceiver(packet)));
System.out.println(getHexString(donnees_rtcp)+"\n");
QuentinBezsilko
37
16/06/09
nbPacketDisplayed++;
}
System.out.println("We'vedisplayed"+nbPacketDisplayed+"packet(s).");
}
//getstheDLSR(inseconds)forthereceiver
publicfloatgetDLSRReceiver(PacketpacketReceiver)throwsIOException{
byte[]DLSR=newbyte[4];
byte[]data=packetReceiver.data;
DLSR[0]=data[28];
DLSR[1]=data[29];
DLSR[2]=data[30];
DLSR[3]=data[31];
//codewhichtransformsthearraybyteintoanInt
ByteArrayInputStreambis=newByteArrayInputStream(DLSR);
DataInputStreamin=newDataInputStream(bis);
longch1=(long)in.read();
intch2=in.read();
intch3=in.read();
intch4=in.read();
longnb=((ch1<<24)+(ch2<<16)+(ch3<<8)+(ch4<<0));
//System.out.println("Beforedividingby65535:"+nb);
return(float)((float)nb/(float)65535);
//getstheDLSR(inseconds)forthesender
publicfloatgetDLSRSender(PacketpacketSender)throwsIOException{
byte[]DLSR=newbyte[4];
byte[]data=packetSender.data;
DLSR[0]=data[48];
DLSR[1]=data[49];
DLSR[2]=data[50];
DLSR[3]=data[51];
//codewhichtransformsthearraybyteintoanInt
ByteArrayInputStreambis=newByteArrayInputStream(DLSR);
DataInputStreamin=newDataInputStream(bis);
longch1=(long)in.read();
intch2=in.read();
intch3=in.read();
intch4=in.read();
longnb=((ch1<<24)+(ch2<<16)+(ch3<<8)+(ch4<<0));
//System.out.println("Beforedividingby65535:"+nb);
return(float)((float)nb/(float)65535);
}
QuentinBezsilko
38
16/06/09
//returnsthearrivaltimeofthepacketinseconds
publicdoublegetArrivalTime(Packetpacket){
return(double)packet.sec+(packet.usec/1000000.0);
}
//returnsthedelayfromthepackagenamed"filename"
publicdoublegetDelay(Stringfilename,InetAddresssource,InetAddressdestination){
if(source==null||destination==null){
this.capturePacketFromFile(filename);//fillthelist
}else{
this.capturePacketFromFile(filename,source,destination);
}
UDPPacketcurrentSenderPacket=null;
UDPPacketcurrentSenderPacketBis=null;
byte[]NTPtimestampSender=newbyte[4];
byte[]LSRtimestampSender=newbyte[4];
byte[]LSRtimestampReceiver=newbyte[4];
UDPPacketcurrentReceiverPacket=null;
System.out.println("Receiverlistsize:"+listReceiver.size());
System.out.println("Senderlistsize:"+listSender.size());
doublecurrentDelay=0;
doubletotalDelay=0;
intnbDelay=0;
for(inti=0;i<listSender.size();i++){
currentSenderPacket=listSender.get(i);
NTPtimestampSender=getMiddleNTPTimestamp(currentSenderPacket);
//calculationbetweentwoSender
for(intj=i;j<listSender.size();j++){
currentSenderPacketBis=listSender.get(j);
LSRtimestampSender=getLSRSender(currentSenderPacketBis);
if(NTPtimestampSender[0]==LSRtimestampSender[0]&&NTPtimestampSender[1]==
LSRtimestampSender[1]
&&NTPtimestampSender[2]==LSRtimestampSender[2]&&NTPtimestampSender[3]==
LSRtimestampSender[3]){
System.out.println("leSendern"+i+"vaaveclesendern"+j);
try{
//System.out.println("Arrivaltimesenderpacket:
"+getArrivalTime(currentSenderPacket));
//System.out.println("Arrivaltimesenderpacket:
"+getArrivalTime(currentSenderPacketBis));
//System.out.println("senderpacket
DLSR"+getDLSRSender(currentSenderPacketBis)+"seconde");
currentDelay=getArrivalTime(currentSenderPacketBis)
QuentinBezsilko
39
16/06/09
getArrivalTime(currentSenderPacket)getDLSRSender(currentSenderPacketBis);
System.out.println("Delai:"+currentDelay);
totalDelay+=currentDelay;
nbDelay++;
}catch(Exceptione){System.out.println(e);}
}
}
//calculationbetweentwoReceiver
for(intj=0;j<listReceiver.size();j++){
currentReceiverPacket=listReceiver.get(j);
LSRtimestampReceiver=getLSRReceiver(currentReceiverPacket);
if(NTPtimestampSender[0]==LSRtimestampReceiver[0]&&NTPtimestampSender[1]==
LSRtimestampReceiver[1]
&&NTPtimestampSender[2]==LSRtimestampReceiver[2]&&NTPtimestampSender[3]
==LSRtimestampReceiver[3]){
System.out.println("leSendern"+i+"vaavecleReceivern"+j);
try{
//System.out.println("Arrivaltimesenderpacket:
"+getArrivalTime(currentSenderPacket));
//System.out.println("Arrivaltimereceiverpacket:
"+getArrivalTime(currentReceiverPacket));
//System.out.println("receiverpacketDLSR
"+getDLSRReceiver(currentReceiverPacket)+"seconde");
currentDelay=getArrivalTime(currentReceiverPacket)
getArrivalTime(currentSenderPacket)getDLSRReceiver(currentReceiverPacket);
System.out.println("Delai:"+currentDelay);
totalDelay+=currentDelay;
nbDelay++;
}catch(Exceptione){System.out.println(e);}
}
}
}
System.out.println("Delaitotal:"+totalDelay);
System.out.println("nbDelay:"+nbDelay);
returntotalDelay/(double)nbDelay;
}
/*MainMethod*/
publicstaticvoidmain(String[]args)throwsException{
StringfileName=args[0];
intsourcePort=Integer.parseInt(args[1]);
intdestPort=Integer.parseInt(args[2]);
InetAddresssource=null;
InetAddressdestination=null;
if(args.length>3){
source=InetAddress.getByName(args[1]);
destination=InetAddress.getByName(args[2]);
}
QuentinBezsilko
40
16/06/09
Delaidelai=newDelai(sourcePort,destPort);
/*ChangethecurrentWoresharkfileHere*/
//delai.capturePacketFromFile(fileName);
//delai.printPackets();
/*TheparameterinhereistheWiresharkfile*/
System.out.println("Theaveragedelayofthispackageis:"+delai.getDelay(fileName,source,
destination));
//delai.printPackets();
}
}
QuentinBezsilko
41
16/06/09
GLOSSAIRE
A
AIT:AthloneInstituteofTechnology.L'universitdanslaquellenousavonsralisnotrestage.
ACK:vientdel'anglaisAcknoledgement,signifiequelepaquetcourantestunaccusderception.
AdresseIP:numroquiidentifiechaqueutilisateurconnectInternet.Elleestgnralementnote
avecquatrenombrescomprisentre0et255,chacuntantspardesautrespardespoints.
B
C
Cahierdescharges:Documentcontractueldfinissantdefaonexhaustivecequelecommandit
attenddelaralisationd'unproduitoud'unservice.
D
DatagrammeIPV4:donnesencapsulesdelaquatrimeversionduprotocoleInternetauxquelleson
aajoutdesenttescorrespondantdesinformationssurleurtransport.
E
Effetd'exprience:Quanduneentreprisetravaillesurunprojetressemblantunautredjmen,
elleprofitedesonpasspourdveloppersonlogicielplusrapidementetavecunemeilleurequalitde
service.
Ethernet:(aussiconnusouslenomdenormeIEEE802.3)standarddetransmissiondedonnespour
rseaulocal.
F
Firewall:signeunlmentdurseauinformatiquequiapourfonctiondecontrlerlesprivilges
d'accs,delimiterl'utilisationdesressourcesdurseauauxutilisateurs.Engnral,ilpermetd'empcher
l'utilisateurd'effectuerdesactionsmalicieusesenutilisantunservicesetrouvantendehorsduparefeu.
G
H
QuentinBezsilko
42
16/06/09
I
IETF (Internet Engineering Task Force) : littralement traduit de l'anglais en Dtachement
d'ingnierie d'Internet est un groupe informel, international, ouvert tout individu, qui participe
l'laborationdestandardspourInternet.L'IETFproduitlaplupartdesnouveauxstandardsd'Internet.
J
Javadoc : ensemble des fichiers de documentation pour la programmation en langage Java. Ces
fichierss'obtiennentaprscompilationducodesource.
Jpcap:bibliothqueOpenSourcequipermetdecaptureretd'envoyerdespaquetssuruneinterface
rseaupartird'uneapplicationJava.Cetteapplicationpermetd'identifierplusfacilementlespaquetsqui
circulent.
K
L
LAN:abrviationdeLocalAreaNetwork,dsigneunensembled'ordinateursappartenantune
mmeorganisationetrelisentreeuxdansunepetiteairegographiqueparunrseau,souventl'aided'une
mmetechnologie(laplusrpanduetantEthernet).
Linux: systme d'exploitation libre et gratuit dvelopp par des bnvoles et respectant la
standardisationdesapplicationsdeslogicielsdestinsfonctionnersurdesvariantesdusystme.
M
MidlandsInnovation:centrederecherchebasl'AITquiapourobjectifprincipaldemenerla
rechercheetd'innoverentravaillantencorrlationaveclesentreprises.
Middleware:enfranaisintergiciel(vientdel'anglaismiddlemilieuetdesoftwarelogiciel)est
unlogicielservantd'intermdiairedecommunicationentreplusieursapplications,gnralementcomplexes
oudistribuessurunrseauinformatique.
N
NAT:NetworkAdressTranslation,onditqu'unrouteurfaitduNATquandilfaitcorrespondreles
adressesinternesnonuniquesetnonroutablesversdesadressesexternesuniquesetroutables.
O
Open Source: dsignation qui s'applique aux logiciels dont la licence respecte des critres
prcismenttablisparl'OpenSourceInitiative,c'estdirelapossibilitdelibreredistribution,d'accsau
codesource,etdetravauxdrivs.
OpenSER:leprojetdebasequiattenduparOpenSIPS.
OpenSIPS:logicielgratuitproduitsouslicenceGNUOpenSourcequitendleprojetOpenSERet
consisteenl'implmentationd'unserveurSIP.
QuentinBezsilko
43
16/06/09
P
Protocole: Ensemble des conventions ncessaires pour faire cooprer des entits distantes, en
particulierpourtabliretentretenirdeschangesd'informationsentrecesentits.
Proxy:intermdiaireentredeuxutilisateursquineconnaissentpasleursemplacementsrespectifset
quipermetlacommunicationentrelesdeuxmembres.
Passerelle:adresseosontenvoyslespaquetsquisontdestinsdesordinateursl'extrieurdu
rseaulocal.
Parefeu:synomymedefirewall.
portmirroring:techniqueutiliseparleswitchdansunrseauinformatiquepourcopiertousles
paquetsquicirculentdanslerseauversunautreconnectsurunautreport.
Q
R
Registrar:undesprincipauxprotocolesdetlcommunicationutilissparInternet.Lerledece
protocoleestdepermettrelatransmissiondepaquetsdemaniretrssimpleentredeuxentits,chacunetant
dfinie par une adresse IP et un numro de port (pour diffrencier diffrents utilisateurs sur la mme
machine).Ilfonctionneenmodenonconnect.
RTP: (RealTime Transfer Protocol) protocole qui consiste en la mise en uvre de numros de
squencedespaquetsIPpourreconstituerlesinformationsdevoixouaudiommesilerseausousjacenten
changel'ordre.
RTCP:(RealTimeControlProtocol)protocoledecontrleassociRTP,mesurelesindicesde
performance(contrledesfluxRTP)etpermetdevhiculerdesinformationsbasiquessurlesparticipants
d'unesessionetsurlaqualitdeservice.
Routable:dsignelematrielsurlequell'oprationderoutageestpossible,c'estdirespcifierle
circuitqu'unecommunicationdoitemprunterpourparveniraudestinataire.
Routeur:outillogicieloumatrielutilispourdirigerlesdonnestraversunrseauentreplusieurs
serveurs.Dsignegalementuneinterfaceentredeuxrseauxutilisantdesprotocolesdiffrents.
S
SUNAT:acronymeutilispourSeamlessUseThroughNetworkAbstractionTechnologies.Ils'agit
d'un projet ayant pour objectif de faciliter le dveloppement de logiciels dans un environnement de
convergencefixemobile
SIP: Session Initiation Protocol, protocole standard ouvert de session utilis dans les
tlcommunicationsmultimdia(son,image).
SDP:(SessionDescriptionProtocol),formatdedescriptionetd'initialisationdesparamtresduflux
mdia.IlestpubliparlegroupeIETFsousRFC4566.Lefluxmdiaestlecontenuquipeuttrevisualis
ouentendulorsdelatransmission.
QuentinBezsilko
44
16/06/09
Servlet:scriptcritenlangageJavaxcutsurleserveur,leplussouventutilispourinterrogerune
basededonnesrelationnelle.
Switch(enfranaiscommutateurrseau):quipementquirelieplusieurssegments(cblesoufibres)
dansunrseauinformatique.Ils'agitleplussouventd'unbotierdisposantdeplusieurs(entre4et100)ports
Ethernet.Iladonclammeapparencequ'unconcentrateur(hub).
T
TCP/IP:(transmissionControlProtocol/InternetProtocol)ensembledesrglesdecommunication
surInternetensebasantsurlanotiond'adressageIP.
Tutoriel:Initiationguidel'utilisationd'unensembledenotionsoud'unetechnique.
Timestamp: dsigneeninformatiqueuncompteurnumriqueservantderfrencetemporelleet
reprsentelenombredesecondescoulesdepuisuninstantderfrence.
U
UDP:(User Datagram Protocol) un des principaux protocoles de tlcommunication utiliss par
Internet.IlfaitpartiedelacouchetransportdelapiledeprotocoleTCP/IP:dansl'adaptationapproximative
decettedernireaumodleOSI,ilappartiendraitlacouche4,commeleprotocoleTCP.
V
VLAN:acronymeutilispourdsignerunrseauvirtuel(enanglaisVirtualLAN)quicorrespond
unrseauinformatiquelogiqueindpendant.
W
Wireshark : logiciel Open Source permettant d'analyser les flux qui circulent dans un rseau
informatique.Iloffrelapossibilitdemettreenplacedesfiltresetd'tablirlesstatistiquesquicorrespondent
unecommunication.
X
Y
Z
QuentinBezsilko
45
16/06/09
BIBLIOGRAPHIE
LesiteofficielduprojetOpenSIPS:www.opensips.org/
LesitedeCounterPathsurlequelnousavonsputrouverlelogicielXLite:www.counterpath.com
LesitedeWikipdiapourdbuternotreapprentissagedesprotocoles:www.wikipdia.com
LesiteofficieldulaboratoiredeJava:www.docs.sun.com/
Lesiteofficieldel'ietf(InternetEngineeringTaskForce):www.ietf.org
LesiteofficieldeMediaproxy:http://www.mediaproxy.com/
UnsitesurleprotocoleSIP(utilelorsdel'installationdeMediaproxy):http://www.agprojects.com/
LesitedeWiresharkdontlelogicielaurattrsutilepouranalyserlesmessages:www.wireshark.org
Lesitefrancophoned'Ubuntupourl'installationdusystmed'exploitationutilis:www.ubuntu.org
Lesitedecommentsamarchepoursesprcieuxtutorielssurlesprotocoles:www.commentsamarche.net
Lesiteofficieldelasocit3com,cratriceduswitch:www.3com.com
QuentinBezsilko
46
16/06/09
QuentinBezsilko
47
16/06/09