                    Guide pratique de la voix sur IP (VoIP)

  Version franaise du guide pratique VoIP Howto

  Roberto Arcomano

   <berto CHEZ fatamorgana POINT com>

  Jrme Blondel

   Adaptation franaise <jeromeblondel CHEZ yahoo POINT fr>

  Alain Boul

   Relecture de la version franaise <alain POINT boule CHEZ free POINT fr>

  Jean-Philippe Gurard

   Prparation de la publication de la v.f. <fevrier CHEZ tigreraye POINT
   org>

   Version : 1.7.fr.1.0

   3 mai 2007

   +------------------------------------------------------------------------+
   | Historique des versions                                                |
   |------------------------------------------------------------------------|
   | Version 1.7.fr.1.0          | 2007-05-03         | JB, AB, JPG         |
   |------------------------------------------------------------------------|
   | Premire traduction franaise.                                         |
   |------------------------------------------------------------------------|
   | Version 1.7                 | 2002-08-07         | RA                  |
   |------------------------------------------------------------------------|
   | Version originale.                                                     |
   +------------------------------------------------------------------------+

   Rsum

   Grce  la transmission de la voix sur un rseau IP (abrge  voix sur
   IP ), il est possible, pour un cot quasi nul, d'utiliser Internet pour
   tlphoner. Ce guide pratique explique le fonctionnement de cette
   technique, et prsente les normes et systmes utiliss.

   --------------------------------------------------------------------------

   Table des matires

   1. Introduction

                1.1. Introduction

                1.2. Copyright

                1.3. Nouvelles versions de ce document

                1.4. Traductions

                1.5. Remerciements

   2. Contexte

                2.1. Le pass

                2.2. Hier

                2.3. Aujourd'hui

                2.4. Le futur

   3. Gnralits

                3.1. Qu'est-ce que la VoIP ?

                3.2. Comment cela fonctionne-t-il ?

                3.3. Quel est l'avantage de la VoIP sur le RTCP ?

                3.4. Alors pourquoi tout le monde ne l'utilise pas dj ?

   4. Infos techniques sur la VoIP

                4.1. Description d'une connexion VoIP

                4.2. Conversion Analogique-Numrique

                4.3. Algorithmes de compression

                4.4. RTP : Real Time Transport Protocol

                4.5. RSVP

                4.6. Qualit de Service (QoS, Quality of Service)

                4.7. Protocole de signalisation H323

   5. Prrequis

                5.1. Prrequis matriel

                5.2. Cartes d'acclration matrielle

                5.3. Cartes passerelles matrielles

                5.4. Prrequis logiciels

                5.5. Logiciel de passerelle

                5.6. Logiciel de portier

                5.7. Autres logiciels

   6. Configuration des cartes

                6.1. Quicknet PhoneJack

                6.2. Quicknet LineJack

                6.3. Produits VoiceTronix

   7. Installation

                7.1. Communication simple : IP vers IP

                7.2. Utiliser des noms

                7.3. Appels sur Internet avec un serveur WINS

                7.4. Serveur ILS

                7.5. Un gros problme : le masquerading.

                7.6. Applications Open Source

                7.7. Installer un portier

                7.8. Installer une passerelle

                7.9. Matrice de compatibilit

   8. Communications sur des lignes RTCP

                8.1. Gnralits

                8.2. Scnario

                8.3. Que peut-on changer dans cette configuration ?

   9. Considrations de bande passante

   10. Glossaire

   11. Liens utiles

                11.1. Liens vers des logiciels open source

                11.2. Liens commerciaux

1. Introduction

  1.1. Introduction

   Ce document explique les systmes de VoIP. Des vnements rcents, tels
   que la diffusion sur Internet  faible cot, l'intgration rcente de
   processeurs ddis de compression de voix, ont modifi les exigences des
   utilisateurs ordinaires et ont rendu possible la diffusion des normes
   VoIP. Ce guide pratique essaie de dfinir certains lments de base de
   l'architecture VoIP.

   Merci d'envoyer suggestions et critiques  mon mon adresse lectronique

  1.2. Copyright

   Copyright  2000, 2001 Roberto Arcomano. Ce document est libre   vous
   pouvez le redistribuer et le modifier sous les termes de la licence GNU
   General Public License publie par la Free Software Foundation ; soit la
   version 2 de la Licence ou (selon votre choix) toute version ultrieure.
   Ce document est distribu dans l'espoir qu'il sera utile mais

   SANS AUCUNE GARANTIE ; sans mme les garanties implicites de
   COMMERCIALISATION et de CONFORMIT  UNE UTILISATION PARTICULIRE. Voir la
   GNU General Public License pour plus de dtails. Vous trouverez un
   exemplaire de la GNU GPL ici [http://www.gnu.org/copyleft/gpl.html]

  1.3.  Nouvelles versions de ce document

   La plus rcente version franaise
   [http://www.traduc.org/docs/howto/lecture/VoIP-HOWTO.html] de ce guide
   pratique est disponible sur le site de l'association Traduc.org
   [http://www.traduc.org].

   Le site http://www.bertolinux.com/ [http://www.bertolinux.com/] contient
   la plus rcente version originale de ce document.

  1.4. Traductions

   Si vous voulez traduire ce document vous tes libre, vous devez
   simplement :

    1. Vrifier qu'une autre version n'existe pas dj  votre LDP local.

    2. Conserver toute la partie  Introduction  (y compris
        Introduction ,  Copyright ,  Traductions  et
        Remerciements ).

   Attention ! Vous n'avez pas besoin de traduire les fichiers TXT ou HTML,
   vous devez modifier le fichier LYX, pour qu'il soit possible de le
   convertir dans tous les autres formats (TXT, HTML, RIFF, et ctera) : pour
   cela vous pouvez utiliser l'application  LyX  tlchargeable 
   http://www.lyx.org [http://www.lyx.org].

   Il n'est pas ncessaire de me demander l'autorisation de traduire  !
   Faites-le moi savoir (si vous le souhaitez) lorsque vous aurez fait une
   traduction.

   Merci pour votre traduction !

  1.5. Remerciements

   Merci  Fatamorgana Computers [http://www.fatamorgana.com] pour le
   matriel et les opportunits d'exprimentation.

   Merci au Linux Documentation Project [http://www.linuxdoc.org] pour la
   publication et la mise en ligne trs rapide de mon document.

   Merci  David Price pour son soutien.

2. Contexte

  2.1. Le pass

   Il y a plus de 30 ans, Internet n'existait pas. Les communications
   interactives se faisaient seulement par tlphone au prix de la ligne du
   RTCP (rseau tlphonique commut public).

   Les changes de donnes taient coteux (pour les longues distances) et
   personne n'avait pens  des interactions vido (il n'y avait que la
   tlvision qui n'est pas interactive comme on le sait).

  2.2. Hier

   Il y a quelques annes nous avons vu apparatre des choses intressantes :
   les PC pour le grand public, les nouvelles technologies pour communiquer,
   comme les tlphones cellulaires et enfin le grand rseau : Internet. Les
   gens ont commenc  communiquer  l'aide de nouveaux services comme le
   courrier lectronique, les discussions en ligne (chat), et ctera, et le
   commerce, transform par le web, a permis aux gens de faire des achats
   d'un simple  clic .

  2.3. Aujourd'hui

   Aujourd'hui nous assistons  une vritable rvolution du monde des
   communications : tout le monde commence  utiliser des PC et Internet au
   travail et pendant son temps libre pour communiquer avec les autres, pour
   changer des donnes (images, sons, documents) et, parfois, pour se parler
    l'aide d'applications comme Netmeeting ou Internet Phone. Une nouvelle
   ide, en particulier, commence  se rpandre, qui reprsente peut-tre
   l'avenir, et qui permet l'change de communications vocales en temps
   rel : la voix sur IP (VoIP).

  2.4. Le futur

   Nous ne pouvons pas connatre l'avenir, mais nous pouvons essayer de nous
   le reprsenter avec une multitude d'ordinateurs, l'Internet haut dbit
   presque partout et des gens qui se parlent (en audio et en vido) en temps
   rel. Pour cela, ils nous suffit de connatre les moyens d'y parvenir :
   l'UMTS, la VoIP (avec extension vido) ou peut-tre autre chose . En tout
   cas, nous pouvons remarquer qu'Internet s'est beaucoup dvelopp ces
   dernires annes, qu'il est gratuit (au moins en tant que mdia
   international) et qu'il pourrait bien tre le moyen de communication du
   futur.

3. Gnralits

  3.1. Qu'est-ce que la VoIP ?

   VoIP signifie Voice over Internet Protocol ou Voix sur IP (IP = Protocole
   Internet). Comme son nom l'indique, la VoIP essaie de transmettre des sons
   (en particulier la voix) dans des paquets IP circulant sur Internet. La
   VoIP peut utiliser du matriel d'acclration pour raliser ce but et peut
   aussi tre utilise en environnement de PC.

  3.2. Comment cela fonctionne-t-il ?

   De nombreuses annes en arrire, nous avons dcouvert qu'il tait possible
   de transmettre un signal  une destination loigne sous forme de donnes
   numriques. Avant la transmission, il faut numriser le signal  l'aide
   d'un CAN (convertisseur analogique-numrique). Le signal est ensuite
   transmis, et, pour tre utilisable, doit tre transform  nouveau, par le
   rcepteur, en un signal analogique,  l'aide d'un CNA (convertisseur
   numrique-analogique).

   La VoIP fonctionne ainsi, par numrisation de la voix et transmission dans
   des paquets de donnes, puis par reconversion des paquets numriques en
   voix  l'arrive.

   Le format numrique est plus facile  contrler : on peut le compresser,
   le router, le convertir en un nouveau format meilleur, et ainsi de suite ;
   nous avons galement dcouvert que le signal numrique est plus tolrant
   au bruit que l'analogique (comparer GSM et TACS).

   Les rseaux TCP/IP sont des supports de circulation de paquets IP
   contenant un en-tte (pour contrler la communication) et une charge utile
   pour transporter les donnes : la VoIP s'en sert pour traverser le rseau
   et arriver  destination.

 Voix (source) - - CAN - - - - Internet - - - CNA - - Voix (dest)

  3.3. Quel est l'avantage de la VoIP sur le RTCP ?

   Quand vous utilisez une ligne du RTCP, vous payez gnralement le temps de
   communication  la socit qui gre la ligne tlphonique : plus vous
   passez de temps au tlphone et plus vous payez. De plus, vous ne pouvez
   parler qu' une personne  la fois.

   La VoIP vous permet, au contraire,  tout moment, de parler  la personne
   que vous souhaitez (pourvu qu'elle soit connecte  Internet au mme
   moment), aussi longtemps que vous le souhaitez (sans cot supplmentaire),
   et de plus, vous pouvez parler  plusieurs personnes en mme temps.

   Si vous n'tes pas encore convaincu, considrez qu'il est possible, en
   simultan, d'changer des donnes avec vos interlocuteurs, d'envoyer des
   images, des graphiques et des vidos.

  3.4. Alors pourquoi tout le monde ne l'utilise pas dj ?

   Malheureusement, il faut reconnatre des problmes d'intgration de
   l'architecture VoIP et d'Internet. Comme vous pouvez facilement
   l'imaginer, les communications de donnes vocales ncessitent une
   transmission en temps rel (on n'admettrait pas de parler et d'attendre
   plusieurs secondes qu'arrive la rponse  l'autre bout). Cette contrainte
   entre en contradiction avec l'architecture htrogne d'Internet qui
   comprend de nombreux routeurs (quipement d'aiguillage des paquets), un
   nombre typique est 20-30, voire plus, ce qui donne un temps d'aller-retour
   (RTT, round trip time) trs long. Il est donc ncessaire d'effectuer des
   modifications pour que cela fonctionne.

   Dans les sections ci-dessous nous allons essayer de comprendre comment il
   est possible de rsoudre ce problme majeur. En gnral, nous savons qu'il
   est trs difficile de garantir une bande passante sur Internet pour les
   applications de VoIP.

4. Infos techniques sur la VoIP

   Ci-dessous sont prsents des aspects importants qu'il faut connatre pour
   comprendre le fonctionnement de la VoIP.

  4.1. Description d'une connexion VoIP

   L'tablissement d'une connexion VoIP ncessite :

    1. D'abord le CAN qui permet de convertir la voix analogique en signaux
       numriques (bits).

    2. Les bits doivent tre ensuite compresss en un format adapt  la
       transmission : il existe plusieurs protocoles que nous allons examiner
       ci-dessous.

    3. Il faut ensuite transmettre les donnes numriques vocales dans des
       paquets de donnes  l'aide d'un protocole temps rel (gnralement
       RTP sur UDP sur IP).

    4. Il est ncessaire d'utiliser un protocole de signalisation pour
       appeler les usagers. ITU-T H323 le permet.

    5.  la rception, il faut dsassembler les paquets, extraire les
       donnes, les convertir en signaux analogiques reprsentant la voix,
       puis les transmettre  une carte son (ou  un tlphone).

    6. Tout cela doit tre ralis en temps rel, afin d'viter une attente
       trop longue de la rponse vocale ! (voir la section QoS)

                           Architecture de base
 Voix )) CAN - Algorithme de Compression -  Assembler RTP dans TCP/IP -----
                                                              ---->     |
                                                              <----     |
 Voix (( CNA - Algorithme de Dcompression -  Dsass. RTP de TCP/IP   -----

  4.2. Conversion Analogique-Numrique

   Celle-ci est faite par le matriel, gnralement une carte CAN intgre.

   Aujourd'hui, n'importe quelle carte son vous permet de convertir une bande
   de 22050 Hz en donnes de 16 bits (l'chantillonnage doit tre ralis 
   une frquence de 44100 Hz en raison du principe de Nyquist), cela donne un
   dbit de 2 octets * 44100 chantillons par seconde = 88200 octets/s soit
   176,4 ko/s pour un flux stro.

   La VoIP ne ncessite pas un tel dbit pour la transmission des paquets de
   voix : nous allons examiner ci-dessous les diffrents codages qui seront
   utiliss en pratique.

  4.3. Algorithmes de compression

   Comme nous disposons maintenant de donnes numriques, nous pouvons les
   convertir dans un format standard qui permet une transmission rapide.

 PCM, modulation par impulsion et codage (MIC), norme ITU-T G.711

     * La bande passante de la voix est de 4 kHz, donc la frquence
       d'chantillonnage doit tre de 8 kHz (Nyquist).

     * Nous reprsentons chaque chantillon par 8 bits (ce qui donne 256
       valeurs possibles).

     * Le dbit est de 8000 Hz * 8 bits = 64 kbps, comme une ligne
       tlphonique typique.

     * Dans les applications relles, les variantes  loi mu (Amrique du
       Nord) et  loi a (Europe) sont utilises pour encoder le signal
       analogique sur une chelle logarithmique en utilisant 12 ou 13 bits au
       lieu de 8 (voir la norme ITU-T G.711).

 ADPCM, modulation par impulsion et codage diffrentiel adaptatif (MICDA), norme ITU-T G.726

   Seule la diffrence entre le paquet de voix actuel et le prcdent est
   converti, ce qui ncessite 32 kbps (Norme ITU-T G.726).

 LD-CELP, norme ITU-T G.728
 CS-ACELP, normes ITU-T G.729 et G.729a
 MP-MLQ, norme ITU-T G.723.1, 6.3kbps, Truespeech
 ACELP, norme ITU-T G.723.1, 5.3kbps, Truespeech
 LPC-10, norme capable d'atteindre 2.5 kbps!!

   Ces derniers protocoles sont les plus importants car ils peuvent garantir
   une bande minimale trs basse par un codage  la source. De plus les
   codecs G.723.1 ont une note moyenne d'opinion trs lev (utilise pour
   mesurer la fidlit de la voix), mais attention aux performances
   d'laboration qu'ils ncessitent : jusqu' 26 MIPS !

  4.4. RTP : Real Time Transport Protocol

   Nous disposons maintenant des donnes brutes, il faut les empaqueter en
   donnes de protocole TCP/IP, en respectant le schma suivant :

 paquets de donnes VoIP
      RTP
      UDP
      IP
    couches I, II

   Les paquets de VoIP sont placs dans des paquets RTP (Real Time Transport
   Protocol)  l'intrieur de paquets UDP/IP.

   On remarque, d'abord, que la VoIP n'utilise pas le protocole TCP, trop
   lourd pour les applications en temps rel. On utilise,  la place, les
   datagrammes du protocole UDP.

   Ensuite, UDP ne garantit ni l'ordre d'arrive  destination des paquets,
   ni leur temps de transfert (principe du datagramme). Ces deux proprits
   sont trs importantes pour la qualit gnrale de la voix (la bonne
   comprhension des paroles de l'interlocuteur) et la qualit de la
   conversation (la facilit de son droulement). RTP rsout le problme en
   permettant au destinataire de remettre les paquets dans l'ordre et en
   vitant une attente excessive des paquets gars en chemin ou trop longs 
   parvenir (il n'est pas ncessaire de recevoir chaque paquet, il faut par
   contre disposer d'un flux continu, en nombre suffisant, de paquets dans
   l'ordre).

              Real Time Transport Protocol
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |V=2|P|X|  CC   |M|     PT      |     numro de squence        |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                       empreinte temporelle                    |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   identifiant de la source de synchronization source (SSRC)   |
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 |     identifiants des sources contribuantes (CSRC)             |
 |                             ....                              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   O :

     * V reprsente la version utilise du protocole RTP

     * P indique la prsence d'un octet de bourrage (padding),  la fin du
       paquet, pour obtenir un paquet de longueur paire

     * X indique la prsence d'une extension d'en-tte

     * Le champ CC reprsente le nombre d'identifiants CSRC qui suivent
       l'en-tte fixe. Les champs CSRC servent, notamment, pour les
       confrences.

     * M est un bit marqueur.

     * PT est le type de charge utile (payload type).

   Pour une description complte du protocole RTP et de toutes ses
   applications, voir les RFC 1889 [http://www.ietf.org/rfc/rfc1889.txt]et
   1890 [http://www.ietf.org/rfc/rfc1890.txt].

  4.5. RSVP

   D'autres protocoles sont utiliss en VoIP, comme RSVP, qui peut prendre en
   charge la Qualit de Service (QoS, Quality of Service).

   RSVP est un protocole avec signalisation, qui ncessite une certaine bande
   passante et un dlai  chaque bond rseau le prenant en charge.

   Pour des informations dtailles sur RSVP, voir RFC 2205
   [http://www.ietf.org/rfc/rfc2205.txt?number=2205]

  4.6. Qualit de Service (QoS, Quality of Service)

   Nous avons rpt  plusieurs reprises que les applications de VoIP
   ncessitaient un flux de donnes en temps rel car le but est d'obtenir un
   change vocal interactif.

   Malheureusement, TCP/IP ne permet pas d'atteindre cet d'objectif, il ne
   peut que faire  au mieux . Il va falloir utiliser des astuces et des
   stratgies pour la gestion du flux des paquets dans CHACUN des routeur que
   nous allons traverser.

   On peut ainsi utiliser :

    1. Le champ TOS du protocol IP, qui indique le type de service : une
       valeur leve signifie un degr d'urgence faible, alors que des
       valeurs faibles signifient un degr d'urgence important, compatible
       avec le temps rel.

    2. Mthodes de mise en file d'attente des paquets :

         a. FIFO (First In First Out, Premier Entr Premier Sorti), la
            mthode la plus stupide, qui fait passer les paquets dans leur
            ordre d'arrive.

         b. WFQ (Weighted Fair Queuing, file d'attente quitable pondre)
            consiste en un passage quitable des paquets (ainsi, FTP ne peut
            pas consommer la totalit de la bande passante disponible) entre
            les diffrents flux de donnes, avec, en gnral, un paquet pour
            UDP et un pour TCP, en alternance.

         c. CQ (Custom Queuing, mise en file d'attente personnalise), les
            utilisateurs peuvent dcider de la priorit.

         d. PQ (Priority Queuing, file d'attente avec priorit), il existe
            plusieurs files (en gnral quatre), chacune disposant d'un
            niveau de priorit. Les paquets de la file la plus prioritaire
            sont envoys en premier puis (quand elle est vide), on passe  la
            seconde, et ainsi de suite.

         e. CB-WFQ (Class Based Weighted Fair Queuing - Mise en file
            d'attente par classes, pondre et quitable), semblable  WFQ,
            avec en plus une notion de classes (jusqu' 64)   chaque classe
            est associe une valeur de bande passante.

    3. La capacit de mise en forme du trafic, qui permet de limiter la
       source  une bande passante fixe en :

         a. tlchargement (download)

         b. mise en ligne (upload)

    4. Evitement de congestion (Congestion Avoidance), comme RED (Random
       Early Detection).

   Pour des informations exhaustives sur la QoS, voir Differentiated Services
   [http://www.ietf.org/html.charters/diffserv-charter.html]  l'IETF.

  4.7. Protocole de signalisation H323

   Le protocole H323 est utilis par exemple par Microsoft NetMeeting pour
   faire des appels VoIP.

   Ce protocole permet  plusieurs lments de se parler :

    1. Des terminaux, clients qui initient une connexion VoIP. Bien que les
       terminaux puissent se parler sans l'aide d'un intermdiaire, nous
       avons besoin d'lments additionnels dans la perspective d'une monte
       en charge.

    2. Des portiers, qui ralisent essentiellement :

         a. un service de traduction d'adresses, pour utiliser des noms  la
            place des adresses IP

         b. un contrle des admissions, pour autoriser ou refuser certaines
            machines ou certains usagers

         c. une gestion de la bande passante

    3. Des passerelles, points de rfrence pour la conversion TCP/IP-RTCP.

    4. Des Units de Contrle Multipoint (MCU, Multipoint Control Units),
       pour permettre les confrences.

    5. Des serveurs proxies sont galement utiliss.

   Le protocole H323 concerne non seulement la VoIP mais aussi les
   communications de donnes et de vido.

   En ce qui concerne la VoIP, h323 peut utiliser les codecs audio G.711,
   G.722, G.723, G.728 et G.729 ; pour la vido il prend en charge h261 et
   h263.

   On trouvera des informations complmentaires sur h323 sur les sites Web
   Openh323 Standards [http://www.openh323.org/standards.html] et h323
   [http://www.cs.columbia.edu/~hgs/rtp/h323.html] ainsi que dans le document
   de dfinition de la norme : ITU H-series Recommendations
   [http://www.itu.int/itudoc/itu-t/rec/h/].

   On le trouve implment dans diffrents logiciels comme Microsoft
   Netmeeting [http://www.microsoft.com], Net2Phone
   [http://www.net2phone.com], DialPad [http://www.dialpad.com], ... et aussi
   dans des produits freeware qu'on peut trouver au site web Openh323
   [http://www.openh323.org].

5. Prrequis

  5.1. Prrequis matriel

   Pour crer un petit systme VoIP vous avez besoin du matriel suivant :

    1. PC 386 ou suprieur

    2. Carte son, compatible full duplex (duplex intgral)

    3. une carte rseau, une connexion Internet ou tout autre type
       d'interface permettant la communication entre deux PC

   Chacun de ces lments doit tre prsent en double exemplaire comme pour
   une vritable communication.

   Les lments ci-dessus sont le minimum requis pour une connexion VoIP :
   nous verrons plus loin quel est le matriel qui serait ncessaire (et qui
   l'est pour Internet) pour assurer la mme fonction en situation relle.

   La carte son doit tre full duplex si on veut pouvoir parler et entendre
   en mme temps !

   Il est possible par ailleurs d'utiliser des cartes (voir ci-dessous) qui
   grent un flux de donnes en format compress (voir  4.3).

  5.2. Cartes d'acclration matrielle

   Il est possible d'utiliser des cartes spciales dotes de fonctions
   d'acclration matrielle. Cinq d'entre elles (les seules  tre prises en
   charge actuellement par le noyau Linux) sont les suivantes :

    1. Quicknet PhoneJack

    2. Quicknet LineJack

    3. VoiceTronix V4PCI

    4. VoiceTronix VPB4

    5. VoiceTronix VPB8L

   Quicknet PhoneJack est une carte son qui utilise des algorithmes standards
   pour compresser un flux audio comme G723.1 (section 4.3) jusqu' un dbit
   de 4,1 kbps.

   Elle peut tre directement connecte  un tlphone (prise tlphone
   classique) ou  un couple micro-haut-parleur.

   Elle se connecte  un bus ISA ou PCI.

   La carte Quicknet LineJack fonctionne comme la carte PhoneJack avec des
   caractristiques en plus (voir ci-dessous).

   La carte VoiceTronix V4PCI est une carte PCI comme la carte Quicknet
   LineJack mais avec 4 ports de type tlphone.

   La carte VoiceTronix VPB4 est une carte ISA quivalente  la carte V4PCI.

   La carte VoiceTronix VPB8L est une carte  journalisation  8 ports.

   Pour obtenir des infos supplmentaires, consultez le site web de Quicknet
   [http://www.quicknet.net] et le site web de VoiceTronix
   [http://www.voicetronix.com.au]

  5.3. Cartes passerelles matrielles

   Les cartes Quicknet LineJack et VoiceTronix peuvent tre connectes  une
   ligne RTCP ce qui leur permet de fonctionner comme passerelle VoIP.

   Un logiciel spcifique est ncessaire pour cette utilisation (voir
   ci-dessous).

  5.4. Prrequis logiciels

   On peut choisir l'un de ces systmes d'exploitation :

    1. Win9x

    2. Linux

   Les logiciels pour Win9x sont, en particulier, Microsoft NetMeeting,
   Internet Phone, DialPad, et, pour les cartes Quicknet, Internet
   Switchboard (disponible sur le site web de Quicknet
   [http://www.quicknet.net]).

   Attention !! Les dernires cartes Quicknet utilisant Switchboard (ancienne
   version aussi) DOIVENT tre connectes  Internet pour avoir accs  un
   compte Microtelco (payant), aussi, si vous ne souhaitez pas tre connect
    Internet vous devrez installer les logiciels OpenH323
   [http://www.openh323.org].

   Pour les cartes VoiceTronix, vous trouverez des logiciels au site web de
   VoiceTronix [http://www.voicetronix.com.au]

   Sous Linux, nous avons les logiciels libres GnomeMeeting
   [http://www.gnomemeeting.org], clone de Microsoft Netmeeting, et en mode
   console nous utilisons les applications (galement libres) du site web
   OpenH323 [http://www.openh323.org]: simph323 ou ohphone, qui fonctionnent
   aussi avec le matriel d'acclration de Quicknet.

   Attention : le code source complet d'Openh323 doit tre compil dans un
   rpertoire utilisateur (sinon il est ncessaire de modifier certaines
   variables d'environnement). Notez que le temps de compilation peut tre
   trs long et qu'une quantit importante de RAM est ncessaire si on veut
   le rduire  une dure raisonnable.

  5.5. Logiciel de passerelle

   La fonction de passerelle (qui assure la liaison entre les lignes TCP/IP,
   VoIP et RTCP) ncessite un logiciel, tel que :

     * Internet SwitchBoard [http://www.quicknet.net] (ncessitant une
       connexion  Internet) pour les systmes Windows, qui fonctionne aussi
       comme terminal h323.

     * PSTNGw pour les systmes Linux et Windows,  tlcharger sur OpenH323
       [http://www.openh323.org/code.html].

  5.6. Logiciel de portier

   Vous pouvez choisir comme portier :

    1. Opengatekeeper, tlchargeable au site web d'opengatekeeper
       [http://www.opengatekeeper.sourceforge.net]pour Linux et Win9x.

    2. Openh323 Gatekeeper (GK) ici
       [http://www.willamowius.de/openh323gk.html].

  5.7. Autres logiciels

   En complment, voici un logiciel utile conformes  h323 :

     * Phonepatch, pouvant fonctionner derrire un pare-feu NAT. Il permet
       aux utilisateurs (aussi bien externes qu'internes) d'appeler,
       simplement,  partir une page web. Quand l'application web voit que
       l'hte distant est prt, elle appelle la source, en h323, pour
       l'informer que la communication peut tre tablie. Phonepatch est un
       logiciel propritaire (avec une version de dmo pour des conversations
       de moins de 3 minutes), que vous pouvez tlcharger ici
       [http://www.equival.com/phonepatch].

6. Configuration des cartes

   La configuration du matriel spcifique, en environnement Linux ou
   Windows, est prsente ci-dessous.

  6.1. Quicknet PhoneJack

   Comme nous l'avons dja vu, la carte Quicknet PhoneJack est une carte son
    fonction d'acclration spcifique  la VoIP. Ses caractristiques sont
   les suivantes :

     * G.711 normal et  loi mu/A, G.728-9, G.723.1 (TrueSpeech) et LPC10.

     * Connecteur pour tlphone (permettant d'appeler directement depuis un
       tlphone) ou

     * prises Jacks pour microphone et hauts-parleurs.

   La carte Quicknet PhoneJack est une carte ISA (ou PCI)  installer dans le
   botier du PC. Elle peut fonctionner sans IRQ.

    6.1.1. Installation du logiciel

   Sous Windows vous devez installer :

    1. Le pilote de la carte

    2. L'application Internet Switchboard (ne fonctionne qu'avec Internet,
       avec les nouvelles cartes Quicknet)

   tous tlchargeables sur le site web de Quicknet [http://www.quicknet.net]

   Une fois Switchboard install, il faut s'enregistrer auprs de Quicknet
   pour bnficier des pleines capacits de la carte.

   Lorsque vous dcrochez le tlphone, Internet Switchboard se rveille et
   attend que vous composiez un numro d'appel (directement  partir du
   tlphone). Vous pouvez effectuer l'une des oprations suivantes :

    1. Taper un astrisque, puis un numro IP (des astrisques remplaant les
       points), et un #  la fin

    2. Composer le numro d'appel (avec prfixe international) d'un abonn du
       rseau tlphonique classique. Dans ce cas, il est ncessaire d'tre
       abonn  un gestionnaire de passerelle qui vous facturera le temps de
       communication.

    3. Composer un code d'accs rapide (un ou deux chiffres), que vous aurez
       stock au pralable, pour effectuer un appel de type IP ou RTCP.

   Internet Switchboard est compatible avec h323, il est ainsi possible de
   correspondre, par exemple, avec Microsoft Netmeeting.

   Attention !! Internet Switchboard DOIT tre connect  Internet quand il
   est utilis avec les nouvelles cartes Quicknet.

    la place d'Internet Switchboard, vous pouvez utiliser les applications
   openphone [http://www.openh323.org/code.html](avec interface utilisateur
   graphique) ou ohphone [http://www.openh323.org/code.html](ligne de
   commande) d'openh323.

   Sous Linux vous devez installer :

    1. Le pilote de carte,  partir du site web de Quicknet
       [http://www.quicknet.net]. Une fois tlchargs, vous devrez compiler
       les fichiers sources. (il faut disposer d'un lien symbolique ou
       physique vers le rpertoire des sources de linux /usr/src/linux). Pour
       obtenir la marche  suivre, tapez la commande 'make'.

    2. Une des applications openphone [http://www.openh323.org/code.html] ou
       ohphone [http://www.openh323.org/code.html].

    3. Si vous tes dveloppeur, vous pouvez utiliser le [1]SDK pour crer
       votre propre application (valable aussi pour Windows).

    6.1.2. Configuration

   Avec Internet Switchboard (et les autres applications), vous pouvez :

    1. Changer votre algorithme de compression prfr

    2. Rgler le dlai de gigue (jitter)

    3. Rgler le volume

    4. Rgler le niveau d'annulation d'cho.

  6.2. Quicknet LineJack

   Cette carte ressemble beaucoup  la prcdente, elle prend aussi en charge
   la fonction de passerelle.

   Remarquons simplement qu'il faut tlcharger
   [http://www.quicknet.net/code.html] l'application PSTNGx (pour Linux et
   Windows) ou utiliser Internet Switchboard pour utiliser la fonction de
   passerelle.

  6.3. Produits VoiceTronix

    1. Tlchargez d'abord le logiciel ici
       [http://www.voicetronix.com.au/vpb-driver-2.1.8.tar.gz]

    2. Dcompactez-le

    3. Modifiez 'src/vpbreglinux.cpp' selon le fichier README

    4. Tapez 'make'

    5. Tapez 'make install'

    6. Se placer dans le rpertoire src (cd src)

    7. Tapez 'insmod vpb.o'

    8. Retrouvez ( partir de la console ou  l'aide de la commande 'dmesg')
       le numro majeur, not ci-dessous MAJEUR

    9. tapez 'mknod /dev/vpb0 c MAJEUR 0' o MAJEUR est le numro
       susmentionn

   10. se placer dans le rpertoire unittest (cd unittest) et taper './echo'

   Le fichier README contient des informations plus dtailles

   Je n'ai pas test personnellement les produits VoiceTronix. Contactez le
   site web de VoiceTronix [http://www.voicetronix.com.au]pour tout support.

7. Installation

   Dans ce chapitre, nous allons installer un systme VoIP, d'abord simple,
   puis, de plus en plus complexe.

  7.1. Communication simple : IP vers IP

  A (Carte son) - - - B (Carte son)

    192.168.1.1 - - - 192.168.1.2


  192.168.1.1 appelle 192.168.1.2 et vice-versa.

   A et B devraient avoir

    1. une application comme Microsoft Netmeeting, Internet Switchboard,
       Openh323 (sous environnement Windows) ou Ohphone, Gnomemeeting (sous
       Linux), installe et correctement configure.

    2. une carte rseau ou autre type d'interface TCP/IP pour communiquer.

   Dans ce cas de figure, A fait un appel H323  B (si B a une application
   serveur active)  l'aide de l'adresse IP de B. Puis B peut rpondre s'il
   le souhaite. Une fois l'appel accept, les paquets de donnes VoIP
   commencent  circuler

  7.2. Utiliser des noms

   Sous Microsoft Windows, on peut utiliser un nom NetBIOS  la place d'une
   adresse IP.

           A - - - B
 192.168.1.1 - - - 192.168.1.2
        John - - - Alice


        John appelle Alice.

   Ceci est possible car la requte d'appel de John  Alice a t convertie
   en appel IP par le protocole NetBIOS

   Ces deux exemples sont trs faciles  implmenter mais n'autorisent pas la
   monte en charge.

   Dans le cas d'un rseau plus tendu, comme Internet, il est impossible
   d'utiliser l'appel direct, car, en gnral, les appelants ne connaissent
   pas l'adresse IP du destinataire. De plus, la gestion des noms NetBIOS ne
   peut pas fonctionner car elle utilise des messages broadcast, qui ne
   passent pas au travers des routeurs des FAI, en gnral.

   Vous pouvez aussi utiliser DNS pour la rsolution des noms en adresses IP.
   Il est possible, par exemple, d'appeler le correspondant nomm
    ordinateur.domaine.com .

  7.3. Appels sur Internet avec un serveur WINS

   L'ide d'appeler des noms NetBIOS peut aussi tre implmente en
   environnement Internet  l'aide d'un serveur WINS. Il est possible de
   configurer les clients NetBIOS afin qu'ils utilisent un serveur WINS pour
   la rsolution des noms

   Les PC qui utilisent le mme serveur WINS peuvent s'appeler directement

 A (serveur WINS S) - - - - - I - - - - B (serveur WINS S)
                              N
                              T
                              E - - - - - S (serveur Wins)
 C (serveur WINS S) - - - - - R
                              N
                              E - - - - D (serveur WINS S)
                              T


                     Communication Internet

   A, B, C et D sont dans des sous-rseaux diffrents, mais ils peuvent
   s'appeler  la manire d'un appel de nom NetBIOS. Il faut que tous
   utilisent S comme serveur WINS.

   Remarque : les performances du serveur WINS sont rduites car il utilise
   NetBIOS  on ne devrait l'utiliser que pour un nombre restreint de
   sous-rseaux .

  7.4. Serveur ILS

   Les serveurs de type ILS permettent de rsoudre un nom lors d'un appel
   H323 : lorsque vous dmarrez une application VoIP, vous commencez par
   enregistrer un nom sur le serveur ILS. L'ensemble des utilisateurs
   pourront alors vous joindre  l'aide de ce nom (s'ils possdent le mme
   serveur ILS !).

  7.5. Un gros problme : le masquerading.

   On peut remdier  une pnurie d'adresses IP par utilisation du masquage
   d'adresses (masquerading ou NAT, network address translation, traduction
   d'adresse rseau) : une seule adresse IP est publique ( vue  sur
   Internet), les autres machines sont  masques  par cette adresse IP.

 A - - -
 B - - - Routeur NAT - - - Internet
 C - - -


          a ne fonctionne pas.

   Dans l'exemple, A, B et C peuvent naviguer, pinguer, utiliser le mail et
   les news avec des gens sur Internet, mais ils NE PEUVENT PAS faire un
   appel de VoIP. En effet le protocole H323 envoie l'adresse IP au niveau
   applicatif, donc la rponse n'arrivera jamais  la source (qui utilise une
   adresse IP prive).

   Solutions:

     * Un module Linux particulier qui modifie les paquets h323 permet
       d'viter ce problme. Vous pouvez le tlcharger ici
       [http://www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm]. Pour
       l'installer vous devez le copier dans le rpertoire source spcifi,
       modifier le Makefile, le compiler et installer le module avec
        modprobe ip_masq_h323 . Malheureusement ce module ne fonctionne pas
       actuellement avec ohphone (je ne sais pas pourquoi).

 A - - - Routeur NAT
 B - - -          +          - - - Internet
 C - - - module ip_masq_h323


          a fonctionne.

     * Il y a aussi une application qui rsout ce problme. Voir Phonepatch

 A - - -
 B - - - PhonePatch - - - Internet
 C - - -


         a fonctionne.

  7.6. Applications Open Source

    7.6.1. Syntaxe d'Ohphone

   La syntaxe est :

    ohphone -l [options] ou ohphone --listen [options] 

    ohphone [options]... adresse 

     *  -l , coute sur le port standard (1720)

     *  adresse , signifie que nous n'attendons pas d'appel, mais que nous
       nous connectons  la machine  adresse 

     *  -n ,  --no-gatekeeper , convient en l'absence de portier

     *  -q num ,  --quicknet num , utiliser la carte Quicknet,
       priphrique /dev/phone(num)

     *  -s device ,  --sound device , utiliser le priphrique audio
       /dev/device.

     *  -j dlai ,  --jitter dlai , passer le dlai du tampon  la
       valeur  dlai .

   De plus, une fois ohphone lanc, il est possible de passer directement des
   commandes  l'aide de l'interprteur (par exemple, pour diminuer l'AEC,
   Automatic Echo Cancellation, annulation automatique d'cho).

    7.6.2. Gnomemeeting

   Gnomemeeting est une application avec interface utilisateur graphique
   permettant d'effectuer des appels VoIP. Son utilisation est trs simple et
   elle fournit, entre autres, un serveur ILS, et un chat.

  7.7. Installer un portier

   Vous pouvez aussi faire l'essai d'un portier.

 Exemple

   (Terminal H323) A - - -
                          \
   (Terminal H323) B - - - D (Portier)
                          /
   (Terminal H323) C - - -


       Configuration du portier

    1. Les machines A, B et C sont configures pour pointer sur le portier D.

    2. Au dmarrage, chaque machine fournit,  D, ses adresse et nom propres
       (des alias galement), qui pourront tre utiliss, par un appelant,
       pour la contacter.

    3. Quand un terminal demande,  D, l'accs  une machine, D rpond en
       fournissant l'adresse IP, qui permet d'tablir la communication.

   Il faut noter que le Portier n'est capable que de rsoudre des noms en
   adresses IP : il ne peut pas relier des machines injoignables entre-elles
   au niveau IP, autrement dit il ne peut pas fonctionner comme routeur NAT.

   Vous pourrez trouver le code source d'un portier ici
   [http://www.opengatekeeper.org] : la librairie openh323
   [http://www.openh323.org/code.html]est ncessaire.

   Le programme peut tre lanc avec les paramtres -d (dmon) ou -x
   (execute).

   Vous pouvez de plus utiliser un fichier de config (.ini) que vous
   trouverez ici [http://www.opengatekeeper.org/opengate.ini].

  7.8. Installer une passerelle

   Comme nous l'avons dja dit, une passerelle relie la VoIP aux lignes du
   rseau tlphonique (RTCP) ce qui permet d'appeler un tlphone classique
   depuis Internet. Il faut donc, en plus, une carte capable de grer des
   lignes RTCP : la carte Quicknet LineJack convient.

   Sur le site web OpenH323 [http://www.openh323.org] nous tlchargeons :

    1. le pilote de Linejack

    2. l'application PSTNGw qui servira de passerelle.

   Si l'excutable ne fonctionne pas, il faut tlcharger le code source et
   la librairie openh323 [http://www.openh323.org/code.html], puis installer
   le tout dans un rpertoire personnel.

   Il suffit ensuite de lancer PSTNGw pour dmarrer la passerelle H323.

  7.9. Matrice de compatibilit

   La premire matrice concerne les :

    1. Communications entre logiciels (ex: Netmeeting avec Switchboard)

    2. Communication entre logiciels, pilotes et matriel (ex: Netmeeting
       peut utiliser une carte PhoneJack)

  _______________________________________________________________________________________________
 |            | Net-    | Switch- |Simph323 | OhPhone | LinPhone| Speak-  |    HW    |    HW    |
 |            | meeting | Board   |         |         |         | Freely  | PhoneJACK| LineJACK |
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 | Netmeeting |    V         V         V         V         X         X         V          V
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 |SwitchBoard |    V         V         V         V         X         X         V          V
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 | Simph323   |    V         V         V         V         X         X         X          X
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 | OhPhone    |    V         V         V         V         X         X         V          V
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 | LinPhone   |    X         X         X         X         V         X         X          X
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 |SpeakFreely |    X         X         X         X         X         V         X          X
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 |HW PhoneJACK|    V         V         X         V         X         X         _          _
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|
 |HW LineJACK |    V         V         X         V         X         X         _          _
 |____________|_________|_________|_________|_________|_________|_________|__________|__________|

   La seconde matrice fait rfrence aux logiciels de passerelle qui grent
   la carte LineJack.

 ___________________________________________________________
 |              |HW LineJACK GW| SwitchBoard  |   PSTNGW     |
 |______________|______________|______________|______________|
 |HW LineJACK GW|      _       |       V      |       V      |
 |______________|______________|______________|______________|
 | SwitchBoard  |      V       |       _      |       _      |
 |______________|______________|______________|______________|
 |   PSTNGW     |      V       |       _      |       _      |
 |______________|______________|______________|______________|

   Notation:

     * V : Fonctionne

     * X : Ne fonctionne pas

     * -- : Non significatif

8. Communications sur des lignes RTCP

  8.1. Gnralits

   La VoIP devient trs intressante quand vous commencez  utiliser des
   lignes RTCP pour appeler d'autres gens dans le monde, directement sur leur
   tlphone  domicile.

  8.2. Scnario

   Une application typique serait :

 Tlphone 1 -- (RTCP) -- PC1 -- (Internet) -- PC2 -- (RTCP) -- Tlphone 2

    1. Le tlphone 1 appelle le numro du PC1 (sur le RTCP, cd la ligne
       tlphonique classique)

    2. Le PC1 lui rpond.

    3. Le tlphone 1 doit indiquer au PC1 la passerelle  utiliser (le PC2
       dans ce cas) en fournissant l'adresse IP ( l'aide du clavier 
       tonalits) et/ou le numro  appeler (dans ce cas, celui du tlphone
       2)

    4. Le PC1 met ensuite un appel H323 au PC2, et lui transmet le numro du
       tlphone 2 afin qu'il appelle ce dernier  l'aide du RTCP

    5. Le tlphone 2 rpond  l'appel et la communication entre le tlphone
       1 et le tlphone 2 commence.

  8.3. Que peut-on changer dans cette configuration ?

    1. Il est possible d'utiliser un autocommutateur priv qui fournit
       plusieurs lignes d'accs  la passerelle PC1 (l'une, par exemple, pour
       des appels internes  l'tat, l'une pour des appels vers l'Europe, et
       ctera) : en gnral cette option est inutile, car le cot est
       identique.

    2. Il est possible de slectionner, aprs appel de la passerelle PC1, le
       PC2 de votre choix, (par exemple un PC2 situ en Angleterre si on
       appelle un Anglais) afin de ne payer que des communications
       nationales.

   Votre dcision dpendra donc des cots des lignes RTCP. En fait, la VoIP
   fait la conversion de :

 Tlphone 1 --- (RTCP) --- Tlphone 2
              Cot d'un appel grande distance RTCP

   en :

 Tlphone 1 --- (RTCP) --- PC1   +
 PC2 ---- (RTCP) --- Tlphone 2  =
 --------------------------------------
 2 cots d'appel RTCP courte distance

   Pour raliser des conomies il est ncessaire que :

 2 cots d'appel RTCP courte distance < cot d'appel RTCP grande distance

   Gnralement, un  appel  courte distance  dsigne un  appel local 
   alors qu'un  appel grande distance  peut tre un  appel
   intercontinental  !

9. Considrations de bande passante

   Dans ce qui a t dit jusqu' prsent le problme de bande passante n'a
   pas t rsolu : comment crer un flux de donnes en temps rel.

   Nous savons qu'il n'existe pas de solution en l'absence d'un protocole de
   gestion temps rel dans chaque routeur travers. Qu'est-il possible de
   faire ?

   On peut commencer par utiliser des algorithmes de compression  taux trs
   lev (le plus lev possible), comme l'algorithme LPC10 qui ne consomme
   que 2,5 kbps de bande passante, environ 313 octets/s.

   On peut ensuite essayer de classer les paquets,  l'aide du champ TOS, au
   niveau de priorit maximum, afin que chaque routeur les traite en urgence

   Remarque importante : tout cela ne suffira pas  garantir que la
   permanence conversation sera toujours de bonne qualit, mais, en l'absence
   d'infrastructure importante qui assure, en particulier, la mise en forme
   du trafic et la rservation de bande passante, cela n'est pas ralisable :
   TCP/IP n'est pas un protocole temps rel

   Une solution pourrait tre d'utiliser, pour commencer, des petits rseau
   WAN  bande passante garantie et de les agrandir tape par tape.

   Une remarque pour finir : les services supposs garantis, comme les lignes
   RTCP, ne peuvent pas non plus grer l'ensemble de leurs clients au mme
   instant. Par exemple, un appel GSM ne peut pas absorber un nombre
   suprieur  quelques centaines ou quelques milliers de clients

   En tout cas, pour un service qui dbute, limit  quelques utilisateurs,
   la VoIP peut tre une alternative valable au service RTCP classique.

10. Glossaire

   RTCP : Rseau Tlphonique Commut Public

   VoIP : Voice over Internet Protocol (Voix sur protocole Internet - Voix
   sur IP)

   LAN : Local Area Network (rseau local)

   WAN : Wide Area Network (rseau tendu)

   TOS : Type Of Service (type de service)

   FAI : Fournisseur d'Accs Internet

   RTP : Real Time Protocol (protocole temps rel)

   RSVP : ReSerVation Protocol (protocole de rservation)

   QoS : Quality of Service (qualit de service)

11. Liens utiles

  11.1. Liens vers des logiciels open source

     * Voxilla [http://www.voxilla.org]

     * Linux Telephony [http://www.linuxtelephony.org]

     * Site web Open H323 [http://www.openh323.org]

     * Gnomemeeting [http://www.gnomemeeting.org/]

     * Speak Freely [http://www.speakfreely.org]

     * Linphone [http://www.linphone.org]

     * Osip [http://www.fsf.org/software/osip]

     * Bayonne [http://www.gnu.org/software/bayonne]

  11.2. Liens commerciaux

     * Fatamorgana Computers [http://www.fatamorgana.com]

     * International Communication Union [http://www.itu.org]

     * Voicetronix [http://www.voicetronix.com.au]

     * Quicknet [http://www.quicknet.net]

     * Cisco Systems [http://www.cisco.com]

     * http://www.metropark.com [http://www.metropark.com]

     * http://www.nbxsoftware.com [http://www.nbxsoftware.com]

