Professional Documents
Culture Documents
Scientifique
Universit de la Manouba
Ralis par :
Lazar Hamza
Sous l'encadrement de :
M. Mezghani Dhafer
Anne Universitaire :
2012-2013
Signature de l'encadrant
M. Mezgheni Dhafer
Rsum
Softphone VoIP/SIP sous Android :
Ce travail, qui s'inscrit dans le cadre du projet de conception et de dveloppement (PCD) destin aux lves ingnieurs en deuxime anne l'cole Nationale des Sciences de l'Informatique
(ENSI), a pour but la ralisation d'un client VoIP 1 mobile autour du protocole SIP 2 destin
la plate-forme Android.
L'application vise permetterait de tlphoner sur IP 3 , grer des contacts et garder un journal des appels. MjSIP, une implmentation troisime-tier crite en Java de la pile des protocoles
multimdia a t utilis et la librairie ActionBarSherlock nous a permis de surmonter les problmes de compatibilit lies aux versions Android antrieures 3.0 (Honeycomb).
Mots cls : VoIP, SIP, SDP 4 , RTP 5 , Android, MjSIP, SQLite, ActionBarSherlock, Java, POO 6
1.
2.
3.
4.
5.
6.
Voice over IP
Session Initiation Protocol
Internet Protocol
Session Description Protocol
Real-time Transport Protocol
Programmation Oriente Objet
Abstract
VoIP/SIP Softphone for Android :
This work, conducted under the software design and implementation project for the second
year engineering students at the National School for Computer Studies, aims to develop a VoIP
client for the Android platform based, mainly, on SIP.
The application's main purposes are telephony over IP, managing contacts and saving calls'
log. MjSIP, a third-party implementation of the multimedia protocols written in Java were used
as well as ActionBarSherlock library project which solved compatibility problems related to Android versions pre 3.0 (HoneyComb).
Keywords :
VoIP, SIP, SDP, RTP, Android, MjSIP, SQLite, ActionBarSherlock, Java, OOP 7
7. Object-Oriented Programming
Remerciements
Nous voudrions exprimer notre gratitude et notre reconnaissance envers tous ceux qui ont
contribu l'accomplissement de ce travail.
Nos remerciements s'adressent en premier lieu notre encadrant M. Dhafer Mezghani qui a
su nous faire sentir responsables et conants.
Nous tenons aussi remercier nos camarades de classe de l'cole Nationale des Sciences de
l'Informatique.
Qu'il nous soit aussi permis de remercier Mmes Nesrine Ben Yahia, Imtiez Fliss et Emna Souilah
pour leurs eorts dans la rvision et dans la correction de ce rapport.
Introduction gnrale
1 tude pralable
1.1
1.2
1.3
tat de l'art . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 VoIP . . . . . . . . . . . . . . . . . . . . . . .
1.1.2 Protocole SIP . . . . . . . . . . . . . . . . . .
1.1.3 Protocole SDP . . . . . . . . . . . . . . . . .
1.1.4 Protocoles RTP/RTCP . . . . . . . . . . . .
1.1.5 Exemples de ux SIP . . . . . . . . . . . . . .
Etude de l'existant . . . . . . . . . . . . . . . . . . .
1.2.1 Etude de clients SIP/VoIP Android existants
1.2.2 Description de la solution propose . . . . . .
Prsentation du projet . . . . . . . . . . . . . . . . .
1.3.1 Cadre du projet . . . . . . . . . . . . . . . . .
1.3.2 Travail faire . . . . . . . . . . . . . . . . . .
2 Analyse et spcication
2.1
2.2
3 Conception
3.1
3.2
3.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Conception globale . . . . . . . . . . . . . . .
3.1.1 Diagramme de paquetage . . . . . . .
3.1.2 Description des paquetages . . . . . .
Conception dtaille . . . . . . . . . . . . . .
3.2.1 Conception de l'IHM . . . . . . . . . .
3.2.2 Conception de la base de donne locale
3.2.3 Traitement en arrire plan . . . . . . .
Diagrammes de squence . . . . . . . . . . . .
II
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
4
4
5
6
6
8
9
9
9
10
10
10
10
11
12
12
14
19
19
19
20
20
20
22
22
23
4 Ralisation
4.1
4.2
4.3
4.4
Environnement de travail . . .
4.1.1 Environnement matriel
4.1.2 Environnement logiciel .
Choix technologiques . . . . . .
4.2.1 SDK . . . . . . . . . . .
4.2.2 ActionBarSherlock . . .
4.2.3 MjSip . . . . . . . . . .
4.2.4 SQLite . . . . . . . . . .
Description des interfaces . . .
4.3.1 Gestion du compte SIP
4.3.2 Interface d'appel . . . .
4.3.3 Gestion des contacts . .
Chronogramme du travail . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
27
28
29
29
29
30
31
31
31
34
35
40
Conclusion gnrale
41
Bibliographie
41
Ntographie
42
Annexes
43
44
48
1.1
1.2
1.3
1.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
6
7
8
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
13
13
14
14
15
15
16
17
18
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
Diagramme
Diagramme
Diagramme
Diagramme
Diagramme
Diagramme
Diagramme
Diagramme
Diagramme
Diagramme
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
de paquetage . . . . . . . . . . . . . .
de classes du package IHM . . . . . . .
d'activits . . . . . . . . . . . . . . . .
de classes du package Base de donnes
de classes du package SIP . . . . . . .
de squence - Ajouter Contact . . . . .
de squence - Modier Contact . . . .
de squence - Supprimer Contact . . .
de squence - Appeler Adresse SIP . .
de squence - Recevoir Appel SIP . . .
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
20
21
22
23
23
24
25
25
26
. . .
. . .
vide
. . .
. . .
. . .
. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
31
32
32
32
33
33
33
34
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
4.23
4.24
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A.1
A.2
A.3
A.4
A.5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
36
36
36
36
37
37
37
38
38
38
39
39
39
40
. . .
. . .
. . .
skin
skin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
45
45
46
46
47
48
48
. . . .
. . . .
. . . .
avec le
avec le
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.1
4.1
4.2
4.3
4.4
4.5
VI
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
27
27
28
28
29
Introduction gnrale
8. Troisime Gnration
9. Sofware Development Kit
10. Application Programming Interface
Chapitre
tude pralable
Dans ce chapitre, nous allons en premier lieu introduire les bases thoriques, terminologie
et concepts, lis notre projet. Deuximement, nous allons prsenter une tude comparative de
deux softphones VoIP/SIP existants sur Google Play Store. Ensuite, nous allons prsenter le
cadre gnral du projet.
Fiche technique :
SIP reprend des lments techniques des protocoles SMTP 3 et HTTP 4 . Voici les caractristiques techniques de SIP en bref :
Dans la pile TCP 5 /IP, SIP appartient la couche applicative.
1.
2.
3.
4.
5.
Entits SIP
Il existe une multitudes d'entits qui interviennent dans les changes des messages SIP parmi
lesquels nous pouvons citer[1] :
Les Agents
Agent Client (UAC 8 ) : Entit, qui se trouve sur tout quipement, ayant pour rle d'envoyer les requtes et recevoir les rponses. Par exemple l'appelant est considr comme
un UAC.
Agent Serveur (UAS 9 ) : Entit, qui se trouve sur tout quipement SIP, ayant pour rle
de gnrer et d'envoyer les rponses. Par exemple l'appel est considr comme un UAS
puisqu'il rpond aux requtes.
Les serveurs SIP
Les serveurs sont des fonctions (appareils logiques) qui peuvent tre dployes sur un ou
plusieurs appareils physiques. Voici les principaux exemple de serveurs SIP :
Serveurs proxy (Relais mandataire) : Entits qui agissent la fois en tant que UAC et
UAS. Ils ont surtout un rle de routage des messages SIP et parfois il peuvent intervenir
dans une politique d'accs et de scurit.
Serveurs de redirection : Les serveurs Redirect sont utiliss pendant la phase d'initiation
d'appel pour dterminer l'adresse de l'appareil appel. L'UAC de l'appareil appelant est
donc redirig vers une URI 10 alternative (le serveur proxy le plus proche du destinataire)
pour contacter l'UAS correspondant.
Serveur d'enregistrement (RG 11 ) : Le Registrar est un serveur qui gre les requtes
REGISTER envoyes par les UAC pour signaler leur emplacement courant. Ces requtes
contenant une adresse IP (avec le numro de port), associe une URI SIP, seront envoys
un serveur de localisation pour stockage.
Serveurs de localisation (LS 12 ) : Ce serveur, pseudo DNS 13 , fonctionne comme une base
de donnes qui contient les enregistrements des terminaux, donc l'association entre URI
SIP et (IP,port). Le serveur de localisation est consult par un serveur proxy ou un
serveur de redirection pour obtenir des informations sur la localisation de l'appel.
6.
7.
8.
9.
10.
11.
12.
13.
Rapport de PCD
2012 - 2013
RTP
Le but de RTP et de permettre la transmission des donnes ayant des contraintes de temps
rel sur les rseaux IP. Il permet entre autre de :
identier le type des donnes transportes
14. RTP Control Protcol
Rapport de PCD
2012 - 2013
timestamps
garantir la reconstruction des paquets livrs et dtecter les ventuelles pertes grce aux
numros de squence
RTCP
RTCP est un protocole de contrle des ux RTP. Il accompagne toujours le protocole RTP ;
ds qu'une session RTP est ouverte une session RTCP est implicitement lance. Son fonctionnement est bas sur des transmissions priodiques de paquets de contrle par tous les participants
d'une mme session. Si l'on considre une session audio avec deux participants, des paquets
RTCP peuvent tre mis toutes les 5 secondes. Ces paquets de contrles peuvent contenir des
feedbacks sur la qualit de service et des informations sur les participants.
Rapport de PCD
2012 - 2013
Rapport de PCD
2012 - 2013
SipDroid
Rapport de PCD
2012 - 2013
CSipSimple
Rapport de PCD
2012 - 2013
Table 1.1 Tableau comparatif entre solutions existantes tudies et solution propose
Application Gestion des Contacts Journal des appels Interface graphique Facilit d'usage
CSipSimple
Non
Oui
Soigne
Eleve
SipDroid
Non
Non
Archaque
Moyenne
AndroSip
Oui
Oui
Simple
Eleve
Conclusion
Dans ce chapitre nous avons, tout d'abord, prsent les protocoles essentiels notre application. En deuxime lieu, nous avons eectu une tude de l'existant dans le but d'en extraire les
critres de la solution adopter. Dans le chapitre qui suit, nous allons spcier les besoins de la
solution retenue.
Rapport de PCD
2012 - 2013
Chapitre
Analyse et spcication
Dans le prsent chapitre, nous commenons par identier l'acteur de notre application et
exprimer les services que doit lui orir l'application. Dans la deuxime partie, nous prsentons la
spcication semi-formelle, suivant la norme UML 1 2.0, de ces besoins travers des diagrammes
de cas d'utilisations et leurs scnarios respectifs.
10
Rutilisablit :
Le code source de notre application doit tre bien organis, lisible et comprhensible. Les
tabulations, espacements, indentations et autres normes (appellation des variables, paramtres,
classes, mthodes, attributs doit tre signicative) sont recommands.
Ergonomie :
L'interface doit tre moderne et le passage entre les dirents menus doit tre intuitif. Les
lments prsents l'cran doivent tre de faible densit.
Performance :
L'application doit permettre d'changer de la voix dans un rgime de temps rel et lancer
des sevices en arrire plan quand c'est ncessaire.
Gnricit :
L'application doit pouvoir communiquer avec n'importe quel entit SIP.
Ecacit :
L'application doit tre assez lgre dans le sens ou elle utilise le moins possible de ressources
matrielles.
Compatibilit :
L'application doit viser le maximum de terminaux Android.
Rapport de PCD
11
2012 - 2013
2.2 Spcication
Les diagrammes de cas d'utilisation servent illustrer le comportement fonctionnel de notre
application. Chaque cas d'utilisation reprsente un type d'interaction entre l'utilisateur et notre
systme.
Rapport de PCD
12
2012 - 2013
Emettre appel
Rapport de PCD
13
2012 - 2013
Ajouter contact
Figure 2.5 Diagramme de squence systme : Ajouter compte SIP scnario nominal
Premier scnario exceptionnel :
1. L'utilisateur saisit des donnes errones.
2. Le systme vrie les donnes.
3. Le systme n'accepte pas les donnes introduites.
Deuxime Scnario exceptionnel :
1. L'utilisateur saisit des donnes syntaxiquement correctes.
2. Le systme tempte de s'enregistrer auprs du serveur SIP spci.
3. L'enregistrement choue et le compte n'a pas t sauvegard
Rapport de PCD
14
2012 - 2013
15
2012 - 2013
Rapport de PCD
16
2012 - 2013
Rapport de PCD
17
2012 - 2013
Conclusion
Tout au long de ce chapitre nous avons essay de spcier avec le degr de dtails le plus
haut possible les besoins auxquels doit rpondre notre application. La conception, qui se base
sur cette spcication, fera l'objet du prochain chapitre.
Rapport de PCD
18
2012 - 2013
Chapitre
Conception
Aprs avoir explicit les fonctionnalits de notre logiciel, nous entamons le stade de conception. Nous prsentons dans la partie conception globale de ce chapitre, le dirents composants
de notre application travers un diagramme de paquetage. Dans la conception dtaille, nous
illustrons la vue structurelle par des diagrammes de classes et la vue comportementale par un
diagramme d'activit.
Chapitre 3. Conception
Rapport de PCD
20
2012 - 2013
Chapitre 3. Conception
21
2012 - 2013
Chapitre 3. Conception
Rapport de PCD
22
2012 - 2013
Chapitre 3. Conception
23
2012 - 2013
Chapitre 3. Conception
L'ajout d'un contact est une fonctionnalit de notre application exprime l'aide du diagramme de squence de la gure 3.6.
L'utilisateur, suite l'appui sur le bouton "Ajouter contact" se trouvant dans le fragment
"ContactsFrag" se situe dans une nouvelle activit "AddconActivity". Dans cette dernire il va
remplir les champs obligatoires Nom, SIP URI et optionellement E-mail et une image du contact.
Aprs l'insertion des donnes, le systme vrie leurs validits en envoyant un message d'erreur dans le cas chant.
Lorsque les donnes sont valides et avec l'appui sur le bouton "Ajouter" on va crer un nouveau
contact avec la mthode createContact(String,String,String,String) de la classe ContactDB. Finalement, un retour au fragment "ContactsFrag" aura lieu avec l'achage de la liste des contacts
et parmi eux le contact nouvellement ajout.
24
2012 - 2013
Chapitre 3. Conception
25
2012 - 2013
Chapitre 3. Conception
Ceci commence par la saise d'une SIP URI correcte du destinataire. Ensuite le fait d'appuyer
sur le bouton d'mission d'appel permet de lancer un dialogue SIP en background, qui une fois
termin par un message "180 RINGING" signalant que l'appel est joignable et non occup avec la
mthode onCallConrmed(), permet le lancement d'une nouvelle activit "Call". La session audio
RTP est ouverte une fois l'appel dcroche, qui est un vnement signal par onCallAccepeted(),
et peut nir quand l'un des deux bouts de la session dcide d'appuyer sur le bouton qui permet
de "Raccrocher".
Conclusion
Dans ce chapitre, nous avons dtaill l'aide des diagrammes UML, la conception de notre
application dont la ralisation va suivre dans le chapitre suivant.
Rapport de PCD
26
2012 - 2013
Chapitre
Ralisation
Ce chapitre permet de prsenter les rsultats du travail achev. Tout d'abord, nous y prcisons
les caractristiques du matriel utilis et les logiciels choisis dans l'laboration de ce projet pour
justier ensuite les choix techniques adopts. Enn, nous nissons par exposer les direntes
interfaces de notre application.
HP Compaq 6830s
Intel(R) Core(TM)2 Duo T5870 2x2.00GHz
2990 MiB
250Gb
27
Chapitre 4. Ralisation
Smartphones
Pour debugger et tester l'application, hormis l'usage frquent des AVD 1 s, nous avons utilis
deux smartphones de la marque Samsung totalement dirents dans leurs caractristiques surtout
la version de l'OS 2 et le type d'achage. Les tableaux 4.3 et 4.4 rsument ces caractristiques.
Modle
CPU
Mmoire interne
Mmoire externe
Rsolution
Logiciels divers
Tous les logiciels utiliss durant notre projet sont numrs dans le tableau 4.5.
1. Android Virtual Device
2. Operating System
3. IP Private Branch eXchange
Rapport de PCD
28
2012 - 2013
Chapitre 4. Ralisation
IDE
Modlisation UML 2.0
Editeur Latex
Systme d'exploitation
VCS 4
4.2.2 ActionBarSherlock
29
2012 - 2013
Chapitre 4. Ralisation
galement de naviguer entre les direntes fragments de l'application. ActionBar est disponible
dans le SDK Android ociel, depuis la version 3.0 Honeycomb d'Android (avec des amliorations importantes dans la version 4.0 Ice Cream Sandwich). Le souci majeur est que l'usage de
l'ActionBar dans une application, rend cette dernire incompatible avec les versions Android
antrieures 3.0.
ActionBarSherlock est la solution ce problme. ABS 5 est donc une extension de la librairie
de compatibilit faite pour faciliter l'utilisation de la barre d'action travers toutes les versions
d'Android avec l'utilisation d'une seule API. La stratgie de Jake Wharton, initiateur et princiapl
dveloppeur du projet ABS, a t plutt simple : utiliser le code source mis disposition sur
le projet AOSP 6 et faire les modications ncessaires pour le faire fonctionner sur des versions
antrieures. Pour rsumer ABS, c'est :
l'API standard de l'ActionBar adapte sur n'importe quelle version d'Android
l'implmentation native sur Android 4.x : il se comporte alors simplement comme une
simple wrapper
une implmentation ddie pour toutes les versions antrieures 4.0 en utilisant une version
largement modie par rapport ce qui est disponible dans le projet AOSP
4.2.3 MjSip
L'implmentation par dfaut du protocole SIP dans le SDK d'Android est disponible partir
de la version 9 de l'API, cependant cette implmentation soure de beaucoup de problmes et
il n'existe presque pas d'applications sur le Google Play Store qui l'utilise. Parmi les dfauts
majeurs de la pile SIP d'Android est son incompatiblit avec plusieurs appareils[11]. Nous avons
tlcharg et essay l'exemple diditacticiel ociel qui montre l'utilisation des APIs SIP. Notre
test conrme ce que nous avons lu sur le web, le projet n'a pas pu s'excuter car notre appareil
est non support par SipManager. Ceci ne prouve qu'une chose ; le ct SIP avec Android est
presque dlaiss.
Pour ce qui est du protocole RTP, mme s'il a t utilis ds l'API 9 ct du protocole SIP, il
n'a t rendu publique qu'en API 12[12]. Or, notre projet doit tre compatible avec les versions
d'Android antrieures l'API 12. C'est pourquoi on a dlaiss l'usage des classes RTP d'Android.
C'est ainsi que nous nous sommes mis chercher une alternative, donc une implmentation
troisime-tier de la pile SDP/SIP/RTP. Aprs avoir mis beaucoup de temps pour la recherche
et la documentation sur les dirents choix, nous avons nit par opter pour MjSip et nous avons
cart JainSIP, NGN 7 Stack de Doubango et PjSIP pour les raisons suivantes :
La librairie JainSIP[17] ne peut pas s'ajouter un projet Android cause des conits de
nommage avec les classes SIP ocielles qui sont inspires de celles de JainSIP[18].
PjSIP[15] est crite en C, d'o la ncessit de dvelopper avec le NDK 8 en utilisant les
glsJNIs. Cette approche nous a paru hazardeuse et risque vu que nous sommes encore
nos dbuts avec Android. De plus, PjSIP ne prsente pas encore de version ocielle pour
Android.
NGN-Stack de Doubango [16] est trop gourmande en espace mmoire et ajoute des fonctionnalits jugs inutiles dans notre projet.
Par lmination des autres choix, nous nous sommes trouvs contraints utiliser MjSIP[13]
qui n'tait pas notre premier choix ds le dbut vu que cette librairie est presque stagnante
5.
6.
7.
8.
ActionBarSherlock
Android Open Source Project
Next Generation Network
Native Development Kit
Rapport de PCD
30
2012 - 2013
Chapitre 4. Ralisation
et manque normment de documentation. Nous avons dcouvert plus tard dans la phase de
ralisation, d'autres dfauts dans MjSIP.
4.2.4 SQLite
Pour sauvegarder les contacts de notre application nous avons opt pour l'option d'une base
de donnes locale l'aide du SGBD 9 SQLite. Ce dernier a t intgr sans le coeur mme
d'Android.Il ne ncessite pas de serveur pour fonctionner donc son excution se fait dans le
mme processus que celui de l'application. Par ailleurs, il faut le matriser an de ne pas alourdir
l'application.
Rapport de PCD
31
2012 - 2013
Chapitre 4. Ralisation
Figure
norme
32
2012 - 2013
Chapitre 4. Ralisation
Rapport de PCD
33
2012 - 2013
Chapitre 4. Ralisation
Rapport de PCD
34
2012 - 2013
Chapitre 4. Ralisation
Rapport de PCD
35
2012 - 2013
Chapitre 4. Ralisation
Dans les deux gures prcdentes 4.11 et 4.12, nous mettons en valeur les vrifcations faites
par notre application par rapport au nom du contact. Le champ nom tant obligatoire par
consquent il doit tre non vide et an d'liminer toute redondance des noms de contacts un test
est alors implment.
Nous visualisons dans les deux gures 4.13 et 4.14 les vrications faites par rapport au
deuxime champ obligatoire SIP URI. Lui aussi il doit tre non vide et sa validit est determine
partir de sa contenance "@".
Rapport de PCD
36
2012 - 2013
Chapitre 4. Ralisation
Les deux gures ci dessus 4.16 et 4.17 prsentent les deux possibilits avec lesquelles l'utilisateur peut personnaliser l'image du contact et ce soit en choisissant une photo contenue dans
la galerie soit en prenant une capture d'image instantanne.
Rapport de PCD
37
2012 - 2013
Chapitre 4. Ralisation
Acher Contact :
La slection d'un contact se trouvant dans la liste des contacts nous permet de visualiser ses
donnes dja enregistres et une possibilit de sa modication ou de sa suppression.
La gure 4.19 montre l'exemple d'un contact enregistr avec seulement les champs obligatoires
(Nom et SIP URI),une photo par dfaut est alors lui aecte. Quant la seconde gure 4.20 ,
elle nous permet de visulaiser toutes les donnes mmes les optionnelles.
Rapport de PCD
38
2012 - 2013
Chapitre 4. Ralisation
Modier Contact :
Notre application permet de modier les donnes relatives aux contacts enregistrs dans sa
base de donnes.
Les gures prcdentes 4.22 et 4.23 permettent de visualiser les modications faites par
rapport au contact slectionn.
Rapport de PCD
39
2012 - 2013
Chapitre 4. Ralisation
Gestion du compte
Conclusion
Dans ce chapitre, nous avons dcrit l'environnement de travail. Ensuite, nous avons argument
les dirents choix technologiques que nous avons pris. En dernier lieu, nous avons pris quelques
captures d'cran des principales interfaces de notre application.
Rapport de PCD
40
2012 - 2013
Conclusion gnrale
L'objectif de ce projet a t de concevoir et de dvelopper une application Android de tlphonie sur IP en se basant principalement sur le protocole SIP.
Dans ce rapport, les notions thoriques de base concernant l'architecture protocolaire de
VoIP choisie ont t explicites ainsi qu'une tude de deux exemples de softphones SIP dj
existant. Ensuite, les besoins auxquels est cense rpondre notre application ont t numres
puis spcies.
La conception a t illustre par les dirents diagrammes de la norme UML 2.0, suivie de la
partie ralisation o les rsultats pratiques de notre projet ont pu tre prsents aprs avoir
prcis l'environnement de travail.
La ralisation de ce projet a t l'tape la plus dlicate faute de varits de choix technologiques
et de documentation. L'absence d'APIs de qualit des protocoles concerns par notre application,
savoir SIP et RTP destines Android nous a rendu la tche encore plus dicile. Mme le
choix de MjSIP tait mal plac. Cependant nous avons pu raliser les parties fonctionnelles de
notre application et nous avons russi raliser une interface graphique utilisant les nouveauts
d'Android et adaptes aux anciennes versions de l'OS grce la libraire ActionBarSherlock, mais
tout cel au dpit de la qualit de service.
Tout au long de ce projet, nous avons appris une certaine autonomie dans la prise de dcision
et une meilleure gestion du temps grce la combinaison Git/GitHub. Nous avons eu aussi
l'occasion d'exploiter notre savoir thorique acquis surtout en matire de conception.
Notre travail pourrait servir de support pour d'autres projets Android ou VoIP. Les principales
amliorations ventuelles notre applications seraient l'ajout de la gestion multi-comptes SIP et
d'autres codecs audio.
41
Bibliographie
42
Ntographie
[4]
http://thd.tn/index.php?option=com_content&view=article&id=2359:
le-ministere-des-tic-libere-la-voip-de-lemprise-de-letat-orange-tunisie-peut-relancer-s
64&Itemid=361
dernire consultation 20 Janvier 2013
[5]
https://play.google.com/store/search?q=sip&c=apps
dernire consultation 11 Janvier 2013
[6]
https://play.google.com/store/apps/details?id=org.sipdroid.sipua
dernire consultation 15 Janvier 2013
[7]
http://sipdroid.com/
dernire consultation 29 Janvier 2013
[8]
https://play.google.com/store/apps/details?id=com.csipsimple
dernire consultation 15 Janvier 2013
[9]
http://r3gis.fr/blog/index.php?post/2009/10/31/SipDroid-and-Direct-RTP
dernire consultation 15 Janvier 2013
[10]
http://developer.android.com/about/dashboards/index.html
dernire consultation 12 Avril 2013
[11]
http://developer.android.com/guide/topics/connectivity/sip.html
dernire consultation 15 Avril 2013
[12]
http://developer.android.com/reference/android/net/rtp/RtpStream.html
dernire consultation 17 Avril 2013
[13]
http://www.mjsip.org/
dernire consultation 06 Mai 2013
[14]
http://actionbarsherlock.com/
dernire consultation 02 Mai 2013
[15]
http://www.pjsip.org/
dernire consultation 20 Avril 2013
[16]
http://www.doubango.org/
dernire consultation 15 Avril 2013
[17]
https://jsip.java.net/
dernire consultation 11 Avril 2013
[18]
http://stackoverflow.com/questions/tagged/jain-sip+android
dernire consultation 11 Avril 2013
43
Annexe
44
45
2012 - 2013
Rapport de PCD
46
2012 - 2013
Annexe
47
Rapport de PCD
48
2012 - 2013
Glossary
3G
Troisime Gnration. 1
ABS ActionBarSherlock. 30
ADT Android Development Toolkit. 44
AOSP Android Open Source Project. 30
API Application Programming Interface. 1, 7, 29, 30, 41
ASCII American Standard Code for Information Interchange. 3
AVD Android Virtual Device. 28, 44
DNS
Location Server. 3
MD5
Message Digest 5. 6
NDK
NGN
RFC
Glossaire
RG Registrar. 3
RTCP RTP Control Protcol. 4, 5
RTP Real-time Transport Protocol. I, 4, 5, 30, 41
SDK Sofware Development Kit. 1, 30
SDP Session Description Protocol. I, 4, 30
SGBD Systme de Gestion de Bases de Donnes. 31
SIP Session Initiation Protocol. I, 15, 7, 20, 30, 36, 38, 41
SMTP Simple Mail Transport Protocol. 2
TCP
Rapport de PCD
50
2012 - 2013