Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Voice over IP : Réalisation d’un IPBX et mise en place des services associés Auteurs : BOURIGAN Olivier NGUYEN Jeanne SYLVESTRE Arnaud Département D.S.T. Chef de projet : M. Joël COUTURIER -1- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Remerciements Département D.S.T. -2- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Sommaire I. Objectifs du projet ...................................................................................................................... - 6 1. Identification des besoins........................................................................................................ - 6 - 2. Cahier des charges................................................................................................................... - 6 1) Objectifs du projet ............................................................................................................... - 6 - 2) Architecture générale du réseau de notre projet ............................................................... - 6 - 3) Services associés à l’IPBX à implémenter ............................................................................ - 7 - 3. Etude de l’IPBX ........................................................................................................................ - 8 - 4. Mise en œuvre du projet......................................................................................................... - 8 - 5. Présentation d’Asterisk : l’IPBX soft ........................................................................................ - 8 1) Présentation ........................................................................................................................ - 8 - 2) Fonctionnalités .................................................................................................................. - 10 - 3) Licence ............................................................................................................................... - 10 - II. Architecture d’un réseau VoIP.................................................................................................. - 13 - III. Protocoles utilisés ..................................................................................................................... - 15 1. Notion de protocole .............................................................................................................. - 15 - 2. Le modèle OSI ........................................................................................................................ - 15 1) La couche physique ........................................................................................................... - 15 - 2) La couche liaison de données ............................................................................................ - 16 - 3) La couche réseau ............................................................................................................... - 16 - 4) La couche transport ........................................................................................................... - 16 - 5) La couche session .............................................................................................................. - 16 - 6) La couche présentation ..................................................................................................... - 16 - 7) La couche application ........................................................................................................ - 16 - Département D.S.T. -3- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 3. Protocole SIP ......................................................................................................................... - 17 1) Définition : SIP (Session Initiation Protocole) .................................................................... - 17 - 2) Les différentes fonctionnalités associées au protocole SIP .............................................. - 17 - 3) Architecture du protocole SIP ........................................................................................... - 17 - 4) Ouverture d’une session ................................................................................................... - 18 - 5) Format des messages SIP .................................................................................................. - 18 - 6) Avantages du protocole SIP ............................................................................................... - 18 - 7) Sécurité et authentification............................................................................................... - 19 - 8) Fonctionnalités du protocole SIP....................................................................................... - 19 - 9) L’architecture en couches de SIP dans le modèle OSI ....................................................... - 20 - 10) IV. Vision schématique du protocole SIP dans l’architecture d’un réseau ......................... - 21 - Codecs utilisés .......................................................................................................................... - 22 1. Score MOS ............................................................................................................................. - 24 Tableau 1 : Echelle d’évaluation de la qualité de voix ............................................................. - 25 Tableau 2 : Score MOS des codecs ........................................................................................... - 25 - 2. V. Conclusion ............................................................................................................................. - 26 Qualité de service et problèmes liés à la VoIP.......................................................................... - 27 - 1. La latence, délai ou temps de réponse.................................................................................. - 27 - 2. La perte de paquets (packet loss).......................................................................................... - 27 - 3. La gigue (jitter) ...................................................................................................................... - 27 - 4. Phénomène d’écho ............................................................................................................... - 28 - Annexe A : définitions des acronymes utilisés .................................................................................. - 29 - Département D.S.T. -4- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Introduction Département D.S.T. -5- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 I. OBJECTIFS DU PROJET Nous avons comme projet de réaliser un IPBX et d’implémenter les services associés à celui-ci. 1. IDENTIFICATION DES BESOINS 2. CAHIER DES CHARGES 1) OBJECTIFS DU PROJET L’objectif de notre projet est la réalisation un IPBX et de mettre en place ses services associés. En effet, l’IPBX sera matérialisé par un ordinateur sur lequel on aura installé et configuré le logiciel Asterisk. Ce logiciel joue le rôle de passerelle avec le réseau RTC et permet aussi la téléconférence, la messagerie vocale, les transferts d’appel, etc… Dans notre cas, nous ne l’utilisons pas comme une passerelle entre le réseau IP et le réseau RTC car les téléphones que nous utilisons dans notre réseau sont des téléphones numériques (IP phone de type Thomson ST2030). Il faudra alors configurer le logiciel et les IP phone correctement, selon le protocole SIP (utilisé par les IP phone et implémenté par Asterisk), pour pouvoir mettre en place le réseau de communication. 2) ARCHITECTURE GENERALE DU RESEAU DE NOTRE PROJET PC + logiciel Asterisk (IPBX) Hub de raccordement Câble Ethernet RJ45 IP phone ST2030 Thomson Département D.S.T. IP phone ST2030 Thomson -6- IP phone ST2030 Thomson Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Le réseau que nous allons créer sera constitué de ces éléments: nous avons à notre disposition un ordinateur avec le logiciel Asterisk installé dessus, donc qui va nous servir d’IPBX un hub de raccordement, qui relira l’ordinateur aux IP phone de 3 IP phone Thomson ST2030 des câbles Ethernet RJ45 optionnellement selon l’avancée du projet : PDA phone, webcam, etc… 3) SERVICES ASSOCIES A L ’IPBX A IMPLEMENTER Grâce à l’IPBX, nous devons être en mesure d’établir une communication entre les 3 IP phone incluant les différents services téléphoniques suivants : transfert d’appel renvoi d’appel identification de l’appelant messagerie vocale téléconférence et bien d’autres encore … De plus, si nous arrivons à avancer rapidement, nous essaierons d’implémenter en plus un softphone. Cela veut dire que depuis l’ordinateur, nous pourrons appeler un des IP phone ou tous en même temps. L’ordinateur jouera alors le rôle d’un terminal téléphonique. Enfin, la cerise sur le gâteau serait de pouvoir unifier tous les messages reçus. C'est-à-dire de recevoir dans un même endroit (à configurer si l’on veut que cela arrive sur notre boîte mail sur un ordinateur de bureau, sur un téléphone portable, ou sur un PDA phone) tous les messages, qu’ils soient vocaux ou non (sms, mail, fax, message sur le répondeur, etc…). Département D.S.T. -7- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 3. ETUDE DE L’IPBX Un IPBX est un autocommutateur : comme un commutateur téléphonique classique qui permet une communication entre 2 terminaux utilisant le protocole Internet pour faire transiter des informations (vocales, audio, visuelles, etc …). En ce qui concerne la voix, l’IPBX ne passe pas alors par le RTC (Réseau Téléphonique Commuté) mais par l’IP (Internet Protocole). En effet, la voix est numérisée (par paquets) et est envoyée sur le réseau. Pour cela, il faut donc des téléphones IP, qui puissent capter un signal numérique et le transformer en signal analogique pour que l’oreille humaine puisse l’entendre. On peut alors communiquer de téléphone à ordinateur, d’ordinateur à d’ordinateur, etc… Tout équipement utilisant le protocole Internet peut être connecté et peut servir de terminal de communication (Palm, ordinateur portable, téléphone cellulaire, etc …). L’autre fonction principale de l’IPBX est de router les appels : lorsqu’on lui demande d’établir une communication, l’IPBX s’occuper de vérifier les messages de signalisation pour savoir sur quel poste diriger l’appel (généralement dans des entreprises) et ensuite pouvoir l’acheminer correctement. L’IPBX reçoit alors 2 types d’information, soit un message de signalisation pour établir une communication, soit la communication elle-même. Outre les services de téléphonie standard, l’IPBX en propose d’autres comme : Unification des messages (mail, sms, fax, etc…) sur un même terminal Voicemail : on reçoit par mail les messages laissés sur notre répondeur Identification des appelants, donc de leur numéro Transfert d’appel (vers l’ordinateur par exemple) Blocage des appels des utilisateurs Mise en attente (musicale) Etc … 4. MISE EN ŒUVRE DU PROJET 5. PRESENTATION D ’ASTERISK : L’IPBX SOFT 1) PRESENTATION Asterisk est un logiciel libre, multi plateforme permettant à un micro ordinateur de type PC de se comporter comme un PABX IP. Il est publié sous GPL (General Public Licence). Il permet alors à l’ordinateur d'offrir toutes les fonctionnalités des PABX propriétaires coûteux, comme les renvois d’appel, la messagerie vocale, les téléconférences, etc… Département D.S.T. -8- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Asterisk a été développé par Mark Spencer de la société Digium, qui se rémunère par la vente de cartes PC pour la création de PCPBX utilisant Asterisk. La licence sous laquelle Asterisk est fourni a permis à de nombreux acteurs de s'impliquer, eux aussi, dans le développement du logiciel, et il a ainsi rapidement acquis de nombreuses fonctionnalités. Il supporte les protocoles H323, SIP et IAX (Inter-Asterisk eXchange, son propre protocole qui permet de connecter un client et le serveur Asterisk, ou plusieurs serveurs Asterisk entre eux). Asterisk est, à l'origine, développé pour tourner sur une plateforme Linux avec processeur Intel IA32 (de l'Intel i386 jusqu'aux derniers Pentiums et compatibles). Cependant il est conçu pour être très portable, et il est connu comme fonctionnant aussi sur les plateformes: FreeBSD, OpenBSD, NetBSD Mac OS X Solaris Microsoft Windows Plus généralement, tous les systèmes d'exploitation de type Unix ou dérivés peuvent accueillir Asterisk moyennant un portage simple. La société Digium développe, en plus d'Asterisk, un module (nommé zaptel) permettant au noyau linux de reconnaître toutes les fonctionnalités du matériel qu'ils produisent. Asterisk est ainsi certifié comme fonctionnant avec les cartes Digium, qui offrent une solution peu onéreuse de passerelle VoIP / RTPC. Les développeurs ou les sociétés souhaitant étendre les fonctionnalités d'Asterisk peuvent le faire grâce à un système de plugins permettant le contrôle d'Asterisk par des programmes écrits en langage C, Perl ou Python par exemple. Département D.S.T. -9- Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 2) FONCTIONNALITES Ce système de plugins offre des possibilités d'extensions quasiment infinies. Cependant Asterisk couplé au plugin « Asterisk Management Portal » offre les fonctionnalités suivantes: Passerelle SIP et/ou H323 permettant aux clients de s'authentifier Passerelle VoIP / RTPC ou VoIP / Numéris si le PC est équipé d'une carte Digium adaptée Messagerie vocale avec possibilité d'envoi par mail des messages aux utilisateurs Gestion des files d'attente d'appels pour chaque utilisateur Centralisation de l'état de chaque téléphone, permettant d'avoir en un seul affichage l'état de tous les clients VoIP du réseau Organisation de conférences téléphoniques entre utilisateurs Transfert d'appel conditionnel ou inconditionnel Services d’identification des appelants 3) LICENCE La licence GPL utilisée par le noyau Linux et des milliers d'autres programmes est axée autour des « 4 libertés »: la liberté d'exécuter le logiciel, pour n'importe quel usage la liberté d'étudier le fonctionnement d'un programme et de l'adapter à vos besoins la liberté de redistribuer des copies la liberté d'améliorer le programme et de rendre publiques vos modifications afin que l'ensemble de la communauté en bénéficie Dès lors, n'importe quelle personne ou société ayant les compétences nécessaires est libre d'adapter Asterisk à son besoin, puis de vendre ou redistribuer gratuitement le produit modifié, et ce à la seule condition que les sources accompagnent leur nouvelle version. Il ne faut cependant pas confondre un code disponible sous licence GPL et un code dans le domaine public : le copyright du code appartient toujours à Mark Spencer et à Digium. Seul un droit de regard et modification est accordé à l'utilisateur. Il lui est en revanche interdit de s'approprier le code et de nier sa provenance. Département D.S.T. - 10 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 A STERISK : PARTICULARITE MODULAIRE Asterisk est composé d’un noyau central de commutation, de quatre API (Application Programming Interface ou interface de programmation) de chargement modulaire des applications téléphoniques, des interfaces matérielles, de traitement des formats de fichier, et des codecs. Il assure la commutation transparente entre toutes les interfaces supportées, permettant à cette commutation de relier entre elle une diversité de systèmes téléphoniques en un unique réseau commuté. Principales fonctions d’Asterisk PBX Switching Core Système de commutation de central téléphonique privé, reliant ensemble les appels entre divers utilisateurs et des tâches automatisées. Le noyau de commutation relie d'une manière transparente des appels arrivant sur divers interfaces de matériel et de logiciel. Application Launcher Lance les applications qui assurent des services pour des usagers, tels que la messagerie vocale, la lecture de messages et le listage de répertoires (annuaires). Codec Translator Utilise des modules de codec pour le codage et le décodage de divers formats de compression audio utilisés dans l'industrie de la téléphonie. Un certain nombre de codecs sont disponibles pour palier les divers besoins et pour arriver au meilleur équilibre entre la qualité audio et l'utilisation de la bande passante. Scheduler & I/O Manager Ils traitent la planification des tâches de bas niveau et la gestion du système pour une performance optimale dans toutes les conditions de charge. L ES QUATRE INTERFACES DE PROGRAMMATION D ’A STERISK Asterisk Application API Elle autorise différents modules de tâches à être lancé pour exécuter diverses fonctions. Communication, audioconférence, pagination, liste d'annuaire, messagerie vocale, transmission de données intégrée, et n'importe quelle autre tâche qu'un système PBX standard exécute actuellement ou exécuterait dans l'avenir, sont mises en oeuvre par ces modules distincts. Asterisk Translator API Charge les modules de codec pour supporter divers formats de codage et de décodage audio tels que le GSM, la Mu-Law, l'A-Law, et même le MP3. Département D.S.T. - 11 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Asterisk Channel API Cette API gère le type de raccordement sur lequel arrive un appelant, que ce soit une connexion VoIP, un RNIS, un PRI, une signalisation de bit dérobé, ou une autre technologie. Des modules dynamiques sont chargés pour gérer les détails de la couche basse de ces connexions. Asterisk File Format API Elle permet la lecture et l'écriture de divers formats de fichiers pour le stockage de données dans le file system. Sa particularité modulaire permet à Asterisk d’intégrer de façon continue le matériel de commutation téléphonique actuellement mise en oeuvre, et les technologies de « voix par paquet » en constante augmentation, émergeant aujourd'hui. La capacité de charger des modules de codec permet à Asterisk d’être compatible avec le codec extrêmement compact nécessaire à la Voix sur IP sur des connexions lentes, comme un modem téléphonique tout en maintenant une haute qualité audio sur des types de connexion moins "étroites". Département D.S.T. - 12 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 II. ARCHITECTURE D’UN RESEAU VOIP Depuis une dizaine d’années, les entreprises et les opérateurs adoptent de plus en plus les standards de l’internet pour leurs réseaux informatiques de données, dont le protocole de communication (l’IP). C’est pourquoi une voix (signal audio analogique) est numérisée par un codage via des codecs, donc celle-ci devient des données, qui vont pouvoir ensuite être envoyées par paquets sur le réseau internet (IP) : ce processus est appelé VoIP (Voice over Internet Protocol).La transformation des fréquences vocales en une suite de 0 et de 1 doit, en principe épargner des ressources dans le réseau et, en groupant les appels de même direction dans des canaux utilisant l’IP (sur Internet ou sur canaux réservés en dehors d’Internet), la mise en paquets devrait être efficace et économique. Cette méthode est donc très intéressante pour les entreprises car elles peuvent fusionner le réseau téléphonique avec le réseau IP déjà existant, ce qui n’engendre aucun frais supplémentaire dans l’infrastructure. De plus, la transmission des paquets pourrait atteindre des débits très importants. Pour assurer toutes les connexions, tout appel en VoIP (filaire ou radio) doit pouvoir atteindre un abonné quelconque (VoIP ou non), de type filaire ou radio. Département D.S.T. - 13 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Voici un schéma topologique d’un réseau de téléphonie sur IP. Il est toujours composé de terminaux (ici, ce sont des téléphones IP), d’un serveur de communication et de passerelle vers les autres réseaux. Le premier exemple illustré est l’appel intra-site (à l’intérieur d’un même réseau IP). L’appel (depuis un IP phone) passe par l’IPBX, qui joue le rôle d’un routeur, puis est dirigé vers le poste du numéro appelé. Le second exemple est un appel depuis un téléphone IP vers un autre du réseau IP. L’appel passe par l’IPBX du réseau puis par le réseau Internet. Ensuite, il va sur l’IPBX du réseau IP demandé et enfin sur le poste du numéro appelé. Le dernier exemple est l’appel depuis le téléphone IP vers un téléphone classique du RTPC. Il passe par l’IPBX du réseau d’origine, par le réseau Internet puis par la passerelle (interface entre le réseau IP et le réseau commuté), ce qui nous amène dans le réseau de téléphone classique. Enfin, il arrive au poste du numéro demandé. La passerelle (GateWay) sert de lien entre le réseau IP et le réseau commuté de téléphonie classique (RTPC). En effet, la passerelle convertit les signaux analogiques en signaux numériques (paquets IP) pour pouvoir transmettre les infos dans un sens ou dans l’autre (IP vers RTPC). L’IPBX (Internet Private Branch eXchange) a pour rôle de serveur de communication car il utilise ses protocoles (généralement H323, SIP ou MGCP) pour gérer les passerelles, il fait en sorte que les appels arrivent bien à destination. C’est le GateKeeper de la passerelle, sa partie logicielle. Département D.S.T. - 14 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 III. PROTOCOLES UTILISES 1. NOTION DE PROTOCOLE Pour faire communiquer deux systèmes différents, il faut que ceux-ci puissent se comprendre pour pouvoir échanger leurs données et comprendre celles reçues par l’autre système. En effet, il faut établir une norme, appelée protocole que tous les utilisateurs vont suivre pour une bonne compréhension par tous: Etablissement des règles de communication Format des données à transmettre Initialement, deux machines différentes communiquaient sur une même couche d’abstraction, mais par extension de langage, le mot protocole aujourd’hui désigne les règles de communication entre deux couches sur une même machine. 2. LE MODELE OSI Ainsi, le modèle en couches OSI a été créé pour pouvoir se retrouver dans les différents protocoles existant et de pouvoir en changer, c’est la hiérarchisation. 1) LA COUCHE PHYSIQUE Elle s’occupe de la bonne transmission des bits sur un canal de communication et des caractéristiques physiques du réseau (types de câble, connecteurs, …). L’unité d’information est le bit. Département D.S.T. - 15 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 2) LA COUCHE LIAISON DE DONNEES Elle a un rôle de « liant » car elle va transformer les données de la couche physique en liaison pour la couche réseau. Son rôle est la détection et la correction d’erreurs qui sont survenues sur la couche physique. L’unité d’information de cette couche est la trame. 3) LA COUCHE RESEAU Cette couche gère le sous-réseau, l’interconnexion des réseaux et le routage des paquets de données. Elle traite aussi de l’adressage, du contrôle de flux et de l’optimisation des flux d’un réseau à un autre. L’unité d’information de cette couche est le paquet. 4) LA COUCHE TRANSPORT Cette couche gère le bon acheminement des messages complets au destinataire en établissant des règles de transmission (protocole). En effet, elle prend les messages de la couche session pour les découper en parties (paquets) plus petites si besoin et les envoie dans le réseau. Cela en s’assurant que ceux-ci parviennent de l’autre côté. Puis elle réassemble les parties du message à la réception de celles-ci. C’est une des couches les plus importantes car elle s’occupe aussi de l’optimisation des ressources du réseau, du relâchement des connexions sur le réseau, du contrôle des flux et surtout fournit le service de base à l’utilisateur (processus de connexion avec les contraintes qui lui sont liées). L’unité d’information est le message. 5) LA COUCHE SESSION Elle organise et synchronise les échanges entre tâches distantes. Elle établit les sessions entre les nœuds du réseau. Elle insère des points de reprise dans le flot de données de manière à pouvoir reprendre le dialogue après une panne. 6) LA COUCHE PRESENTATION Cette couche s’occupe de la représentation des informations donc la syntaxe et la sémantique des données transmises. Elle peut coder l’information de départ, les compresser et les crypter. 7) LA COUCHE APPLICATION C’est le point de contact entre l’utilisateur et le réseau. Département D.S.T. - 16 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 3. PROTOCOLE SIP 1) DEFINITION : SIP (SESSION INITIATION PROTOCOLE) Ce protocole appartient à la couche application du modèle OSI. Son rôle est d’ouvrir, de modifier et de libérer les sessions. Ces sessions permettent de réaliser de l’audio ou vidéoconférence de la VOIP ou encore de la diffusion multimédia sur IP (e-commerce …). Un utilisateur peut se connecter avec les utilisateurs d’une session déjà ouverte. Afin d’ouvrir une session, l’utilisateur émet une invitation. Cette invitation transporte un descripteur de session qui permet aux utilisateurs de s’accorder sur la compatibilité de leur média. L’avantage de SIP réside dans le fait qu’il est indépendant du protocole de transport. SIP est un protocole de type requête / réponse très proche du protocoles http (protocole sur lequel est basé le web et les emails). Par conséquent, SIP peut aisément être supporté par des applications Web. C’est pourquoi la téléphonie peut devenir une nouvelle application web et s’intégrer à d’autres services du net. SIP est un outil formidable pour faire converger de la voix et des données au sein d’un même réseau. 2) LES DIFFERENTES FONCTIONNALITES ASSOCIEES AU PROTOCOLE SIP SIP localise le terminal appelé et analyse le profil et les ressources du destinataire. Ce protocole gère également les négociations de type média (voix, vidéo, données…), ainsi que les paramètres de communication. Il détermine si le poste appelé souhaite communiquer, et, le cas échéant autorise l’appelant à le contacter, ce qui permet une optimisation de la communication entre les différents utilisateurs du réseau utilisant le protocole SIP. Evidement SIP avertit les parties appelant et appelées de la demande d’ouverture de session, gestion du transfert et de la fermeture des appels. 3) ARCHITECTURE DU PROTOCOLE SIP SIP est un protocole fonctionnant en mode point à point et /ou en mode diffusif. SIP permet donc l’ouverture de sessions en mode : point-à-point : communication entre 2 machines, on parle d’unicast. Ex : téléphonie sur IP diffusif : plusieurs utilisateurs en multicast, via une unité de contrôle M.C.U (Multipoint Control Unit). Ex : visioconférence, forum Département D.S.T. - 17 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 combinatoire : plusieurs utilisateurs pleinement interconnectés en multicast via un réseau à maillage complet de connexions. 4) OUVERTURE D ’UNE SESSION Les différents éléments intervenant dans l’ouverture d’une session : Choix des protocoles les mieux adaptés (RSVP, RTP, RTCP, SAP, SDP). Requête SIP : une fois le client (machine appelante) connecté à un serveur SIP distant, il peut lui adresser une ou plusieurs requêtes SIP et recevoir une ou plusieurs réponses de ce serveur. 5) FORMAT DES MESSAGES SIP Un message SIP peut être à la fois une requête d’un client (terminal appelant) vers un serveur (terminal appelé), ou une réponse d’un serveur vers un client : Ligne de requête (Méthode, Requête URI, version SIP). En tête général, ou de requête, ou d’entité CRLF (permet de spécifier la fin du champ d’en-têtes, et le début du corps du message). Corps du message Requête d’un client vers un serveur. Ligne d’état (version SIP, code d’état, Reason Phrases). En tête général, ou de réponse, ou d’entité CRLF (permet de spécifier la fin du champ d’en-têtes, et le début du corps du message). Corps du message Requête d’un serveur vers un client 6) AVANTAGES DU PROTOCOLE SIP SIP est un protocole plus rapide : la séparation entre ses champs d’en-tête et son corps du message facilite le traitement des messages et diminue leur temps de transition dans le réseau. Département D.S.T. - 18 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 nombre des en-têtes est limité (36 au maximum et en pratique, moins d'une dizaine d'entêtes sont utilisées simultanément), ce qui allège l'écriture et la lecture des requêtes et réponses. SIP est un protocole indépendant de la couche transport : il peut aussi bien s’utiliser avec TCP qu’avec UDP. De plus, il sépare les flux de données de ceux la signalisation : ce qui rend plus souple l'évolution "en direct" d'une communication (arrivée d'un nouveau participant, changement de paramètres…). 7) SECURITE ET AUTHENTIFICATION Les messages SIP peuvent contenir des données confidentielles, en effet le protocole SIP possède 3 mécanismes de cryptage: Cryptage de bout en bout du Corps du message SIP et de certains champs d’en-tête sensibles aux attaques. Cryptage au saut par saut (hop by hop) à fin d’empêcher des pirates de savoir qui appelle qui. Cryptage au saut par saut du champ d’en-tête pour dissimuler la route que la requête a emprunté. De plus, à fin d’empêcher à tout intrus de modifier et retransmettre des requêtes ou réponses SIP, des mécanismes d’intégrité et d’authentification des messages sont mis en place. Et pour des messages SIP transmis de bout en bout, des clés publiques et signatures sont utilisées par SIP et stockées dans des champs d’en-tête. 8) FONCTIONNALITES DU PROTOCOLE SIP Localisation du terminal appelé. Analyse du profil et des ressources du destinataire. Négociation du type de média (voix, vidéo, données…), et des paramètres de communication. Disponibilité de l’appelé : détermine si le poste appelé souhaite communiquer, et autorise l’appelant à le contacter. Etablissement et suivi de l’appel : avertit les parties appelant et appelé de la demande d’ouverture de session, gestion du transfert et de la fermeture des appels. Département D.S.T. - 19 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 9) L’ARCHITECTURE EN COUCHES DE SIP DANS LE MODELE OSI A chacune des couches de l’architecture SIP sont associés des protocoles tels que : RSVP est un protocole utilisé pour réserver les ressources réseaux sur IP avec une excellente qualité de service(QoS) R.T.P.(Real-time Transport Protocol) pour transporter des informations en temps reel avec une excellente qualité de services R.T.C.P.(Real-Time streaming Control Protocol) pour assurer le contrôle de flux des données multimédia S.A.P.(Session Announcement Protocol) pour préciser si les sessions mutimedia ouvertes le sont en multicast S.D.P.(Session Description Protocol) est un protocole de description des sessions multimédia. Département D.S.T. - 20 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 10) VISION SCHEMATIQUE DU PROTOCOLE SIP DANS L’ARCHITECTURE D ’UN RESEAU Département D.S.T. - 21 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 IV. CODECS UTILISES Le transport de la voix sur un réseau IP nécessite au préalable tout ou une partie des étapes suivantes : Numérisation : dans le cas où les signaux téléphoniques à transmettre sont sous forme analogique, ces derniers doivent d'abord être convertis sous forme numérique suivant le format PCM (Pulse Code Modulation) à 64 Kbps. Si l'interface téléphonique est numérique (accès RNIS, par exemple), cette fonction est omise. Compression : le signal numérique PCM à 64 Kbps est compressé selon l'un des formats de codec (compression / décompression) puis inséré dans des paquets IP. La fonction de codec est le plus souvent réalisée par un DSP (Digital Signal Processor) dont le cout est lié à la complexité du codec utilisé. Selon la bande passante à disposition, le signal voix peut également être transporté dans son format originel à 64 Kbps. Décompression : côté réception, les informations reçues sont décompressées. Il est nécessaire pour cela d'utiliser le même codec que pour la compression. Puis les informations sont reconverties dans le format approprié pour le destinataire (analogique, PCM 64Kbps...). On peut représenter ces différentes étapes à l’aide du schéma synoptique suivant: Le terme « CODEC » est construit d'après les mots COmpression et DÉCompression. Il s'agit d'un procédé permettant de compresser et de décompresser un signal, audio ou vidéo, le plus souvent en temps réel. Le procédé peut être sous forme de logiciel ou encore de matériel (hardware). Par extension, c'est le logiciel ou le circuit qui contient cet algorithme. Ces algorithmes de compression de données permettent, en général, de réduire la taille du fichier original par des facteurs allant de 2 à 100 (voire plus pour certaines applications). L’objectif d’un codec est d’obtenir une bonne qualité de voix avec un débit et un délai de compression les plus faibles possibles. Ainsi il détermine à quelle vitesse la voix est échantillonnée et dimensionne le flux de données numériques que va générer la transformation d’un échantillon temporel de voix analogique. Département D.S.T. - 22 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Le synoptique suivant permet de visualiser le rôle joué par les codecs : Les codecs sont répertoriés par leur nom à l’ITU (Union International des Telecoms). Ceux utilisés par la VoIP sont spécifiques par leur algorithme de compression et leur débit binaire de transmission. Pour notre étude nous nous intéresserons uniquement aux codecs de la voix (série G7XX) dont voici une liste non exhaustive : G.711 (approuvé en 1965) Ce codec est le premier à avoir été utilisé dans la VoIP. Même si il existe maintenant des codecs nettement plus intéressants, celui ci continue d’être implémenté dans les équipements a des fins de compatibilité entre marques d’équipements différentes. Le principe utilisé est le codage du signal selon une échelle logarithmique. Pour cela deux lois différentes sont utilisées selon les pays. Aux USA et au Japon, il s’agit de la loi µ alors que dans le reste du Monde, il s’agit de la loi A. Ces deux lois sont quasiment identiques cependant. Il distribue des mots de 8 bits transmis 8000 fois par seconde et nécessite donc une transmission à 64000 bits par seconde. Ce codec, considéré comme non compressé, est le codec de base duquel proviennent tous les autres. Le score MOS qu’il obtient est de 4,2 ce qui en fait un codec de bonne qualité de restitution. La partie du spectre de fréquence au dessus de 4kHz est cependant éliminée. G.722 (approuvé en 1988) A la différence du G.711, ce codec transforme le spectre jusqu’a 7kHz ce qui restitue encore mieux la voix. Les débits que ce codec fournit sont 48,56 ou 64kbit/s. Une des particularités est de pouvoir immédiatement changer de débit. Ceci est fortement appréciable lorsque la qualité du support de transmission se dégrade. G.722.1 Dérivé du codec précédent, celui ci propose des débits encore plus faibles (32 ou 24kbit/s). Il existe même des versions propriétaires de ce codec fournissant un débit de 16kbit/s. Département D.S.T. - 23 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 G.723.1 (approuvé en 1995) C’est le codec par défaut lors des communications à faible débit. Deux modes sont disponibles. Le premier propose un débit de 6,4kbit/s et le deuxième un débit de 5,3kbit/s. Là aussi, le changement de mode peut se faire en pleine communication. Ce codec est un parfait exemple de codec à pertes. Les tonalités DTMF (utilisée par exemple lors d’un appel à un serveur vocal lorsque l’on appuie sur les touches) ne sont pas correctement retransmises et donc non reconnues. Les scores MOS varient entre 3,7 et 3,9. G.726 Ce codec aussi appelé ADPCM (Adaptive Differential Pulse Code Modulation) ne demande pas de licence pour fonctionner et offre une qualité quasi-identique à celui du G.711, utilisé dans les réseaux RTC. Ce codec peu à peu abandonné fait un retour en force grâce à son rapport bande passante/puissance CPU car il ne demande pas beaucoup de calculs au système. G.729 (approuvé en 1995-1996) Ce codec est avec G.723 un des plus utilisés en VoIP. A l’instar de ce dernier, il ne convient pas pour des transmissions autres que la voix et ne retransmet pas correctement les tonalités DTMF. Le score MOS obtenu est 4.0. Les codecs les plus souvent mis en oeuvre dans les solutions VoIP sont G.711, G.729 et G.723.1. Il est aussi important de préciser que dans certains pays, des brevets logiciels existent pour les codecs et de ce fait, il est nécessaire pour se procurer de tels codecs, d’acheter la licence correspondante au propriétaire du brevet sur les codages (notamment sur les codages G.723.1 et G.729). 1. SCORE MOS La méthode MOS est une mesure subjective de la QOS (Quality Of Service) voix par des opérateurs humains. Elle n’a pas pour objet de fournir des données objectives mais d’obtenir une appréciation de la clarté de la voix reçue grâce à une enquête auprès d’un panel d'usagers ou d’opérateurs représentatifs. Cette méthode est définie par la spécification ITU P800 (MOS Mean Opinion Score, pour « note moyenne d’appréciation »). Son application est coûteuse et délicate, mais elle sert souvent de dernier recours lors de problèmes de plainte des utilisateurs du service de téléphonie. Elle s’applique aussi bien à la téléphonie traditionnelle qu’à la ToIP (Telephony over IP). Il convient de préciser que les notes attribuées dépendent de la sensibilité des différents individus mais également de la langue utilisée car en effet un codec utilisé pour compresser une conversation en français n'obtiendra pas la même note pour une conversation en mandarin. On classe la qualité d’écoute suivant les paramètres suivants : Département D.S.T. - 24 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 TABLEAU 1 : ECHELLE D’EVALUATION DE LA QUALITE DE VOIX Qualité de la parole Score Excellente 5 Bonne 4 Correcte 3 Pauvre 2 Insuffisante 1 Une opinion moyenne de la qualité d'écoute (MOS) est donc calculée pour chaque codec. Les résultats obtenus pour les principaux codecs sont résumés dans le tableau ci-dessous : TABLEAU 2 : SCORE MOS DES CODECS Codec VoIP Débit (Kbps) Score MOS G.711 (PCM) 64 4.1 G.726 32 3.85 G.729 8 3.92 G.723.1 6.4 3.9 G.723.1 5.3 3.65 GSM 13 3.5 G.729 x2 3.27 G.729 x3 2.68 G.729 x GSM 3.17 Le tableau précédent peut ainsi être résumé par le comparatif suivant : Département D.S.T. - 25 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 Deux observations principales peuvent être tirées du Tableau 2 : La qualité de la voix obtenue par les codecs G.729 et G.723.1 (à 6.4Kbps) est très proche de celle du service téléphonique actuel, et ce pour des débits entre 8 et 10 fois inférieurs. Ces deux codecs présentent une meilleure qualité que celle des réseaux téléphoniques cellulaires (GSM). Le cumul, dans une même communication, d'opérations de compression/décompression conduit à une rapide dégradation de la qualité. Les solutions mises en oeuvre doivent éviter des configurations en tandem dans lesquelles un IPBX reçoit un appel d'un poste distant à travers une liaison VoIP et le redirige vers une autre liaison semblable. Offrant une qualité de voix très proche, les codecs G.729 et G.723.1 se distinguent essentiellement par la bande passante qu'ils requièrent et par le retard que chacun introduit dans la transmission. Le choix d'un équipement implémentant l'un ou l'autre de ces codecs devra donc être fait selon la situation, en fonction notamment de la bande passante à disposition et du retard cumulé maximum estimé pour chaque liaison (selon les standards de l'UIT, le retard aller ou « one-way delay » devrait être inférieur à 150 ms). 2. CONCLUSION Le choix du codec est un compromis entre la qualité de service souhaitée et la capacité de l’infrastructure IP à délivrer une bande passante et des paramètres de qualité de service qui vont impacter cette qualité. Le paramètre le plus déterminant auquel on s’intéresse est la bande passante que l’on met en regard du nombre de communications simultanées à écouler. De plus, le choix du codec influe également sur le délai d’échantillonnage, c’est-à-dire sur la durée de numérisation de la voix à l’émission puis de conversion en signal voix à la réception. Ce temps varie donc de quelques millisecondes avec le codec G.711 (débit 64 kbps) à plus de 50 ms en G.723 (débit 6,3 ou 5,3 kbps). C’est une des raisons pour laquelle le choix du codec impacte le score MOS d’appréciation de la clarté de la voix, indépendamment des autres caractéristiques de l’infrastructure. Département D.S.T. - 26 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 V. QUALITE DE SERVICE ET PROBLEMES LIES A LA VOIP La QoS (Quality of Service) est l'ensemble des technologies permettant d'assurer la qualité du service réseau, de contrôler la bande passante ou encore d'assigner des priorités aux flux réseau. Plus particulièrement, la QoS désigne l’aptitude à pouvoir garantir un niveau de transmission acceptable dans le réseau. 1. LA LATENCE, DELAI OU TEMPS DE REPONSE Le temps de latence représente la durée de transmission de données entre 2 postes distants : c’est le retard entre l’émission et la réception d’un paquet. Ce temps entre 2 postes distants dans le réseau IP dépend de plusieurs facteurs : Le nombre de serveurs qui les sépare Le délai de propagation Le débit de transmission Le temps de transport de l’information n’est pas le seul facteur de la durée totale de transmission. En effet, il faut aussi prendre en compte le temps de codage et la mise en paquets de l’information, qui ne sont pas négligeables. 2. LA PERTE DE PAQUETS (PACKET LOSS) Les paquets IP peuvent ne pas arriver à destination sous l’effet d’une congestion (condition dans laquelle une augmentation du trafic provoque le ralentissement global de celui-ci). Or, la couche transport ne possède pas de contrôle de flux pour les paquets transportant la voix ni de retransmission des paquets perdus. Ceci provoque alors des ruptures au niveau de la conversation et elle est interrompue par des blancs de durée proportionnelle de la perte subie. Le pourcentage de pertes de paquets peut nous donner une bonne approximation de la qualité de la voix mais d’autres facteurs essentiels interviennent. 3. LA GIGUE (JITTER) La gigue est la variance statistique du délai de transmission, c'est-à-dire la différence entre le moment où les paquets sont censés arriver et celui où ils arrivent. Ce retard peut être du à des encapsulations de paquets, la charge du réseau à cet instant, la variation des chemins empruntés dans le réseau, etc … Pour « lisser » cette différence de temps, c'est-à-dire homogénéiser l’arrivée des paquets, on utilise un buffer de gigue (mémoire tampon). Ce buffer est aussi à l’origine de la dégradation de la qualité de service car en utilisant celui-ci, on engendre un retard (en attendant les paquets qui sont en retard) et une perte de paquets (le buffer autorise un délai maximum pour lequel les paquets doivent arriver sinon ils sont perdus). Département D.S.T. - 27 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 4. PHENOMENE D ’ECHO Il y a un phénomène d’écho lorsqu’il y a un retard dans la transmission des paquets, ce qui provoque des réflexions du signal de la voix de l’interlocuteur L’écho altère considérablement la qualité de la conversation téléphonique. Nous devons faire en sorte d’annuler ces échos. Département D.S.T. - 28 - Année scolaire 07/08 Réalisation d’un IPBX et ajout des services associés Groupe 5B IRT 04 ANNEXE A : DEFINITIONS DES ACRONYMES UTILISES VoIP Voice Over IP IPBX IP Branch private eXchange PABX Private Automatic Branche eXchange Codec Codeur-décodeur IP Internet Protocol RTC Réseau Téléphonique Commuté RTP Realtime Transport Protocol RTPC Réseau Téléphonique privé commuté RTCP Realtime Transport Control Protocol SPIT SPam over Internet Telephony MOS Mean Opinion Score GSM Global System for Mobile Communication MGCP Media Gateway Control Protocol IVR Interactive Voice Response QoS Quality of Service PSTN Public Switch Telephone Network équivalent à notre RTPC IUT-T (ou UTI-T) Sont toutes les normes dans le domaine des télécommunications SIP Session Initial Protocol UDP User Datagram Protocol DHCP Dynamic Host Configuration Protocol Département D.S.T. - 29 - Année scolaire 07/08