Projet Asterisk - Visualisation d'un interlocuteur en Voix sur IP

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Projet Asterisk - Visualisation d'un interlocuteur en Voix sur IP - Presentation Transcript

    1. Visualisation d’un interlocuteur en voix sur IP
      Conception et résultats
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web
    2. Voix sur IP ≃ téléphonie par Internet.
      Qualité vocale inférieure à une communication téléphonique classique.
      Problème lorsque plusieurs interlocuteurs conversent en conférence audio.
      Comment reconnaitre qui parle ?
      La problématique
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web
      2
    3. La voix sur IP
      Généralités
      Protocoles utilisés
      Asterisk
      Présentation
      Softphone
      La fonction de conférence
      Notre solution
      Cahier des charges
      Le serveur
      Le client
      Distinction entre voix et bruit
      Détection des paquets RTP contenant de la voix
      Bilan technique
      Conclusion
      Plan
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      3
    4. VoIP= Voice Over IP
      Communication par la voix via Internet ou un réseau acceptant le protocole TCP/IP.
      Nécessite des temps de latence très courts.
      Compression de la voix.
      Qualité vocale dépendante de la qualité du réseau.
      La voix sur IP - Généralités
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      4
    5. SIP = Session Initiation Protocol
      Protocole standard ouvert de gestion de sessions.
      Utilisé dans les télécommunications multimédia.
      Le plus courant en VoIP.
      D’autres applications
      Visiophonie, messagerie instantanée, jeux vidéo…
      Protocole indépendant de la couche de transport.
      Séparation entre entête et corps du message
      Facilité de traitement.
      Diminution du temps de transit sur le réseau.
      La voix sur IP - Protocoles utilisés
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      5
    6. Exemple d’un message SIP
      La voix sur IP - Protocoles utilisés
      INVITE sip:6001@192.168.1.84 SIP/2.0
      Via: SIP/2.0/UDP 192.168.1.9:63786;branch=z9hG4bK-d8754z-4f1e29450871d670-1---d8754z-;rport
      Max-Forwards: 70
      Contact: <sip:6001@192.168.1.9:63786>
      To: "6002"<sip:6002@asterisk>;tag=as5e997774
      From: "willouuuuuu"<sip:6001@asterisk>;tag=de17bd05
      Call-ID: NDJiMWViYzk0NzExNGVmOTEzZjZmYzM4Zjc2MGJmNTA.
      CSeq: 2 INVITE
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
      Content-Type: application/sdp
      User-Agent: X-Lite release 1100l stamp 47546
      Content-Length: 179
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      6
    7. RTP = Real Time Protocol
      Protocole de communication.
      Utilise UDP.
      Utilisé dans les applications qui doivent être au plus proche du temps réel.
      Ne garantie pas la fiabilité des échanges ni la continuité d’un flux temps réel.
      La voix sur IP - Protocoles utilisés
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      7
    8. Asterisk - Présentation
      IPBX open source
      Créé en 1999 par Mark Spencer
      Fondateur de la société Digium.
      • Publiée sous licence GPL.
      • Permet à un ordinateur d'opérer en tant que commutateur téléphonique privé (PBX).
      • Téléphonie au sein d’un réseau privé.
      Fonctions intégrées
      La messagerie vocale, les conférences, les files d'attente, les musiques d'attente, etc…
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      8
    9. Exemple d’utilisation du PBX Asterisk
      Asterisk - Présentation
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      9
    10. Les softphonesSIP / VoIP
      Téléphone SIP sur logiciel.
      Emprunte les haut-parleurs et microphones d’un ordinateur pour émettre ou recevoir des appels.
      Asterisk – Softphone
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      10
    11. Asterisk – La fonction Conférence
      Conférence audio entre plusieurs participants.
      Notion de salle de conférence.
      On rejoint une salle en composant un numéro spécifique.
      Notre application a pour but de savoir qui parle dans ces salles de conférence.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      11
    12. Notre solution – Cahier des charges
      Développer une application permettant d'identifier les personnes présentes lors d'une conférence audio sur Asterisk et d'afficher les personnes qui sont en train de parler.
      Application de type client/serveur.
      Ecrit en langage Java et utilisation de Jpcap.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      12
    13. IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le serveur
      13
    14. Le serveur - Généralités
      85% des fonctionnalités de l’application.
      Lancé sur le serveur où est installé le PBX.
      Modèle Vue Contrôleur
      Un thread pour la capture des paquets.
      Un thread pour le dialogue avec les programmes clients.
      Mode graphique ou non.
      Possibilité de lancer l’application avec des arguments (Interface d’écoute, numéro de salle de conférence, affichage graphique.)
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      14
    15. Le serveur - Analyse
      Diagramme de classe UML
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      15
    16. Liste des numéros de salles de conférence.
      Liste des programmes clients.
      Réception des paquets RTP ou messages SIP du thread Capture :
      Paquet RTP identifié comme bruit ou voix.
      Action selon type de message SIP.
      Se charge d’avertir les clients selon ce qu’il a reçu.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le serveur – Le modèle
      16
    17. Le serveur – Capture des paquets
      Thread écoute sur l’interface choisie.
      Capture de tous les paquets UDP.
      Utilisation d’un filtre.
      Si port = 5060
      -> Message SIP.
      Selon RFC 3261.
      Sinon peut être un paquet RTP.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      17
    18. Données parsées pour récupérer les informations :
      Type de message : Invite, Ack, Bye…
      IP/Port destinataire et émetteur.
      Nom du participant.
      Création d’un objet SipMessage traité dans le modèle de l’application.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le serveur – Traitement SIP
      18
    19. Tentative de création d’un objet RtpPacket.
      Identifie s’il s’agit d’un paquet RTP ou non.
      Distinction entre voix et bruit.
      Envoi au modèle pour traitement.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le serveur – Traitement RTP
      19
    20. Thread transmet des messages en UDP.
      Rapidité d’envoi => plus proche du temps réel.
      Propre protocole de communication basé sur des messages.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web
      Le serveur Communication avec le client
      20
    21. NEW:nom = Un nouveau participant nommé « nom » à rejoint la conférence.
      QUIT:nom = Le participant nommé « nom » a quitté la conférence.
      GIVEYOURNAME: = Le serveur ne peut trouver seul le nom d'un participant, il demande alors au client de lui indiquer.
      YOU:nom = Indique au client que le serveur à bien récupérer le nom du participant.
      ENREGISTRE: = Le client est bien enregistré auprès du serveur.
      EXIT: = Le serveur se termine, il l'indique à ses clients.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web
      Le serveurCommunication avec le client
      21
    22. Connexion d’un client SIP
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le serveurCommunication avec le client
      Serveur nom:Client Autres clients
      sendData(« GIVEYOURNAME: »)
      sendData(«  MYNAME :nom »)
      sendData(« YOU:nom »)
         
      sendData(« NEW:nom »)
       
      22
      • Le serveur détecte une activité vocale
      Serveur Clients
       sendData(« SPEAK :nom »)
      • Le serveur détecte du bruit
      Serveur Clients   
      sendData(« SILENCE :nom »)
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le serveurCommunication avec le client
      23
    23. IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le client
      24
    24. Le client - Généralités
      Exécuté sur l’ordinateur distant d’un participant à une conférence.
      Attention : Ne remplace pas le soft phone.
      Modèle Vue Contrôleur
      Purement graphique.
      Un thread pour la communication avec le serveur.
      Récupère les messages du serveur et agit en fonction.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      25
    25. Le client - Analyse
      Diagramme de classe UML
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      26
    26. CLIENT: = Indique au serveur que le client vient de se connecter.
      EXITCLIENT:nom = Indique que le client « nom » s'est déconnecté.
      MYNAME:nom = Indique au serveur le nom du client.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le clientCommunication avec le serveur
      27
    27. IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Le clientCommunication avec le serveur
      Connexion d’un client au serveur
      ClientServeur
      sendData(« CLIENT : »)
      sendData(« ENREGISTRE : »)
        
       
      28
    28. Le problème :
      RTP envoie un flux continu de paquets.
      Bruit = paquets sans voix.
      Comment différencier le bruit de la voix ?
      Des solutions :
      Voice ActivityDetection.
      Nos recherches.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Distinction entre voix et bruit
      29
    29. Etude des RFC
      RFC (Request For Comments) : définit les standards de l’internet.
      Description de la structure du paquet.
      Nous ont permis de concevoir la classe RtpPacket de l’application.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      30
    30. La VAD (Voice ActivityDetection)
      Utilisé pour détecter la présence de voix dans un signal audio.
      Algorithme utilisé pour analyser le signal audio.
      Présente sur la plupart des IP phones et softphones.
      Réduit la bande passante.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      31
    31. La VAD (Voice ActivityDetection)
      Utilité pour le projet :
      Envoi de paquet RTP seulement lorsqu’il contiennent de la voix.
      MAIS : Fonctionnalité non supportée par Asterisk.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      32
    32. Capture avec Wireshark.
      Identification de similitudes entre paquets.
      Tests avec microphone coupé, actif ou inactif.
      Tests sur les données et tailles des paquets.
      Tests avec plusieurs soft-phones.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      33
    33. La capture de paquets avec Wireshark
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      34
    34. Softphone X-Lite
      Bouton « Mute » du softphone activé :
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      35
    35. Softphone X-Lite
      Microphone inactif :
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      36
    36. Softphone X-Lite
      Microphone actif :
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      37
    37. SoftphoneX-Lite
      Taille du payload : 16O octets.
      Somme des octets du payload :
      Supérieur à 7000 => bruit (micro inactif).
      Egal à -160 => bruit (micro muet).
      Sinon voix (micro actif).
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      38
    38. Exemple avec d’autres softphones
      3-CX en version 1.17
      Si payload[i] = payload[i-1] => bruit.
      Sinon voix.
      3-CX en version 3.0
      Impossible de trouver une cohérence.
      Idefisk
      Paquets OICQ ?!
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      39
    39. Ce que nous avons réussi à faire :
      Distinguer la voix du bruit avec X-Lite et 3-CX 1.17.
      Ce qui ne va pas :
      Pas de solution qui fonctionne avec tous les softphonescar les paquets RTP de bruit ne sont pas standardisés.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Détection des paquets RTP contenant de la voix
      si(taille > 7000 OU taille = -160 OU tous les octets identiques entre eux)
      {
      La trame contient du bruit
      }
      sinon
      {
      La trame contient de la voix
      }
      40
    40. Problème majeur non résolu.
      Aucune solution existante selon nous.
      La différence entre voix et bruit est-elle possible ?
      Peu satisfaits.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      Bilan technique
      41
    41. Conclusion
      Amélioration de nos connaissances.
      Apprendre à rechercher.
      Une solution trouvée mais pas générique.
      Objectif non atteint.
      Projet très intéressant.
      IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER
      Licence professionnelle option Web
      42
    SlideShare Zeitgeist 2009

    + William DURANDWilliam DURAND Nominate

    custom

    287 views, 0 favs, 1 embeds more stats

    Projet Asterisk - Visualisation d'un interlocuteur more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 287
      • 232 on SlideShare
      • 55 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 55 views on http://www.willdurand.fr

    more

    All embeds
    • 55 views on http://www.willdurand.fr

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories