Rapport de projet. Projet : Logiciel de voix sur IP. Master informatique Projet 2008/2009. Membres du groupe : Tuteur :



Documents pareils
SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

SIP A. Aoun - La Visioconférence SIP - 1

SIP. Sommaire. Internet Multimédia

Configuration du driver SIP dans ALERT. V2

LOGICIEL DE TELEPHONIE SUR IP

La VOIP :Les protocoles H.323 et SIP

Voix sur IP Étude d approfondissement Réseaux

Voix sur IP. Généralités. Paramètres. IPv4 H323 / SIP. Matériel constructeur. Asterisk

Couche Session M1 Info Z. Mammeri - UPS 1. Concept de session

RAPPORT DE CONCEPTION UML :

Configuration du driver SIP dans ALERT

Architecture BIGBLUEBUTTON Groupe BigBlueButton - Sénégal

DUT Informatique Module Système S4 C Département Informatique 2009 / Travaux Pratiques n o 5 : Sockets Stream

RCS : Rich Communication Suite. EFORT

SERVICE CONTACT INSTANTANÉ GUIDE D UTILISATEUR

Partie 2 (Service de téléphonie simple) :

Découvrez Windows NetMeeting

Protocole SIP et rc o d n o C ée yc L N E S ro P c a B

18 TCP Les protocoles de domaines d applications

Gregory DENIS. Nicolas MENECEUR. pour le California Institute of Technology Ciren 2010

Introduction de la Voix sur IP

Le service FTP. M.BOUABID, Page 1 sur 5

C a h p a i p tre e 4 Archi h t i ectur u e e t S i S g i n g a n li l s i atio i n o n SI S P

M1 IFPRU Cahier des Charges du projet de TER. Vidéo Surveillance sur IP Le système Rapace. Membres du groupe : Encadrés par :

Services Réseaux - Couche Application. TODARO Cédric

- Visioconférence - Utiliser NetMeeting au quotidien. Richard BONMARIN DSO/DSI/EMC-EBZ

VOIP. QoS SIP TOPOLOGIE DU RÉSEAU

Guide d utilisation. Version 10

Conférence et partage avec NetMeeting

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0

La VoIP et ToIP. - Les constructeurs de réseaux : Anciens : Alcatel, Ericsson, Nortel, Siemens, Lucent, NEC Nouveaux venus : NetCentrex, Cirpack

Lync 2013 Communiquez par messagerie instantanée, vidéo conférence, réunion virtuelle... - Version numérique

Ouvrez un compte Hotmail pour communiquer

Premiers pas avec NetSupport SCHOOL

Tutorial Terminal Server sous

Voix IP Affaires. Guide de l utilisateur Communicateur personnel

MO-Call pour les Ordinateurs. Guide de l utilisateur

Scopia Desktop. Sommaire

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

La VoIP: Les protocoles SIP, SCCP et H323. Jonathan BRIFFAUT Alexandre MARTIN

PROGRAMME DE MESSAGERIE INSTANTANEE RAPPORT FINAL. Généralités Structure du code Détail de scénarios Précisions de fonctionnement

L accès à distance du serveur

Guide de configuration de la Voix sur IP

Administration Réseau sous Ubuntu SERVER Serveur DHCP

Plug-in Verizon Collaboration pour Microsoft Outlook Guide de l utilisateur

VISIOCONFÉRENCE AVEC RENATER

Guide d installation ATTENTION : A la découverte de votre téléphone

Comment configurer X-Lite 4 pour se connecter au serveur Voip de Kavkom?

Prestation électronique de service pour la transmission d un bilan de phosphore

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Stéphanie Lacerte. Document technique. Connextek. 31 mai Cloudtel

Mise en place d un système de Téléphonie sur IP basé sur le logiciel Asterisk

PRECAUTIONS DESCRIPTION DU PRODUIT

Traitement des appels Accès au pages Web Options utilisateurs

Dispositif e-learning déployé sur les postes de travail

Windows 8 Installation et configuration

GUIDE D INSTALLATION INTERNET haute vitesse

Créer et partager des fichiers

Conferencing Services. Web Meeting. Guide de démarrage rapide V5_FR

SEMINAIRES & ATELIERS EN TÉLÉCOMMUNICATIONS RESEAUX

CONDITIONS GENERALES D UTILISATION DU PROGRAMME SEAT CONNECTED PEOPLE A DESTINATION DES INTERNAUTES

NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame

Téléphonie. sur IP. 2 e édition

Extended communication server 4.1 : VoIP SIP service- Administration

Configuration d'un trunk SIP OpenIP sur un IPBX ShoreTel

LA VoIP LES PRINCIPES

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

UserLock Guide de Démarrage rapide. Version 8.5

Formation. Module WEB 4.1. Support de cours

GUIDE PRATIQUE D IVM

Atelier n 12 : Assistance à distance

domovea Portier tebis

Sauvegarde des données d affaires de Bell Guide de démarrage. Vous effectuez le travail Nous le sauvegarderons. Automatiquement

eevision 2 Guide utilisateur Mail : contact@naotic.fr Tél. +33 (0) Fax. +33 (0)

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Les nouveautés d AppliDis Fusion 4 Service Pack 3

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Couche application. La couche application est la plus élevée du modèle de référence.

Téléphonie. sur IP. Module Voix et Téléphonie sur IP. Téléphonie sur IP. Sujet 4 Identification et localisation dans le protocole SIP

FORMATION MULTIMÉDIA LVE

Manuel d extension Assistant 3CX, Portail utilisateur MyPhone, Codes abrégés & Messagerie vocale pour système téléphonique 3CX Version 8.

Visio Kit. Mode d'emploi

Administration Centrale : Opérations

Manuel Utilisateur Téléphone IP Thomson ST 2030

CTIconnect PRO. Guide Rapide

CONTACT EXPRESS 2011 ASPIRATEUR D S

QoS et Multimédia SIR / RTS. Introduction / Architecture des applications multimédia communicantes

But de cette présentation

GUIDE D'UTILISATION DU SYSTEME TELEPHONIQUE POLYCOM

Documentation Honolulu 14 (1)

Projet de Diplôme. CAMAC-Call Machine. Simulateur de charge pour central VoIP

QU EST-CE QUE LA VISIOCONFERENCE?

Comment accéder à d Internet Explorer

Installation et utilisation du client FirstClass 11

Guide de l administrateur de mexi

Outlook Présentation.

NovoSIP manuel de mise en service

Transcription:

Master informatique Projet 2008/2009 Rapport de projet Projet : Logiciel de voix sur IP Membres du groupe : BELRHITI Zakariae ERRAKHAOUI Jamal KADIRI Othman MEDJAHED Mostefa Tuteur : M. ELAZOUZI Rachid

Sommaire I - Présentation du projet... 4 Intérêt du projet... 4 II Implémentation du protocole SIP... 4 1) Fonctionnement du programme initial (seulement la voix d implémenter)... 4 2) Notre Implémentation... 5 2-1 Identification du media... 5 2-2 Ouverture de session... 7 III - Transmission vidéo... 8 1) Capture de la webcam... 8 2) Transmission RTP/RTCP... 9 2-1 Envoi de la vidéo... 9 2-1-1 Création du processor (Méthode CreateProcessor())... 9 2-1-2 Envoi des flux sur le reseau (Méthode createtransmitter())... 9 2-2 Réception de la video... 10 2-2-1 Création instance de RTPManager (méthode Initialize())... 10 2-2-2 Réception et affichage du flux (méthode update(receivestreamevent evt)... 11 3) Schéma de compréhension... 12 Réception vidéo... 12 Emission vidéo... 12 IV - Transfert de fichier... 13 V - Messagerie instantanée... 13 Fonctionnement... 14 2

L échange de flux et traitement de la connexion... 14 VI Fonctionnement et test de l application... 15 1) Fonctionnement... 15 2) Tests... 16 VII Améliorations possibles... 16 VIII Organisation des taches... 17 1) Répartition des tâches... 17 2) Diagrammes de Gantt... 17 VIII - Difficultés rencontrées... 18 Conclusion... 18 3

I - Présentation du projet Ce projet de première année de master est la suite du projet 37 de l année dernière. Dans ce projet, les étudiants ont commencé à réaliser leur propre logiciel téléphonique pour que tous les membres de l IUP puissent l utiliser comme téléphone standard. L objectif du projet est d implémenter un modèle de communication multimédia (voix et vidéo) en temps réel entre deux (et plusieurs) ordinateurs. Et ce, en nous basant sur la modélisation orientée objet du protocole de signalisation SIP. Il s agit de développer une application utilisant une interface graphique homme machine (interface utilisateur). Dès lors, elle permettra un échange de données multimédia (audio, vidéo et messagerie instantanée). Intérêt du projet Ce logiciel devra permettre au membre de l IUP de communiquer en utilisant les technologies IP, entre deux, ou plusieurs personnes en conférence, peut importe leur localisation. Ce projet a été commencé il y a deux ans, et il a plusieurs intérêts. Le logiciel doit être réutilisable, puisque plusieurs personnes auront à travailler dessus, le code doit donc être compréhensible, clair et facile à modifier et réutiliser. Le but final étant que le logiciel soit opérationnel à la fin. De notre part, nous devons reprendre le travail qui a déjà était fait par les anciens étudiants, le comprendre afin de lui apporter des améliorations et lui ajouter de nouvelles fonctionnalités. II Implémentation du protocole SIP Le projet que nous avons choisit et un projet qui avait déjà était entamé et qu il a fallut compléter de nouvelle fonctionnalité. Partie de ce constat, nous avons cherché à calquer notre implémentation à celle déjà réalisé en réutilisant les méthodes et les classes déjà implémenter dans la mesure du possible. Dans cette partie, nous allons détaillés comment nous avons mis en ouvre les possibilités du protocole SIP pour pouvoir réaliser nos objectifs. 1) Fonctionnement du programme initial (seulement la voix d implémenter) Le programme récupérer, dans son état, ne nous permettait pas d implémenter d autre fonctionnalité pour la simple raison que l on ne pouvait exécuter aucun en parallèle a l audio (les classes qui gèrent le transport RTP n était pas des threads ). Le programme fonctionné comme suit : REGISTER : Dès le lancement, l application s enregistre auprès d un registar (Domain dans les réglages du compte). Si ce dernier exige une authentification de type WWW, le message SIP sera renvoyé avec un nouveau champ dans lequel aura été générée un message haché grâce à MD5 (message généré grâce au mot de passe et une clé envoyée dans le message d erreur du 1er REGISTER). 4

INVITE : Ce message peut être reçu ou envoyé par l application, lorsqu il est envoyé il permet d appeler un utilisateur grâce à son URI SIP. Lorsqu il est reçu, c est qu un utilisateur essaye de nous joindre. Le message INVITE contient un message SDP qui est chargé de décrire notamment l IP et le port utilisé pour la réception RTP ainsi qu une liste de codecs (audio et vidéo) présente dans l application. ACK : Cette requête est reçue après l envoi de la réponse OK à une requête INVITE, elle marque le début de la réception et émission RTP. BYE : Cette requête marque la fin d un appel (donc la réinitialisation de l UAC et l UAS ainsi que la fermeture des flux RTP). CANCEL : Requête permettant d annuler une requête INVITE précédemment envoyée (par exemple lorsque l utilisateur se rend compte qu il appelle le mauvais numéro). OK : Cette réponse peut être envoyée ou reçue après un n importe quelle requête (sauf un ACK). On peut distinguer 2 cas de figures : Soit l utilisateur est l appelant, dans ce cas là le message SDP est contenu dans l INVITE avec la liste des codecs (PCMU, Speex et ilbc) dans l ordre choisi par l utilisateur. Le message OK de l appelé contient alors un SDP avec le codec choisi (parmi ceux proposés) ou un message d erreur s il ne possède aucun codec en commun. Soit l utilisateur est appelé. Dans ce cas il extrait la liste des codecs proposé par l appelant dans le SDP de la requête INVITE puis y répond grâce à un message OK contenant le SDP qui présente le codec choisi. La classe UtilSDP permet d accéder à des méthodes statiques se chargeant de la manipulation des SDP (extraction de la liste des codecs etc. ). 2) Notre Implémentation 2-1 Identification du media Pour réaliser notre implémentation, nous avons utilisé l entête SDP pour diffuser en plus de l adresse IP et du port, des informations sur le media qui concerne l ouverture de la session. Concrètement nous avons procéder comme suit Création d un INVITE pour la video (code se situant dans l UAC) : 5

//Creation du message SDP String sdpdata = "v=0\r\n" + "o=- 2 2" + " IN IP4 "+IP+"\r\n" + "s=mysessionssession\r\n" + "c=in IP4 "+IP+"\r\n" + "t=0 0\r\n" + "m=video " + portlibrevideo + " RTP/AVP 0 110 98\r\n" + "a=nortpproxy:yes\r\n" //+ "a=ptime:20\r\n"; + "a=sendrecv\r\n"; byte[] contents = sdpdata.getbytes(); //Ajout du SDP au HEADER de l invite request.setcontent(contents, contenttypeheader); Le terme «m» désigne le media, portlibrevideo désigne le port libre qui sera utilisé pour recevoir la video et IP, l ip de la machine qui émet l invite. A la réception (UAS), il suffit de récupérer le message SDP contenu dans le HEADER, d extraire le media M, le port ainsi que l IP : //Routine permettant de récupérer le champ m du message SDP String Test = UtilSDP.getMedia((SIPMessage)response); //On test si le media et video if(test.equals("video")){ //On récupère le champ IP du SDP String IPrtp = UtilSDP.getIP((SIPMessage) response); //On récupère le port du SDP String PortVideortp = ""+UtilSDP.getPort((SIPMessage) response); //On crée des instances des classes qui permettront la gestion du Protocol RTP en leur passant en paramètre l IP et le port reçu pour l émission et notre adresse et un port libre de notre machine pour la réception Vs = new rtp_send_video (IPrtp, PortVideortp); Vr = new rtp_receive_video (IP, portlibrevideo, 50); Thread One = new Thread (Vs); //On Cree les Thread Thread Two = new Thread (Vr); One.start(); //On démarre les threads Two.start(); A la réception, le récepteur émet à son tour un message «OK» contenant un entête SDP qui décrit l IP et le PORT a utilisé pour réaliser la communication video. Les medias sont décrit comme suit : - Audio : Ouverture d une session audio - Video : Ouverture d une session video - Message : Ouverture d une session messagerie instantanée 6

- Fichier : Ouverture d une session de transfert de fichier 2-2 Ouverture de session Pour l ouverture des sessions, nous avons choisit de permettre l ouverture de n importe quel session indépendamment des autres sessions. Par exemple, si vous voulez démarrer une session video sans la voix, nous avons décidé de rendre ceci possible. De même pour les sessions audio et messagerie instantanée. Exemple sur le programme : Chaque choix de session donne lieu à l affichage d une nouvelle fenêtre ou l on choisit le correspondant pour établir la communication. 7

III - Transmission vidéo La transmission de la vidéo entre 2 entités équipés de notre softphone a était un des axes majeur de notre projet. Nous allons en détaillés le fonctionnement, l utilisation ainsi que les étapes de réalisation. 1) Capture de la webcam Notre première volontés était dans un premier temps de capturé simplement les flux en provenance de la webcam et de les affichés dans une Frame : String str2 = "vfw:microsoft WDM Image Capture(Win32):0"; //Source Format a = new VideoFormat(VideoFormat.RGB); //Format Vector videolist = CaptureDeviceManager.getDeviceList(a); //Ajout du format //Ajout de la source au DeviceManager CaptureDeviceInfo captdeviceinfo = CaptureDeviceManager.getDevice(str2); //Définition du Medialocator(l adresse de la source) MediaLocator medialocator = new MediaLocator( "vfw://0" ); videopanel = new JPanel(); //creation du panel videopanel.setlayout( new BorderLayout() ); try { //Création et démarrage du Player sur le Medialocator this.player = Manager.createRealizedPlayer(medialocator); this.player.start(); Component vis = this.player.getvisualcomponent(); //Configuration et affichage du VideoPanel settitle("capture webcam test "); getcontentpane().setlayout( new BorderLayout() ); setvisible(true); setsize(500,400); addwindowlistener(this); getcontentpane().add( videopanel, BorderLayout.CENTER ); videopanel.add( vis, BorderLayout.CENTER ); videopanel.setvisible(true); } Ce source permet donc de définir une source et de l afficher dans un panel vidéo (VideoPanel). Dans cet exemple nous avons délibérément définis la source ainsi que le Medialocator en dur dans le programme (vfw:microsoft WDM Image Capture(Win32):0";) 8

2) Transmission RTP/RTCP Une fois les flux récupérer et afficher on c est attelé a transmettre les flux video capturés via le réseau en local entre 2 machines via le protocole RTP. Pour se faire nous avons Implémenté 2 classes : - Rtp_send_video - Rtp_receive_video C est classe ont était implémenter comme Thread pour permettre une exécution de ceci en parallèle avec d autre transmission, la voix par exemple. 2-1 Envoi de la vidéo L envoi de la video se fait au moyen de la classe rtp_send_video. Nous n allons pas ici détaillés chaque ligne du programme mais plutôt décrièrent par étape le fonctionnement suivie de quelque ligne importante du source : 2-1-1 Création du processor (Méthode CreateProcessor()) Le processor va permettre de capturer les flux et de les mettre à disposition dans un Datasource : //choix de la source (Source 0 : Webcam) MediaLocator locator = new MediaLocator( "vfw://0" ); //Ajout de la source au manager ds = javax.media.manager.createdatasource(locator); //Création du processor sur la source processor = javax.media.manager.createprocessor(ds); //Création d une Datasource contenant les flux de la Webcam DataSource dataoutput = processor.getdataoutput(); Processor est une méthode de la classe javax.media.manager. 2-1-2 Envoi des flux sur le reseau (Méthode createtransmitter()) Une fois la DataSource définis et disponible il faut créer une instance de RTPManager, définir l ip et le port du correspondant et enfin démarrer l envoi : //Création d une instance de RTPManager rtpmgr = RTPManager.newInstance(); 9

//Définition des adresses local et du destinataire localaddr = new SessionAddress(192.168.0.1,5001); destaddr = new SessionAddress(192.168.0.5,5001); //Initialisation du RTPManager sur l adresse local (L adresse d envoi) rtpmgr.initialize(localaddr); //Ajout de l adresse du destinataire comme cible rtpmgr.addtarget(destaddr); //Demarage de l envoi des flux sendstream = rtpmgr.createsendstream(dataoutput,0); sendstream.start(); L élément central ici et le RTPManager, c est lui qui va gérer entièrement la transmission des flux selon le protocole RTP. 2-2 Réception de la video C est la classe rtp_receive_video qui va s occuper de récupérer les flux et de les afficher dans une frame. Rtp_receive_video implémente ReceiveStreamListener pour permettre de déclencher le mécanisme de récupération dés la réception des flux évitant ainsi l emploi de boucle d attente consommatrice de ressource inutilement. La réception se fait en 2 grandes étapes : - Création d une instance de RTPManager pour la gestion des flux RTP - A la réception, création d un DataSource et démarrage du Player puis affichage dans une Frame 2-2-1 Création instance de RTPManager (méthode Initialize()) //Création instance RTPManager et définition du format rtpmgr = (RTPManager) RTPManager.newInstance(); Format a = new VideoFormat(VideoFormat.JPEG_RTP); rtpmgr.addformat(a); //Ecoute de l ouverture de sessions et des flux de réception rtpmgr.addsessionlistener(this); rtpmgr.addreceivestreamlistener(this); //Définition des adresses local et destinataire localaddr = new SessionAddress(192.168.0.5,5001); destaddr = new SessionAddress(192.168.0.1,5001); //Initialisation du RTPManager sur l adresse local (L adresse d envoi) rtpmgr.initialize(localaddr); 10

//Ajout de l adresse destinataire comme cible rtpmgr.addtarget(destaddr); Une fois le RTPManager configuré, on attend qu un flux soit reçu pour démarré le mécanisme de réception. 2-2-2 Réception et affichage du flux (méthode update(receivestreamevent evt) //Reception du flux ReceiveStream stream = evt.getreceivestream(); //Définition du nouveau flux en Datasource stream = ((NewReceiveStreamEvent) evt).getreceivestream(); DataSource ds = stream.getdatasource(); //Création du Player sur la DataSource Player p = javax.media.manager.createrealizedplayer(ds); //Affichage du Player dans une frame p.realize(); PlayerWindow pw = new PlayerWindow(p, stream); playerwindows.addelement(pw); La classe «PlayerWindow» et similaire a celle qui nous avait permit de capturer et d afficher la Webcam au tout début. Elle permet de créer une frame et d afficher la source qui lui est passé en paramètre 11

3) Schéma de compréhension Réception vidéo Runnable ReceiveStreamListener SessionListener Implémente Initialize() Appel Implémente Reception video (rtp_receive _video) Implémenté Appel Update() Crée VideoPanel Emission vidéo Runnable Implémente Emission video (rtp_send _video) Appel CreatePocessor() Appel createtransmitter( ) 12

IV - Transfert de fichier L application permet également d échanger des fichiers entre les utilisateurs, on utilise pour cela le protocole TCP. L un des deux utilisateurs qui veulent échanger les fichiers doit jouer le rôle de serveur et l autre le client. L utilisateur serveur crée SocketServer et l autre se connecte à celui-ci.. Il est possible, aussi bien pour le destinateur que pour l'envoyeur, de créer ce SocketServer. Une connexion directe est alors établie entre le destinataire et l'envoyeur. Ceci implique bien évidemment la communication de l'adresse IP de celui qui recevra la connexion. Pour cela on fait appel au protocole SIP pour la récupération des adresses IP comme expliqué dans la partie transmission vidéo. Cette application n'est compatible que sous Windows du fait de l'utilisation d'une librairie externe pour mettre l'application dans la systray. Il est impossible de quitter l'application tant qu'un transfert est en cours. V - Messagerie instantanée L implémentation de la technologie de messagerie instantanée, ou chat, nous permet l échange quasiment en temps réel de messages textuels entre différents utilisateurs de notre application et qui se trouvent dans un même réseau informatique (typiquement l Internet), cette technologie est basé sur l architecture client/serveur, programmée en langage JAVA, en utilisant les sockets. Donc pour chaque communication entre deux clients il va avoir un socket indépendant. 13

Fonctionnement Ce modèle utilisé correspond à des applications légères qui peuvent toutes deux (client 1 et client 2) jouer le rôle du serveur, ou du client. Chaque application s est indépendante. Le fonctionnement de la messagerie se déroule en mode TCP/IP. À chaque instant l utilisateur qui initialise la connexion joue le rôle du serveur, donc l utilisateur destiné sera le client par défaut. On peut avoir un utilisateur qui joue les deux rôles au même temps, c est le cas où ce dernier invite un utilisateur, au même temps il est invité par un autre. Une fois le serveur est lancé, ce dernier reste en écoute en attendant une demande de connexion seconnecterauserveur() de la part d un utilisateur qui va jouer ultérieurement le rôle du client. Apres l établissement de la connexion «acceptation du client en créant un processus qui va s occupé de ce dernier», l utilisateur qui joue le rôle du serveur reste en écoute, on attendant d autre demande. L échange de flux et traitement de la connexion => envoyerdonnees (String message) c est une fonction qui permet d échanger les messages entre les utilisateurs, elle utilise la méthode writeobject de la classe ObjectOutputStream qui permet d envoyer l objet dans un flux de sortie crée par la méthode getoutputstream(). => Pour récupérer le message, la méthode readobject() de la classe ObjectInputStream nous permet de lire l objet de flux d entrée crée par la méthode getinputstream(). 14

VI Fonctionnement et test de l application 1) Fonctionnement Le logiciel permet d ouvrir 4 types de session : Session audio Session video Session message Session transfert de fichier (intégration dans le logiciel pas encore effectué) Pour ouvrir une session l utilisateur doit avoir un compte SIP. Ensuite il peut enregistrer les paramètres de son compte dans l onglet Edition-> Preference : Pour avoir un compte SIP, on peut s inscrire sur le site sipphone.com par exemple. Evidement, l utilisateur doit être obligatoirement connecté à internet pour utiliser le logiciel. Pour communiquer avec un utilisateur, ouvrir le type de session souhaité, et choisir l utilisateur avec qui on veut communiquer. Le logiciel sonne chez l autre utilisateur, celui-ci doit répondre et enfin les deux utilisateurs peuvent communiquer. 15

2) Tests Plusieurs tests ont été effectués sur le logiciel, les éventuels bugs ont été corrigés également. L application a été testée dans un réseau local, et aussi sur internet (de l université d Avignon, à la maison et à l IUP). Voici un imprime écran d un teste qui été effectué : Utilisateur 1 Utilisateur 2 VII Améliorations possibles Si un groupe venait à reprendre notre projet, voici quelque amélioration et piste de réflexion pour améliorer ce soft : - Intégration du transfert de fichier : Le soft est déjà préparé a accueillir le transfert de fichier. En effet, il suffit de créer les sources pour le transfert en thread et de pouvoir y passer l adresse IP et le port en paramètre a l image des autres threads (video, audio ) - Rendre possible le clonage de la source pour permettre par exemple un envoi du flux video vers plusieurs client assurant ainsi la visioconférence. - Implémenter la partie DTMF permettant la mise œuvre d une communication vers un poste fixe. - Ajouter une fonction permettant de choisir le périphérique audio et video, les codecs audio et video, choisir la résolution de l image etc. tous ceci via l interface du programme. - Rendre le programme plus stable : Le décrochage parfois ne se réalise pas ce qui laisse la sonnerie tourner en boucle Il faudrait remédier a ça. 16

Permettre au soft de gérer les exceptions due a des problèmes de périphérique : Par exemple si il n ya pas de périphérique audio, le soft doit être capable d afficher un message d erreur au lieu de «planté» VIII Organisation des taches 1) Répartition des tâches 2) Diagrammes de Gantt 17

IX - Difficultés rencontrées Nous avons évalué nos contraintes envers ce projet: Premièrement, le manque de temps de tous les membres de l équipe après l'interruption des cours durant presque deux mois à cause du blocage de l IUP. Pour y remédier, nous nous sommes organisés davantage afin de nous rencontrer plus souvent pendant les week-ends et ainsi se diviser les tâches, ce qui rend le travail beaucoup plus facile et intéressant. Nous avons eu des réunions ou nos visions n était pas les mêmes, mais nous avons réussi à finalement à s entendre et à tous travailler ensemble pour le même but. Il est pas toujours évident de reprendre un travail qui a été déjà commencer : on avait la charge d'ajouter des fonctionnalité à l'ancienne version du logiciel sipphone doté juste de l'outil conversation téléphonique,bien précisément d'y ajouter la conversation vidéo,du coup on avait du mal à ouvrir deux session (audio,vidéo) simultanément et après plusieurs modifications du code «protocole SIP» et teste, on est arrivé à mettre en marche les deux sessions simultanément. Conclusion En conclusion, notre équipe de projet vous remercie de nous avoir fait confiance en acceptant de nous attribuer ce projet et de lire ce document. Nous espérons que les différents points évoqués au cours des précédentes parties ont de manière exhaustive à vos attentes. 18