Projet Asterisk - Visualisation d'un interlocuteur en Voix sur IP - Presentation Transcript
Visualisation d’un interlocuteur en voix sur IP Conception et résultats IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web
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
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
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
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
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
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
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
Exemple d’utilisation du PBX Asterisk Asterisk - Présentation IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web 9
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
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
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
IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web Le serveur 13
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
Le serveur - Analyse Diagramme de classe UML IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web 15
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
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
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
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
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
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
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
IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web Le client 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
Le client - Analyse Diagramme de classe UML IUT de Clermont-Ferrand - 2009 DURAND SOUBRIER Licence professionnelle option Web 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Projet Asterisk - Visualisation d'un interlocuteur more
Projet Asterisk - Visualisation d'un interlocuteur en Voix sur IP Projet tuteuré réalisé en licence professionnelle à l'IUT de Clermont-Ferrand. Ce projet a été réalisé en collaboration avec Geoffrey Soubrier et sous la direction de M. Patrice Laurençot. less
0 comments
Post a comment