Sunteți pe pagina 1din 47

AthloneInstituteofTechnology

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

Annexe1:SIP INVITE request:


INVITE sip:callee@callee.com SIP/2.0
Via: SIP/2.0/UDP pc.caller.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Callee <sip:callee@callee.com>
From: Caller <sip:caler@caller.com>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:caller@pc.caller.com>
Content-Type: application/sdp
Content-Length: 142

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

S-ar putea să vă placă și