Version : 1.7.fr.1.0
3 mai 2007
Historique des versions | ||
---|---|---|
Version 1.7.fr.1.0 | 2007-05-03 | JB, AB, JPG |
Première traduction française. | ||
Version 1.7 | 2002-08-07 | RA |
Version originale. |
Résumé
Grâce à la transmission de la voix sur un réseau IP (abrégée « voix sur IP »), il est possible, pour un coût quasi nul, d'utiliser Internet pour téléphoner. Ce guide pratique explique le fonctionnement de cette technique, et présente les normes et systèmes utilisés.
Table des matières
SANS AUCUNE GARANTIE ; sans même les garanties implicites de COMMERCIALISATION et de CONFORMITÉ À UNE UTILISATION PARTICULIÈRE. Voir la GNU General Public License pour plus de détails. Vous trouverez un exemplaire de la GNU GPL ici
La plus récente version française de ce guide pratique est disponible sur le site de l'association Traduc.org.
Le site http://www.bertolinux.com/ contient la plus récente version originale de ce document.
Si vous voulez traduire ce document vous êtes libre, vous devez simplement :
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 cætera) : pour cela vous pouvez utiliser l'application « LyX » téléchargeable à http://www.lyx.org.
Il n'est pas nécessaire 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 !
Merci à Fatamorgana Computers pour le matériel et les opportunités d'expérimentation.
Merci au Linux Documentation Project pour la publication et la mise en ligne très rapide de mon document.
Merci à David Price pour son soutien.
L'établissement d'une connexion VoIP nécessite :
Architecture de base Voix )) CAN - Algorithme de Compression - Assembler RTP dans TCP/IP ----- ----> | <---- | Voix (( CNA - Algorithme de Décompression - Désass. RTP de TCP/IP -----
PCM, modulation par impulsion et codage (MIC), norme ITU-T G.711
ADPCM, modulation par impulsion et codage différentiel adaptatif (MICDA), norme ITU-T G.726
Seule la différence entre le paquet de voix actuel et le précédent est converti, ce qui nécessite 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 très basse par un codage à la source. De plus les codecs G.723.1 ont une note moyenne d'opinion très élevé (utilisée pour mesurer la fidélité de la voix), mais attention aux performances d'élaboration qu'ils nécessitent : jusqu'à 26 MIPS !
paquets de données VoIP RTP UDP IP couches I, II
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 | numéro de séquence | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | empreinte temporelle | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | identifiant de la source de synchronization source (SSRC) | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | identifiants des sources contribuantes (CSRC) | | .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Pour une description complète du protocole RTP et de toutes ses applications, voir les RFC 1889et 1890.
Pour des informations exhaustives sur la QoS, voir Differentiated Services à l'IETF.
Le protocole H323 est utilisé par exemple par Microsoft NetMeeting pour faire des appels VoIP.
Ce protocole permet à plusieurs éléments de se parler :
Le protocole H323 concerne non seulement la VoIP mais aussi les communications de données et de vidéo.
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 vidéo il prend en charge h261 et h263.
On trouvera des informations complémentaires sur h323 sur les sites Web Openh323 Standards et h323 ainsi que dans le document de définition de la norme : ITU H-series Recommendations.
On le trouve implémenté dans différents logiciels comme Microsoft Netmeeting, Net2Phone, DialPad, ... et aussi dans des produits freeware qu'on peut trouver au site web Openh323.
Pour créer un petit système VoIP vous avez besoin du matériel suivant :
Chacun de ces éléments doit être présent en double exemplaire comme pour une véritable communication.
Les éléments ci-dessus sont le minimum requis pour une connexion VoIP : nous verrons plus loin quel est le matériel qui serait nécessaire (et qui l'est pour Internet) pour assurer la même fonction en situation réelle.
La carte son doit être full duplex si on veut pouvoir parler et entendre en même temps !
Il est possible par ailleurs d'utiliser des cartes (voir ci-dessous) qui gèrent un flux de données en format compressé (voir § 4.3).
Quicknet PhoneJack est une carte son qui utilise des algorithmes standards pour compresser un flux audio comme G723.1 (section 4.3) jusqu'à un débit de 4,1 kbps.
Elle peut être directement connectée à un téléphone (prise téléphone 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 caractéristiques en plus (voir ci-dessous).
La carte VoiceTronix V4PCI est une carte PCI comme la carte Quicknet LineJack mais avec 4 ports de type téléphone.
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 supplémentaires, consultez le site web de Quicknet et le site web de VoiceTronix
On peut choisir l'un de ces systèmes d'exploitation :
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).
Attention !! Les dernières cartes Quicknet utilisant Switchboard (ancienne version aussi) DOIVENT être connectées à Internet pour avoir accès à un compte Microtelco (payant), aussi, si vous ne souhaitez pas être connecté à Internet vous devrez installer les logiciels OpenH323.
Pour les cartes VoiceTronix, vous trouverez des logiciels au site web de VoiceTronix
Sous Linux, nous avons les logiciels libres GnomeMeeting, clone de Microsoft Netmeeting, et en mode console nous utilisons les applications (également libres) du site web OpenH323: simph323 ou ohphone, qui fonctionnent aussi avec le matériel d'accélération de Quicknet.
Attention : le code source complet d'Openh323 doit être compilé dans un répertoire utilisateur (sinon il est nécessaire de modifier certaines variables d'environnement). Notez que le temps de compilation peut être très long et qu'une quantité importante de RAM est nécessaire si on veut le réduire à une durée raisonnable.
Internet SwitchBoard (nécessitant une connexion à Internet) pour les systèmes Windows, qui fonctionne aussi comme terminal h323.
PSTNGw pour les systèmes Linux et Windows, à télécharger sur OpenH323.
Vous pouvez choisir comme portier :
Opengatekeeper, téléchargeable au site web d'opengatekeeperpour Linux et Win9x.
Openh323 Gatekeeper (GK) ici .
En complément, voici un logiciel utile conformes à h323 :
Phonepatch, pouvant fonctionner derrière 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'hôte distant est prêt, elle appelle la source, en h323, pour l'informer que la communication peut être établie. Phonepatch est un logiciel propriétaire (avec une version de démo pour des conversations de moins de 3 minutes), que vous pouvez télécharger ici.
La carte Quicknet PhoneJack est une carte ISA (ou PCI) à installer dans le boîtier du PC. Elle peut fonctionner sans IRQ.
Sous Windows vous devez installer :
tous téléchargeables sur le site web de Quicknet
Une fois Switchboard installé, il faut s'enregistrer auprès de Quicknet pour bénéficier des pleines capacités de la carte.
Lorsque vous décrochez le téléphone, Internet Switchboard se réveille et attend que vous composiez un numéro d'appel (directement à partir du téléphone). Vous pouvez effectuer l'une des opérations suivantes :
Taper un astérisque, puis un numéro IP (des astérisques remplaçant les points), et un # à la fin
Composer le numéro d'appel (avec préfixe international) d'un abonné du réseau téléphonique classique. Dans ce cas, il est nécessaire d'être abonné à un gestionnaire de passerelle qui vous facturera le temps de communication.
Composer un code d'accès rapide (un ou deux chiffres), que vous aurez stocké au préalable, 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(avec interface utilisateur graphique) ou ohphone(ligne de commande) d'openh323.
Sous Linux vous devez installer :
Le pilote de carte, à partir du site web de Quicknet . Une fois téléchargés, vous devrez compiler les fichiers sources. (il faut disposer d'un lien symbolique ou physique vers le répertoire des sources de linux /usr/src/linux). Pour obtenir la marche à suivre, tapez la commande 'make'.
Si vous êtes développeur, vous pouvez utiliser le SDK pour créer votre propre application (valable aussi pour Windows).
Remarquons simplement qu'il faut télécharger l'application PSTNGx (pour Linux et Windows) ou utiliser Internet Switchboard pour utiliser la fonction de passerelle.
Décompactez-le
Modifiez 'src/vpbreglinux.cpp' selon le fichier README
Tapez 'make'
Tapez 'make install'
Se placer dans le répertoire src (cd src)
Tapez 'insmod vpb.o'
Retrouvez (à partir de la console ou à l'aide de la commande 'dmesg') le numéro majeur, noté ci-dessous MAJEUR
tapez 'mknod /dev/vpb0 c MAJEUR 0' où MAJEUR est le numéro susmentionné
se placer dans le répertoire unittest (cd unittest) et taper './echo'
Le fichier README contient des informations plus détaillées
Je n'ai pas testé personnellement les produits VoiceTronix. Contactez le site web de VoiceTronix pour tout support.
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.
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 répondre s'il le souhaite. Une fois l'appel accepté, les paquets de données VoIP commencent à circuler
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.
Ces deux exemples sont très faciles à implémenter mais n'autorisent pas la montée en charge.
Les PC qui utilisent le même 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 - - - Routeur NAT - - - Internet C - - - Ça ne fonctionne pas.
Un module Linux particulier qui modifie les paquets h323 permet d'éviter ce problème. Vous pouvez le télécharger ici. Pour l'installer vous devez le copier dans le répertoire source spécifié, 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 résout ce problème. Voir Phonepatch
A - - - B - - - PhonePatch - - - Internet C - - - Ça fonctionne.
« ohphone -l [options] ou ohphone --listen [options] »
« ohphone [options]... adresse »
« -n », « --no-gatekeeper », convient en l'absence de portier
« -q num », « --quicknet num », utiliser la carte Quicknet, périphérique /dev/phone(num)
« -s device », « --sound device », utiliser le périphérique audio /dev/device.
« -j délai », « --jitter délai », passer le délai du tampon à la valeur « délai ».
De plus, une fois ohphone lancé, il est possible de passer directement des commandes à l'aide de l'interpréteur (par exemple, pour diminuer l'AEC, Automatic Echo Cancellation, annulation automatique d'écho).
Vous pouvez aussi faire l'essai d'un portier.
Exemple (Terminal H323) A - - - \ (Terminal H323) B - - - D (Portier) / (Terminal H323) C - - - Configuration du portier
Il faut noter que le Portier n'est capable que de résoudre 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 : la librairie openh323 est nécessaire.
Le programme peut être lancé avec les paramètres -d (démon) ou -x (execute).
Vous pouvez de plus utiliser un fichier de config (.ini) que vous trouverez ici.
Sur le site web OpenH323 nous téléchargeons :
le pilote de Linejack
l'application PSTNGw qui servira de passerelle.
Si l'exécutable ne fonctionne pas, il faut télécharger le code source et la librairie openh323 , puis installer le tout dans un répertoire personnel.
Il suffit ensuite de lancer PSTNGw pour démarrer la passerelle H323.
La première matrice concerne les :
_______________________________________________________________________________________________ | | 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 référence aux logiciels de passerelle qui gèrent 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
Une application typique serait :
Téléphone 1 -- (RTCP) -- PC1 -- (Internet) -- PC2 -- (RTCP) -- Téléphone 2
RTCP : Réseau Téléphonique Commuté Public
VoIP : Voice over Internet Protocol (Voix sur protocole Internet - Voix sur IP)
LAN : Local Area Network (réseau local)
WAN : Wide Area Network (réseau étendu)
TOS : Type Of Service (type de service)
FAI : Fournisseur d'Accès Internet
RTP : Real Time Protocol (protocole temps réel)