Dans ce chapitre, nous allons installer un système VoIP, d'abord simple, puis, de plus en plus complexe.
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
une application comme Microsoft Netmeeting, Internet Switchboard, Openh323 (sous environnement Windows) ou Ohphone, Gnomemeeting (sous Linux), installée et correctement configurée.
une carte réseau 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 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.
Ceci est possible car la requête d'appel de John à Alice a été convertie en appel IP par le protocole NetBIOS
Ces deux exemples sont très faciles à implémenter mais n'autorisent pas la montée en charge.
Dans le cas d'un réseau plus étendu, comme Internet, il est impossible d'utiliser l'appel direct, car, en général, 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 général.
Vous pouvez aussi utiliser DNS pour la résolution des noms en adresses IP. Il est possible, par exemple, d'appeler le correspondant nommé « ordinateur.domaine.com ».
L'idée d'appeler des noms NetBIOS peut aussi être implémentée 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 résolution des noms
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, C et D sont dans des sous-réseaux différents, mais ils peuvent s'appeler à la manière d'un appel de nom NetBIOS. Il faut que tous utilisent S comme serveur WINS.
Remarque : les performances du serveur WINS sont réduites car il utilise NetBIOS on ne devrait l'utiliser que pour un nombre restreint de sous-réseaux .
Les serveurs de type ILS permettent de résoudre un nom lors d'un appel H323 : lorsque vous démarrez 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 possèdent le même serveur ILS !).
On peut remédier à une pénurie d'adresses IP par utilisation du masquage d'adresses (masquerading ou NAT, network address translation, traduction d'adresse réseau) : une seule adresse IP est publique (« vue » sur Internet), les autres machines sont « masquées » 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 réponse n'arrivera jamais à la source (qui utilise une adresse IP privée).
Solutions:
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.
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, 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
Les machines A, B et C sont configurées pour pointer sur le portier D.
Au démarrage, chaque machine fournit, à D, ses adresse et nom propres (des alias également), qui pourront être utilisés, par un appelant, pour la contacter.
Quand un terminal demande, à D, l'accès à une machine, D répond en fournissant l'adresse IP, qui permet d'établir la communication.
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.
Comme nous l'avons déja dit, une passerelle relie la VoIP aux lignes du réseau téléphonique (RTCP) ce qui permet d'appeler un téléphone classique depuis Internet. Il faut donc, en plus, une carte capable de gérer des lignes RTCP : la carte Quicknet LineJack convient.
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 :
Communications entre logiciels (ex: Netmeeting avec Switchboard)
Communication entre logiciels, pilotes et matériel (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 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