H.323 54042 30140875 2008-05-30T11:00:46Z Zil 259135 + définition UIT-T dans l'intro... {{Pile de protocoles}} '''H.323''' regroupe un ensemble de protocoles de communication de la voix, de l'image et de données sur IP. C'est un protocole développé par l'[[Union internationale des télécommunications|UIT-T]] qui le défini comme : {{guil|Systèmes de communication multimédia en mode paquet}} <br>Il est dérivé du protocole [[H.320]] utilisé sur [[Réseau numérique à intégration de services|RNIS]]. ==Protocoles secondaires ou associés== Plus qu'un protocole, H.323 ressemble davantage à une association de plusieurs protocoles différents et qui peuvent être regroupés en trois catégories : la signalisation, la négociation de [[codec]], et le transport de l’information. Les messages de signalisation sont ceux que l’on envoie pour demander d’être mis en relation avec une autre personne, qui indiquent que la ligne est occupée, que le téléphone sonne… Cela comprend aussi les messages que l’on envoie pour signaler que tel téléphone est connecté au réseau et peut être joint de telle manière. En H.323, la signalisation s’appuie sur le protocole [[Registration Admission Status|RAS]] ({{en}}''Registration Admission Status'') pour l’enregistrement et l’authentification, et le protocole [[Q.931]] pour l’initialisation et le contrôle d’appel. La négociation est utilisée pour se mettre d’accord sur la façon de coder les informations qu’on va s’échanger. Il est important que les téléphones (ou systèmes) parlent un langage commun s’ils veulent se comprendre. Il serait aussi préférable, s’ils ont plusieurs alternatives de langages qu’ils utilisent le plus adapté. Il peut s’agir du [[codec]] le moins gourmand en bande passante ou de celui qui offre la meilleur qualité. Le protocole utilisé pour la négociation de codec est le [[H.245]] Le transport de l’information s’appuie sur le protocole [[Real-time transport protocol|RTP]] qui transporte la voix, la vidéo ou les données numérisées par les [[codec]]s. On peut aussi utiliser les messages [[Real-Time Control Protocol|RTCP]] pour faire du contrôle de qualité, voire demander de renégocier les codecs si, par exemple, la bande passante diminue. [[Image:H323_diagram.jpg]] Pour le contrôle et la signalisation : [[H.225]] [[H.245]] [[Q.931]] [[Real-Time Control Protocol|RTCP]] Pour la voix : [[G.711]] [[G.722]] [[G.723]] [[G.726]] [[G.728]] [[G.729]] Pour la vidéo : [[H.261]] [[H.263]] [[H.263+]] [[H.264]] Pour les données : [[T.123]] [[T.124]] [[T.125]] ==Principales applications du protocole H.323== * Certaines Offres de Téléphonie sur IP grand public s'appuient sur H.323 * Les clients ([[NetMeeting]],orange, [[Ekiga]], ex-[[GnomeMeeting]], Ophone, [[iChat]], etc.). * les [[Gatekeeper]], ou gardiens de porte, servant à l'administration des communications et à la translation d'identifiants de connexion ([[ID H323]]). * Les [[Multipoint Control Unit|MCU]], des ponts multipoints. * Les Gateway, des [[Passerelle (informatique)|passerelle]]s [[H.320]] <=> H.323. ==Fonctionnement simplifié== Il existe plusieurs manières d’implémenter une architecture H.323. * De nombreux messages sont optionnels et dans la pratique on peut choisir de ne pas les utiliser tous. Par exemple, si l’authentification n’est pas une préoccupation, on peut se passer des messages RAS. * Il est également possible d’enchaîner les messages de plusieurs manières différentes. On peut par exemple ouvrir les canaux RTP sans attendre le message « connect » qui indique que la personne appelée a bien décroché ([[early h.245]]). * On peut décider que les messages [[H.225]], [[H.245]] et [[Real-time transport protocol|RTP]] passent par des chemins différents : Par exemple la signalisation traversera plusieurs [[Gatekeeper]] qui participent au contrôle et au routage de l’appel alors que le flux RTP passe directement d’un poste à l’autre. === Cas 1 : communication « Point à Point » de deux clients simples === [[Image:h323 0gk.gif]] * L'appelant entre l'adresse IP du destinataire dans le champ du logiciel réservé à cet effet. * Les protocoles de signalisation proposent au logiciel du destinataire d'établir la communication et transmet son [[ID H323]]. * Le logiciel du destinataire répond soit « occupé » soit « libre ». * Si « libre », l'appelant énumère ses possibilités de [[codec]]s audio et vidéo (si disponibles). * le destinataire énumère les codecs compatibles à l'appelant pour accord. * Si accord, d'autres ports [[Transmission Control Protocol|TCP]] et [[User datagram protocol|UDP]] sont négociés pour l'audio (UDP), la vidéo (UDP) et les données (TCP). [[Image:h323 q931.gif]] * Chaque flux est ensuite transmis indépendamment des autres. * À la fermeture d'une session, les ports sont libérés et les transmissions de contrôle stoppées. === Cas 2 : communication « Point à Point » entre deux clients enregistrés auprès d'un [[Gatekeeper]] === Le [[Gatekeeper]] intervient sur la signalisation. [[Image:h323 1gk.gif]] * À l'ouverture du logiciel, les clients A et B s'enregistrent auprès du Gatekeeper en lui transmettant leur [[ID H323]] et leur adresse IP respective. * Le client A entre l'ID de connexion du client B dans le champ du logiciel réservé à cet effet. * Le logiciel du client A demande l'autorisation au Gatekeeper pour se connecter au client B. * Si le Gatekeeper accepte, celui-ci demande au client B son état (déjà en conversation ou non). * Si état compatible, le Gatekeeper transmet l'adresse IP du client B au client A. * Le Gatekeeper informe le client B qu'une communication va avoir lieu avec le client A. * Le client A entre directement en négociation avec le client B avec les protocoles de contrôle de communication. * Le client A énumère ses possibilités de [[codec]]s audio et vidéo (si disponibles). * L'appelé énumère les codecs compatibles à l'appelant pour accord. * Si accord, d'autres ports [[Transmission Control Protocol|TCP]] et [[User datagram protocol|UDP]] sont négociés pour l'audio (UDP), la vidéo (UDP) et les données (TCP). * Tous les flux sont ensuite transmis indépendamment les uns des autres sans passer par le Gatekeeper mais directement entre les clients. * À la fermeture d'une session, le Gatekeeper est informé de la fin de connexion, les ports sont libérés et les transmissions de contrôle stoppées. === Cas 3 : communication « Multipoints » entre plusieurs clients ([[Multipoint Control Unit|MCU]] nécessaire) === Les [[Multipoint Control Unit|MCU]] ont des capacités de traitements du signal (diffusion, enregistrement, mixage, …) ils sont utilisés pour : * permettre la conférence en mixant les flux audios * diffuser des messages réseau comme la tonalité, le bip de mise en attente * voir réaliser des fonctions élémentaires de messagerie vocale [[Image:h323 mcu.gif]] * Le MCU s'annonce auprès du Gatekeeper et lui énonce ses possibilités : ** Nombre de clients possibles. ** Débits (en octets/secondes) possible par client ou débit total maximal. ** [[ID H323]] de connexion. Les communications seront ensuite traitées comme au cas 2, le MCU devenant alors un « simple client » au vu des appelants ; la différence se trouvant simplement dans le nombre de communications acceptées avant transmission du message « occupé ». Les principaux ports utilisés par le protocole H.323 sont 1720 TCP et suivants, les autres sont négociés dynamiquement. Notes : Le protocole H.323 ne suit pas les recommandations ISO sur les séparations de couches du modèle réseau. On trouve des données sur les couches [[Protocole Internet|IP]] dans la couche « Application » du modèle. D'autre part, le protocole a tendance à ouvrir des « ports » à la volée pour la communication, ce qui fait que le passage d'un [[pare-feu]] (''firewall'') où le [[Network address translation|NAT]] est souvent problématique. Néanmoins il existe aujourd'hui des solutions applicatives ([[Network address translation|NAT]] ALG) qui permettent de contrecarrer la présence de données [[Adresse IP|IP]] (souvent privées) dans la partie application du modèle. On trouve pourtant de plus en plus d'équipements réseau sachant gérer les protocoles associés à H.323 , notamment à cause de la téléphonie sur IP ([[Voice over IP|VoIP]]). === Cas 4 : 3 gatekeeper === Dans cet exemple chaque terminal est rattaché à un [[gatekeeper]] de proximité. Tous les [[gatekeeper]] de proximité sont rattachés à un [[gatekeeper]] qui a une connaissance générale du réseau et qui réalise le routage. [[Image:h323 3gk.gif]] On a choisi de faire passer le flux h.245 par les [[gatekeeper]] de proximité et le flux RTP par l’un des [[gatekeeper]] de proximité. === Cas 5 : autres === Dans un cas réel, il est probable que l’architecture comprenne les éléments suivants : * Une ou plusieurs passerelles vers le [[Réseau téléphonique commuté|RTC]] ou vers d’autres réseaux de ToIP. * Des serveurs de messageries vocales ([[Multipoint Control Unit|MCU]] avec capacité d’enregistrement) * Des serveurs ([[Multipoint Control Unit|MCU]]) capable de diffuser des messages réseau (signaux d’occupation, de mise en attente, …) ==Note générale :== Le protocole H323, bien qu'implémenté dans nombre de logiciels commerciaux et dans la plupart des solutions de visio-conférence "tout en un", passe pour un "mauvais protocole". Ceci est en fait dû à la liberté qu'ont pris les fabricants dans l'implémentation des différentes normes du protocole. Ce qui fait qu'un protocole qui se devait d'être interopérable ne l'est plus vraiment. Au point qu'il est relativement difficile de faire fonctionner deux solutions propriétaires différentes entre elles. Pour les Firewall, H323 pose de véritable problèmes car c'est un protocole qui demande l'ouverture d'un panel de ports TCP et UDP de manière dynamique et quelque peu "aléatoire", incompatible avec la logique des règles "strictes" imposées par la sécurité d'un site ou d'un intranet exposé à Internet. Les Firewall modernes le font très bien, mais au prix d'une complexification qui aurait été évité si le protocole avait été mieux pensé dès son origine. Et plus une chose est complexe, plus elle a de chance d'être buguée ou d'avoir des trous de sécurité. Le protocole [[Session Initiation Protocol|SIP]] reprend les meilleurs aspects de H323 pour la [[VoIP]], et devient de plus en plus une norme dans les échanges entre PABX. Remplaçant de fait le vieux protocole H323, mais ne résolvant pas totalement certains problèmes liés au NAT et au Firewall. ==Voir aussi== *[[Ekiga]] *[[iChat]] *[[Gatekeeper]] *[[Session Initiation Protocol|SIP]] *[[Streaming]] *[[Codec]] *[[voix sur réseau IP|VoIP]]. *[[Jingle (Jabber)|Jingle]] ([[Jabber]]/[[XMPP]]) *[[Visioconférence]] *[[Asterisk (logiciel)|Asterisk]] : Implémentation de H.323 et d'autres protocoles VoIP dans un PABX libre. *[[Protocole réseau passant difficilement les pare-feu]] ==Liens externes== * [http://www.itu.int/rec/T-REC-H.323/f H.323] * [http://www.h323plus.org H.323 Plus project] * [http://www.voxgratia.org/ VoxGratia (Contient les sources récentes de OpenH323)] * [http://www.gnugk.org OpenH323 Gatekeeper] * [http://www.en.voipforo.com/H323/H323_objetives.php H.323 Protocol Overview] * [http://www.asterisk.org Gatekeeper H323, MCU et PABX [[open sources]] {{Portail informatique}} [[Catégorie:Protocole de voix sur réseau IP]] [[Catégorie:Recommandation de l'UIT-T]] [[bg:H.323]] [[ca:H.323]] [[cs:H.323]] [[de:H.323]] [[en:H.323]] [[es:H.323]] [[fi:H.323]] [[it:H.323]] [[ja:H.323]] [[ml:എച്ച്. 323]] [[nl:H.323]] [[pl:H.323]] [[pt:H.323]] [[ru:H.323]] [[sv:H.323]] [[zh:H.323]]