rapport de projet fin d’étude - academiepro.com · rapport de projet fin d’étude client...
Post on 12-Sep-2018
274 Views
Preview:
TRANSCRIPT
Rapport de projet fin d’étude Client VoIP/SIP RATP
Alaeddine MESBAHI Shuting WANG
Encadré par :
Sébastien LERICHE
Laurent BERNARD
Yves PREMEL-CABIC
Contenu 1. Contexte .......................................................................................................................................... 4
2. Expression des besoins .................................................................................................................... 4
a. Besoins utilisateurs ...................................................................................................................... 5
b. Propositions de mise en œuvre ................................................................................................... 5
3. Choix d’un système d’exploitation mobile ...................................................................................... 5
4. Client SIP .......................................................................................................................................... 6
5. Propositions d'interfaces graphiques ............................................................................................ 11
6. Interactions SIP entre client et serveur ......................................................................................... 14
7. Architecture technique et fonctionnelle ....................................................................................... 15
a. Appel SIP .................................................................................................................................... 16
b. Ajout d’un compte ..................................................................................................................... 17
c. Java Native Interface: ................................................................................................................ 18
d. PJSIP: .......................................................................................................................................... 18
e. Caractéristique technique de PJSIP : ......................................................................................... 18
f. PJSUA & PJSIP-JNI : .................................................................................................................... 19
g. Une architecture en couche : .................................................................................................... 20
8. Diagramme de séquence ............................................................................................................... 21
9. Spécifications techniques .............................................................................................................. 26
a. Appel SIP .................................................................................................................................... 26
i. Création d’un vue .................................................................................................................. 26
ii. La classe principale « HandiDialer.java » .............................................................................. 27
iii. Intégration la classe « HandiDialer.java » au « SipHome.java » ........................................... 29
b. Comptes..................................................................................................................................... 30
i. Gestion automatique des comptes au démarrage de l’application ...................................... 30
ii. Ajouter d’un compte ............................................................................................................. 30
iii. Résolution DNS ...................................................................................................................... 31
10. Tests........................................................................................................................................... 32
a. Environnement de test .............................................................................................................. 32
b. Test qualité de la voix ................................................................................................................ 33
c. Test communication avec adresse IP ........................................................................................ 33
d. Test avec résolution DNS ........................................................................................................... 34
e. Téléchargement et installation de l’application ........................................................................ 34
11. Planning prévisionnel d'implémentation .................................................................................. 35
12. Conclusion ................................................................................................................................. 37
1. Contexte La RATP souhaite mettre à la disposition de ses usagers à mobilité réduite des outils leur facilitant
l’utilisation du réseau ferré d’île de France. Dans le cadre de cette politique de modernisation, une
mission étudie la faisabilité de la mise en place d’un service permettant à une personne à mobilité
réduite d’établir une communication vocale rapidement et simplement avec un agent de la RATP
pour qu’il puisse lui venir en aide.
Cette communication sera établie à partir du téléphone mobile de l’usager à travers le réseau sans fil
déployé au sein de la station RATP et par conséquent sans passer par le réseau GSM/3G d’un
opérateur.
Ce service a pour vocation d’être proposé sur des smartphones supportant l’installation
d’applications tierces, comme l’iPhone d’Apple ou les terminaux utilisant l’OS libre Android de
Google, et nécessitera la mise en œuvre de différentes technologies gravitant autour de la voix sur
IP.
La solution sans fil ciblée dans cette étude est la technologie WiFi.
2. Expression des besoins Le but du projet est développer une application mobile d’interphonie sur IOS ou Android au-dessus d’une couche WIFI.
Description globale du besoin :
Choix d’un système d’exploitation mobile
Choix d’un client SIP open source existant sur cet OS
Développement d’une application « Interphone » à partir ce client
Tests de l’application sur des serveurs de VoIP (OpenSIPS, Asterisk)
Optionnel :
Implémentation de la partie serveur en se basant sur des briques SIP libres
(OpenSIPS/Asterisk)
Utilisateurs : Equipe projet RATP
a. Besoins utilisateurs Ce chapitre décrit les besoins utilisateurs concernant l’application Client SIP.
BU-1 Mise en place une interface graphique
L’application doit avoir une interface graphique d’accueil, qui a deux fonctions principales : Appel et
Raccroche.
BU-2 Fonction Initialisation
L’application doit avoir une fonction d’initialisation, qui permet de configure et initialiser logiciel.
BU-3 Fonction Ajout un compte
L’application doit avoir une fonction d’ajouter un compte SIP, le nom d’utilisateur, le Domain et le
mot de passe.
BU-4 Fonction Appel
L’application doit avoir une fonction d’appeler qui permet de réaliser une communication vocale.
BU-5 Fonction Raccroche
L’application doit avoir une fonction d’raccrocher qui permet de terminer la communication vocale.
BU-6 Fonction Destruction
L’application doit avoir une fonction de purger l’espace utilisée.
b. Propositions de mise en œuvre Ce scénario consiste à fournir une solution aux besoins utilisateurs cités ci-dessus.
On traitera les parties suivantes :
Interactions SIP entre client et serveur
Choix d’un système d’exploitation mobile
Interface proposée
Choix d’un client SIP open source existant sur cet OS
La description du fonctionnement globale de l’application
3. Choix d’un système d’exploitation mobile Dans cette partie, nous allons comparer les deux systèmes d’exploitation mobiles Android et IOS.
IPhone iOS
L’environnement de développement pour l’iPhone est Xcode. Iphone est basé sur le système MAC OS
ou UNIX, il n’est donc pas compatible avec Windows.
Le développement d’applications pour iPhone OS se fait avec Objective C, une extension du langage
C, orienté objet et réflexif.
Andoid
Le développement d’applications pour Android se fait en Java. Java est un puissant langage orienté objet, utilisé très largement dans le monde du développement.
Le développement d’applications Android est possible aussi bien sur Eclipse, que sur Apache Ant ou JDK. C’est pourquoi le développement d’applications Android est possible aussi bien sur Windows que sur Linux ou Mac.
Après la comparaison, nous avons choisi Android comme support d’application.
4. Client SIP Plusieurs clients SIP sur android ont été comparés sur plusieurs aspects, le but de cette étude
comparative est de choisir le client open-source qui correspond aux besoins du projet, et qui
permettra d’avoir une bonne assise pour la suite du projet.
IMSDroid
IMSDroid est le premier client open-source IMS pour les plateformes android. Le but principal de ce
projet basé sur la plateforme doubango est de proposer un client IMS complet à la communauté
open-source. Doubango est un projet expérimental open-source pour les framework 3GPP IMS/LTE à
la fois pour les systèmes embarqué (Android, Windws Mobile, Symbian, iPhone, …) et les postes de
travail (Windows XP/Vista/7, MAC OS X, GNU Linux, …).
L’implémentation SIP est basée sur le RFC 3261 et 3GPP TS 24.229 Rel-9, ce qui le rend compatible
avec tous les SIP registrar.
Le projet offre un nombre très impressionnant de fonctionnalités orienté IMS :
SIP (RFC 3261, 3GPP TS 24.229 Rel-9)
IMS-AKA (RFC 3310, 3GPP TS 33.203, 35.205, 35.206, 35.207, 35.208 and 35.909)
Private extension headers for 3GPP
IPv4/IPv6 dual stack
UDP, TCP, TLS and SCTP
Service-Route Discovery (RFC 3608)
Proxy-CSCF discovery using DHCPv4/v6 or/and DNS NAPTR
SigComp (RFC 3320, 3485, 4077, 4464, 4465, 4896, 5049, 5112 and 1951)
IPSec
Security Agreement (RFC 3329)
NAT Traversal (STUN, TURN and ICE)
Preconditions (RFC 3312, 4032 and 5027)
SMS over IP (3GPP TS 23.038, 24.040, 24.011, 24.341 and 24.451)
ENUM (RFC 3761)
The tel URI for Telephone Numbers (RFC 3966)
SIP SIMPLE (Presence Subscription/Publication and Pager Mode IM)
MMTel (UNI)
SDP (RFC 3264)
RTP/RTCP
XCAP (RFC 4825)
MSRP (RFC 4975 and 5547)
Audio/Video (AMR, Speex, G.711, GSM, H.264, H.263, Theora...)
...
Protocole supportés :
SIP/SigComp
SDP
RTP/RTCP
XCAP (RFC 4825)
MSRP/MSRPS (RFC 4975 and 5547)
HTTP/HTTPS (RFC 2616 and 2617)
DHCPv4 (RFC 2131)
DHCPv6 (RFC 3315)
DNS (RFC 1034, 1035, 3401, 3402, 3403, 3404, 3596, 2035, 2671, and 2782)
Le projet IMSDroid est un géré bar bossiel@yahoo.fr responsable de l’évolution et des versions officielles. Le projet est très actif sur le plan code et la documentation est relativement abondante.
Le projet reste cependant complexe, et propose un nombre très important de fonctionnalités qui ne sont pas en relation avec ce projet.
aSIP
Le projet aSIP dont le but était de développer la pile SIP pour android est inactif depuis des années
(15 septembre 2008). Le code du projet est toujours disponible sur le site de google code, sauf que
qu’aucune documentation n’est disponible, et personne n’anime le projet.
Linphone
L’entreprise Linphone propose une variété de client SIP open-source sur plusieurs plateformes (Linux,
Windows, Android, …). Son client VoIP fonctionnant sur wifi et 3G est très stable et suit une ligne de
développement fixe.
Nous avons cependant eu énormément de difficultés pour avoir des informations sur le
fonctionnement interne ou sur la documentation du projet. La mailing list [linphone-developpers]
sert principalement à annoncer les nouvelles fonctionnalités et les trains d’évolution du projet.
SipDroid
Sipdroid est un client VOIP open-source donnant la possibilité de passer et de recevoir des appels
téléphoniques par Internet en utilisant un compte SIP.
Le projet SIPDroid est très actif avec une communauté de développeurs assez large. SIPDroid ne
s’insprie dans son développement d’aucun projets externes, ce qui oblige à tout refaire depuis le
début.
Le forum dédié au projet est très actif, plus de 1000 message ont été posté, et plus de 30 membre
participe activement à ce projet.
Le code de SIPDroid est assez complexe comparé aux autres projets. De plus la documentation
technique ne couvre que la configuration et la manipulation de l’outil. Aucune documentation
n’aborde les aspects techniques du développement.
D’un point de vue qualité sonore et ergonomie, malgré les avancées qu’a réalisées l’outil depuis ses
débuts, l’application reste difficile à manipuler, et la qualité sonore est très mauvaise.
CSIPSimple
CSIPsimple est un nouveau projet comparé à son concurrent SIPDroid. Le principal avantage de cet
outil est sa qualité sonore du fait qu’il se base sur une librairie SIP externe dédiée aux systèmes
embarqués.
La communauté active sur le projet se compose de 5 membres et la documentation reste assez rare.
Cependant le projet PJSIP sur lequel est basé CSIPSimple est très mature, la documentation est de
très bonne qualité et le cycle de développement est très stable.
CSIPSimple étant dans ses débuts, le code reste relativement simple comparé à SIPDroid.
CSIPSimple bénéficie d’une excellente qualité sonore, et reste très facile à manipuler et configurer.
5. Propositions d'interfaces graphiques RATP a besoin une interface graphique offrant deux fonctionnalités : « appel » et « raccroche ».
Nous nous sommes inspirés du code source d’applications existantes « VoiDroid » dont voici
l’interface de ce logiciel :
Le fichier « main.xml » géré le modèle d’interface. Après avoir bien compris la structure de ce fichier,
nous avons changé le style de l’interface :
1. Nom de logiciel : HandiRATP
2. Un logo de RATP
3. Deux buttons « call » et « Hangup » pour les fonctions « appel » et « raccroche »
Voici une proposition beta de test de l’interface :
Ceci est l’interface du prototype finale. Le bouton Hangup a été supprimé, et une nouvelle activité
est chargée au moment de l’appel. Cette activité rappelle l’état de la communication (En appel, En
conversation, …).
6. Interactions SIP entre client et serveur
Dans ce schéma :
1. Le SmartPhone se connecte au réseau WIFI et demande une adresse IP
2. Le Serveur de l’agence RATP distribue une adresse IP
3. Configuration du Client SIP et appel de l’agentRATP
4. Le Serveur transmet l’appel au Téléphone IP
5. Appel accepté
6. Connexion vocale est en cours
7. Architecture technique et fonctionnelle Nous avons commencé par la manipulation du code Voidroid et la libraire PJSUA, ce qui nous a
permis de bien comprendre le processus des communications SIP.
Après avoir consacré plusieurs semaines de travailler dessus, nous avons constaté qu’il était très
difficile de reconstruire le processus des communications SIP à partir Voidroid pour les raisons
suivantes :
- Voidroid ne fonctionne pas sur mobile
- Les fonctions Voidroid sont incomplètes
Nous avons donc décidé d’utiliser CSipSimple et de modifier son code natif. Nous avons modifié deux
parties du code source du CSipSimple principalement : Appel SIP et Comptes
1. Demande l’adresse IP2. Distribution de l’adresse IP3. Appel du Agence RATP
4. Transmission de l’appel
5. Appel accepté
6. Appel accepté
a. Appel SIP Dans la classe « SipHome.java » qui gère la page d’accueil, plusieurs Tabs sont disponibles. En
appuyant sur chaque tab, vous pouvez accéder à la vue qui y correspond.
- Vue « Tél » :
CSipSimple a deux interfaces dans la vue « Tél », L’interface « Numéro » et l’interface « SIP Adress ».
En prenant comme argument le numéro de téléphone ou l’adresses SIP, on peut appeler le client en
appuyant sur le bouton « appel ».
- Vue « Appels » :
Vue « Appels » se charge d’enregistrer tous les appels dans l’historique.
Dans le cadre de notre application, L’URI SIP est intégré dans l’outil. Nous avons utilisé un fichier XML
« main.xml » se trouvant dans « res/layout/ » pour décrire le style de la page d’accueil d’HandiRATP.
Dans cette vue, le bouton à l’extrémité de l’interface est lié à la même fonction que CSipSimple.
CSipSimple
Appel classique
Appel sip Configuration
Média Réseau
Comptes
b. Ajout d’un compte Quand nous utilisons CSipSimple de façon normale, et afin de créer un compte avec une adresse IP, il
faut se trouver dans le menu « Comptes » et choisir le type de compte « LOCAL », et par la suite
entrer le nom du compte. Ci-dessous est le processus d’ajout d’un compte local dans CSipSimple :
Dans notre cas, nous avons défini un compte par défaut avec l’URI « usager@Adresse IP», pendant
l’utilisation d’HandiRATP, ce compte est utilisé pour appeler et recevoir.
WizardsChooser.java AccountList.java
CSipSimple
HandiRATP
BasePrefsWizards.java (Utilisant le
model du « LOCAL »
c. Java Native Interface: JNI est un framework de programmation permettant à un code Java tournant sur une machine
virtuelle (JVM) d’appeler ou d’être appelé par une application native (Programme ou application
spécifique à un hardware ou un système d’exploitation), des librairies ou une application codé dans
un autre langage (C/C++, assembleur).
d. PJSIP: PJSIP est une librairie SIP open-source sous licence GPL, dont la principale caractéristique est la
performance et l’empreinte digitale très petite et très adaptée pour les systèmes embarqués. La
libraire est écrite en C afin de garantir le niveau de performance et d’évolutivité requis.
En plus de la vocation de servir pour des systèmes embarqués, la libraire PJSIP permet de créer des
applications avec des stacks protocolaire très performant. Elle a d’ailleurs été utilisé dans plusieurs
client SIP. Pour n’en citer que quelques ‘un :
CSIPSimple
Yass
Siphon
PuppySIP
e. Caractéristique technique de PJSIP : Portabilité : PJSIP a été conçu dans le but d’être extrêmement portable et fonctionnant sur plusieurs
plateformes logicielle et matérielles (16 bit, 32 bit, 64 bit, big endian, little endian, multi-proc).
Taille : L’un des point pris en compte lors du développement de PJSIP est la taille très petite de la
libraire afin qu’elle soit adaptée pour les systèmes embarquée avec de forte contrainte d’espace de
stockage.
Performance : PJSIP permet d’avoir les meilleures performances sur la machine hôte, chose que nous
avons constaté lors de nos tests de CSIPSimple et SIPDroid, qui était largement moins performant en
qualité sonore.
Allocation mémoire : Afin d’assurer les performance les plus optimales, PJSIP n’utilise pas la fonction
malloc() pour l’allocation de mémoire, mais puise ses ressources dans un espace mémoire allouée au
début de lancement de l’application. Ce choix d’architecture permet des gains de performance allant
à 30 plus rapide avec certaine configuration.
Abstraction du système d’exploitation : PJSIP est capable de faire abstraction des fonctionnalités suivantes du système d’exploitation, souvent non portable entre système d’exploitation :
Threads Thread Local Storage. Mutexes. Semaphores. Atomic Variables Critical sections. Lock Objects Event Object. Time Data Type and Manipulation. High Resolution Timestamp etc.
f. PJSUA & PJSIP-JNI : PJSUA est théoriquement la couche supérieure de PJSIP. Elle offre un nombre très importants de
fonctions et méthodes dont le but est d’abstraire les couches inférieur (réseau socket, codec, QoS,
…), tout en faisant appel aux méthodes simples, comme l’enregistrement, l’appel, …
PJSUA est la seule partie de PJSIP avec des interfaces JNI. Le projet open-source PJSIP-JNI a été utilisé
par le projet CSIPSimple pour s’interfacer avec PJSIP.
Le projet a appliqué quelques modifications sur le PJSIP-JNI afin de le rendre plus adapté pour
l’environnement android.
g. Une architecture en couche : L’architecture de notre application s’inspire de l’architecture de CSIPSimple. Cette dernière utilise un
interfaçage JNI avec la librairie PJSIP afin de profiter de la puissance et la performance de PJSIP écrite
en C++ tout en gardant le confort la simplicité proposée par la machine virtuelle d’android.
Le fonctionnement de l’application est très simple. La gestion des évènements, l’interface graphique
et l’intelligence de l’application sont toutes dans la partie client écrite en JAVA. Pour faire appel aux
fonctions PJSIP, comme l’enregistrement ou la réalisation d’un appel, le client fait appel aux
interfaces JNI de PJSIP, ou pour être plus précis, de la partie PJSUA de PJSIP. L’interface JNI fait appel
à son tour aux vraies fonctions PJSUA pour réaliser les fonctions d’enregistrement et d’appel.
8. Diagramme de séquence Quand le client lance l’application « HandiRATP », elle sera initialisée premièrement, ensuite elle
attend des actions. Si le client appuie sur Botton « Call », l’application va lancer la fonction Appel,
nous allons spécifier l’action « Appel » en diagramme de séquence :
Nous nous sommes inspiré des sources de l’application « VoiDroid », et les libraires de « CSipSimple »
pour ce projet :
Lancer l’application
h HandiRATP pj pjsua
destroy()
Lancer l’appel
Terminer l’appel
Ci-dessous les algorithmes des fonctions modifiées:
Initialisation :
Created = false;
Creating = false;
Si Created et Creating sont vrais faire
Status = 0 : Int
Configuration globale
Configuration log
Configuration media
Status=pjsua.initialisation()
Si Status n’est pas 1 alors faire
Pjsua.destroy()
Created = false
Creating = false
Retourner ;
Fin si
Ajouter Tansport UDP
Status = pjsua.start()
Si stauts n’est pas 1 alors
Pjsua.destroy ()
Created = false
Creating = false
Retourner
Fin si
Created = true
Creating = false
Fin si
Ajout un compte SIP
Status=0 : Int
accId = int[1] : int[]
Cfg : pjsua_acc_config
Username : pj_str_t
Domain : pj_str_t
Password : pj_str_t
Data: pjsip_cred_info
Data.setRealm(domain)
Data.setUsername(username)
Data.setData(password)
Cfg.setId(sip:username@domain)
Status = pjsua.acc_add(cfg, accId)
Si status n’est pas 1 alors
acc_id = acid[0];
Fin Si
Retourner status
Appel
Status : int
Adress : pj_str_t // adresse SIP cible
Status = pjsua.call_make_call (status, adresse)
Return Status
Voici le diagramme de séquence de la fonction « Appel » :
Raccroche
Status : int
Adress : pj_str_t // adresse SIP cible
Status = pjsua.call_hangup_all (status, adresse)
Pjsua.destroy();
Return Status
9. Spécifications techniques L’objet du présent chapitre est de détailler les spécifications techniques pour l’application android
HandiRATP.
Ce document est destiné :
- Aux enseignants
- Aux étudiants qui poursuivront le développement de l’application
- A la RATP
HandiRATP se base sur le code source de CSipSimple. Ci-dessous l’architecture de ce dernier :
Nous avons modifié deux parties du code source du CSipSimple : Appel SIP et Comptes. Nous avons
également modifié les options de résolution DNS de l’outil. Ce rapport détaillera les modifications et
changements apportées.
a. Appel SIP
i. Création d’un vue
Dans répertoire « res/layout », se trouve le fichier « main.xml » décrivant le style de la page
d’accueil :
Action appel =
f >0
h HandiRATP pj pjsua
R
Status=pjsua_verify_sip_url( url)
f S >0
ii. La classe principale « HandiDialer.java »
Cette classe est créée à partir d’une classe « Dialer.java », elle permet :
- La création automatique d’un compte automatique (Voir 2.2.2.)
- L’intégration de l’interface « main.xml » dans la classe principale
- L’ajout d’une fonction « placeCall » associée au bouton « Call »
TextView
ImageView
Botton
Dans la classe « HandiRATP », l’identifiant de l’usager et de l’agent RATP « agent@ratp.fr » ont été
définis. Pour démarrer un appel, il faut utiliser la fonction « placeCall ». Dans cette fonction, n appel
à la méthode « makeCall » se charge de lancer le service SIP.
b. Comptes
i. Gestion automatique des comptes au démarrage de l’application
Après le lancement de CSipSimple, l’activité Comptes est lancée dans le cas où c’est le premier
démarrage de l’application, sinon, HandiRATP désactive cette activité.
ii. Ajouter d’un compte
Pour créer un compte SIP dans « CSipSimple », il faut procéder de façon manuelle. Nous utilisons
l’identifiant : « usager@Adresse IP » comme URI SIP pour la création du compte. Au lancement de
l’application, le compte est créé automatiquement.
Ce type de compte identifié avec adresse IP est associé au compte « LOCAL », déjà défini dans
« CSipSimple ». D’où l’utilisation de l’identifiant LOCAL dans le WIZARD_ID qui indique le template à
utiliser :
Ensuite le transmettre à une autre activité « BasePrefsWizard », qui aide à créer un compte
« LOCAL »:
La classe « BasePrefsWizard.java » vérifie si compte est déjà créé, sinon procède à sa création :
iii. Résolution DNS
L’architecture réseau se basait sur des requêtes DNS type SRV, conformément à la norme SIP.
L’activation de ce type de résolution DNS est gérée par le HashMap BOOLEAN_PREFS.
Src/utils : preferenceWrapper.java :
Res/xml: prefs_network.xml
Fichier « prefs_network.xml » gère l’activation de l’option DNS SRV sur l’interface graphique (Cocher ou pas) ; « preferenceWraper.java » gère pour sa part la vraie configuration réelle de cette option.
10. Tests Ceci sont les principaux jalons sur lesquels nous avons travaillé durant les phases de tes :
a. Environnement de test L’environnement de test qui a été mis à notre disposition se compose des briques suivantes :
- Une machine virtuelle sous Debian Lenny
- Serveur DHCPDHCP3
- Serveur SIP OpenSIPS
- Serveur DNS BIND9
- Borne wi-fi linksys
- Téléphone samsung sous android v1.6
- Téléphone HTC Hero sous android 2.0
Toutes les briques logicielles utilisées sont issues du monde opensource et requiert un effort de
configuration relativement important.
Sur le serveur DHCP, il faut indiquer le bloc IP géré, les adresses du serveur DNS, du gateway et le
mask du bloc IP.
Le serveur DNS est responsable (master) du domaine ratp.fr, et référence l’adresse du serveur SIP
(sip.ratp.fr).
Le serveur SIP est en charge de l’enregistrement des agents de la RATP, dans notre cas,
« agent@ratp.fr ».
Qualité de voix CSipSimple
Code Java HandiRATP
Etablissement de la connexion
(Appel à 10.0.0.x)
Résolution DNS
(Appel à agent@ratp.fr)
Prototype
Un softphone SIP est installé sur une des machines de test, et permet de simuler le poste du client de
l’agent de la RATP.
b. Test qualité de la voix Le premier test que nous avons effectué dans le cadre de ce projet, est le test de la qualité Voix des
deux softphones CSIPSimple et SipDroid.
L’environnement de test est très simple, en configurant de comptes locaux sur les softphones et en
requêtant le client SIP sur nos machines de test, on était capable de tester, d’une part la facilité de
configurations de ces clients, et deuxièmement
c. Test communication avec adresse IP Ce test a pour but de s’assurer que l’application respectait le échanges SIP, et que les champs
modifiés (SIP URI, Domain_Name) était bien prise en compte.
Nous avons donc pu établir des communications avec un client SIP sur une des machines de test.
Durant ces phases de test, notre application avait un champ spécial pour indiquer l’adresse du client
à contacter, afin de faciliter et simplifier les tests.
d. Test avec résolution DNS Les tests de résolution DNS avaient pour but de s’assurer que l’application effectuait correctement
l’opération de résolution du nom de domaine ratp.fr.
En utilisant un capteur de trafic installé sur le serveur DNS, il était possible d’écouter les requêtes
émises (ou non émises) par l’application HandiRATP.
Comme indiqué dans les chapitres précédents, nous avons constaté plusieurs problèmes de
résolution DNS que nous avons résolu en modifiant le type de requête émises par l’application.
e. Téléchargement et installation de l’application Un des scénarios qui nous a été inspiré M. LERICHE était l’utilisation d’une affiche publicitaire avec un
tag QRCode renvoyant vers le lien de l’application.
12. Conclusion Nous espérons que ce rapport fournit une idée claire sur le fonctionnement d’HandiRATP, et sur les
différentes modifications appliquées à CSIPSimple.
La section spécification technique détaille le fonctionnement de l’application, et a pour but de
faciliter la reprise de ce projet pour de nouvelles évolutions.
Une des points importants que nous avons constaté durant nous travaux, est l’importance de
l’environnement de test, en passant par le téléphone mobile, la borne wifi jusqu’au serveur. Il est
primordial que toutes ces briques soient opérationnelles, car il est souvent impossible de déterminer
la cause de plusieurs difficultés et problèmes de connexion et de communication que nous avons
constatée.
Nous tenons finalement à remercier tous nos encadrants pour leurs soutien et leurs aide précieuse,
que sans, sera projet n’aurait certainement pas pu aboutir à sa fin.
top related