République Algérienne Démocratique et Populaire Ministère de l’Enseignement Sup

République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université des Sciences et de la Technologie Houari Boumediene Faculté d’Electronique et d’Informatique Département Informatique Mémoire de Licence Filière : Informatique Spécialité : GTR Thème Conception et Réalisation d’une Application Web Basée sur WebRTC à Travers un Serveur TURN Sujet Proposé par : M (e) BENMERAR TARIK ZAKARIA Soutenu le : .../.../ Présenté par : Devant le jury composé de : OUZANE RIADH SALEM SALAH M……………. Président (e) M……………… Membre Binôme n° : 212 / 2021 Remerciements Nous tenons tout d’abord à remercier Dieu le tout puissant de nous avoir permis d’investir dans notre travail avec autant de conviction, et de foi profonde. Tous nos reconnaissances et remerciements à notre promoteur Mr Tarik Zakaria benmerar de nous avoir pris sous son aile, dirigé, assisté et sa disponibilité et surtout ses judicieux conseils et aide durant ce travail. Nous tenons aussi à remercier toutes les personnes qui ont contribué au succès de notre mémoire et qui nous ont aidées lors de la rédaction de ce mémoire. Nos vifs remerciements vont également aux membres du jury pur l’intérêt qu’ils ont porté à notre recherche en acceptant d’examiner et de juger notre travail et de l’enrichir par leurs remarques. Enfin, nous tenons à remercier nos parents, pour leurs soutiens constants et leurs encouragements. Merci à toutes et à tous Résumé Dans ce mémoire, nous proposons la mise en œuvre d’une application de vidéoconférence pair à pair avec WebRTC et les serveurs WAMP, STUN et TURN. Routeur WAMP est chargé de recevoir et diffuser tous les messages des pairs avant l’établissement d’une communication pair à pair. STUN et TURN fournirons un service permettant de recueillir des informations publiques des pairs et créerons un canal de communication stable entre les deux clients. L'utilisation de ces outils a été un succès, et elle a prouvé que notre application fonctionne bien dans la pratique. Des implémentations futures possibles sont également présenté afin d'ajouter encore plus de valeur à notre application. Abstract In this brief, we propose the implementation of a peer-to-peer videoconferencing application with WebRTC and the WAMP, STUN and TURN servers. WAMP Router is responsible for receiving and broadcasting all messages from peers before establishing a peer-to-peer communication. STUN and TURN will provide a service to collect public information from peers and create a stable communication channel between the two clients. The use of these tools has been successful, and it has proven that our app works well in practice. Possible future implementations are also presented in order to add even more value to our application. Sommaire INTRDUCTION GÊNÊRALE .................................................................................................. 1 CHAPITRE 1 : ETAT DE L’ART ............................................................................................. 2 1.1 Introduction ................................................................................................................. 2 1.2 Présentation du WebRTC ............................................................................................ 2 1.3 Structure du WebRTC ................................................................................................. 2 1.3.1 Les APIs WebRTC ............................................................................................... 3 1.3.2 Les protocoles WebRTC ...................................................................................... 4 1.4 Méthodes de connexion ............................................................................................... 4 1.5 Signalisation ................................................................................................................ 4 1.5.1 L‘initialisation de la communication ................................................................... 4 1.5.2 Serveur de signalisation (WAMP) ....................................................................... 5 1.5.3 Les informations échangées lors de la signalisation ............................................ 6 1.6 Les serveurs ICE (STUN / TURN) .............................................................................. 7 1.6.1 Problématique de la complexité des réseaux ....................................................... 7 Conclusion .............................................................................................................................. 8 CHAPITRE 2 : Analyse et Conception ...................................................................................... 9 2.1 Introduction ................................................................................................................. 9 2.2 Unified Modeling Langage .......................................................................................... 9 2.2.1 Définition ............................................................................................................. 9 2.2.2 Choix d’UML comme outil de modélisation ....................................................... 9 2.3 Architecture du Système .............................................................................................. 9 2.4 Diagramme de cas d’utilisation ................................................................................. 10 2.4.1 Identification des acteurs ................................................................................... 10 2.4.2 Diagramme de cas d’utilisation global............................................................... 11 2.5 Diagramme de séquence ............................................................................................ 11 2.5.1 Inscription d’un utilisateur ................................................................................. 11 2.5.2 Authentification d’un utilisateur ........................................................................ 13 2.5.3 Diagramme de séquence de signalisation avec routeur WAMP ........................ 14 2.5.4 Diagramme de séquence entier .......................................................................... 15 2.6 Base de données ......................................................................................................... 18 2.6.1 Description de la table principale....................................................................... 18 Chapitre3 : Réalisation ............................................................................................................. 19 3.1 Introduction ............................................................................................................... 19 3.2 Environnement de travail ........................................................................................... 19 3.2.1 Environnement matériel ..................................................................................... 19 3.2.2 Environnement logiciel ...................................................................................... 19 3.2.3 Langages d’implémentation ............................................................................... 21 3.3 Interfaces de l’application.......................................................................................... 22 3.3.1 Interface d’inscription ........................................................................................ 22 3.3.2 Interface d’authentification des utilisateurs ....................................................... 23 3.3.3 Interface de de lancement d’appel ...................................................................... 23 3.3.4 Interface de profil de l'utilisateur ....................................................................... 25 Conclusion Générale ................................................................................................................ 26 Bibliographie ............................................................................................................................ 27 Liste des Figures Figure 1.1 : la pile de protocoles WebRTC dans le plan media ................................................. 2 Figure 1.2 : Schéma illustrant les APIs WebRTC [3] ................................................................ 3 Figure 1.3 : processus de signalisation [5] ................................................................................. 5 Figure 1.4 : utilisation de protocole STUN [STUN] .................................................................. 7 Figure 1.5 : utilisation de protocole TURN [TURN] ................................................................. 8 Figure 2.1 : Architecture générale de notre système ................................................................ 10 Figure 2.2 : Diagramme de cas d’utilisation global ................................................................. 11 Figure 2.3 : diagramme de séquence d’inscription .................................................................. 12 Figure 2.4 : diagramme de séquence d’authentification........................................................... 13 Figure 3.1 : Capture de l'interface de crossbar ......................................................................... 20 Figure 3.2 : Captures de l'interface d'inscription de l'application web et les messages d'erreurs ......... 23 Figure 3.3 : Captures de l'interface de connexion de l'application web et les messages d'erreurs ........ 23 Figure 3.4 : Captures de l'interface de lancement d'appel de l'application web ................................... 24 Figure 3.5 : Captures de l'interface de profil de l'utilisateur de l'application web ................................ 25 Liste des Tableaux Tableau 1.1 : Les champs SDP obligatoire et optionnelle ......................................................... 6 Tableau 2.1 : Schéma de la table principale de la base de données de notre système ............. 18 Tableau 2.2 : Description de la table principale ....................................................................... 18 Tableau 3.1 : Description de la table principale ...................................................................... 19 Liste des abréviations WebRTC: Web Real Time Communication P2P : Pair à Pair API: Application Programming Interface STUN: Simple Traversal of UDP Through NATs NAT: Network Address translation ICE: Interactive Connectivity Establishment TURN: Traversal Using Relays Around NAT OSI: Open Systems Interconnection UDP: User Datagram Protocol TCP: Transmission Control Protocol IP: Internet Protocol SRTP : Secure Real-Time Communication DTLS : Datagram Transport Layer Security W3C: World Wide Web Consortium IETF: Internet Engineering Task Force SDP : Session Description Protocol WAMP: Web Application Messaging Protocol RPC: Remote Procedure Call PUB/SUB: publish/Subscribe RFC: Request for Comments VOIP: Voice Over Internet Protocol 1 INTRDUCTION GENERALE Dans ce mémoire nous nous intéressons plus particulièrement à la construction d’une application permettant la communication audio et vidéo en temps réel entre deux personnes. Cette application permet la vidéoconférence qui est un outil indispensable dans plusieurs domaines, en particulier dans la formation et le travail à distance. En ce moment, cet outil est devenu de plus en plus important avec la conjoncture sanitaire causé par le covid-19. Les applications permettant les vidéo-conférences sont largement facilitées par l’utilisation du protocole WebRTC. C’est le diminutif de Web Real-Time-Communication qui est globalement un ensemble de standards permettant de mettre en place une communication instantanée directement accessible depuis le navigateur et depuis le WEB d’une façon plus générale en évacuant la nécessité d’une installation préalable. Avant l’avenue du WebRTC pour mettre en place une communication par vidéo conférence, il fallait installer sur son ordinateur ou son téléphone mobile des outils tiers souvent payant. Ce qui n’est pas très pratique. Bien que la communication de base WebRTC utilise le mode Peer-to-Peer, l’étape initiale d’établissement de cette communication requiert de la coordination. Cette coordination est fournie par un canal de signalisation. La signalisation n'est pas spécifiée par la norme WebRTC et n'est pas implémentée par ses API afin de permettre une flexibilité dans les technologies et les protocoles utilisés. La signalisation et le serveur bidirectionnel qui la gère sont laissés au développeur de l'application WebRTC. Le WebRTC n’aura aucun problème lorsque la connexion s’établit au sein d’un même réseau (réseau local). Des soucis peuvent se poser lorsqu’un pair souhaite atteindre un autre pair en dehors du réseau. Ceci s’explique par le fait qu’il devra percer plusieurs couches telles qu’un proxy un pare-feu ou encore un NAT. Afin de répondre à ces problèmes, nous proposons l’implémentation d’un serveur de signalisation pour l’initialisation de la connexion. Et Pour contourner les problèmes liées la communication entre deux pairs via internet nous utiliserons la technique ICE basée sur les serveurs TURN et STUN. Notre mémoire est organisé comme suit : Le premier chapitre présente une Étude de la technologie WebRTC et des solutions qui permettent la communication entre les Navigateurs web. Le deuxième chapitre est consacré pour la conception de notre système. Le troisième chapitre représente la mise en œuvre concrète de notre système, pour finir par une conclusion. 2 CHAPITRE 1 : ETAT DE L’ART 1.1 Introduction Ce chapitre permet de donner une vision générale sur le projet. Commençant par l’étude De protocole WebRTC puis le mécanisme de signalisation, Et enfin les problèmes liés à la complexité du réseau et les solutions pour remédier à ça. 1.2 Présentation du WebRTC Le « WebRTC » est un projet open-source composé d’un ensemble d’interfaces de programmation (API) permettant aux usagers d’utiliser leur navigateur comme application pour la communication en temps réel sans plugins [1]. C’est le premier standard élaboré pour normaliser les communications en uploads/Ingenierie_Lourd/ memoire-fin-etude-salem-ouzane.pdf

  • 38
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager