Pour s'assurer que tous les composants fonctionnent, trouvez 2 stations de travail Linux, toutes les deux connectées au réseau local. Assurez-vous d'avoir au moins la version 1.1 de OpenH323 et OhPhone d'installée. Sur la première machine, lancez le gatekeeper et ohphone (dans des consoles différentes):
jan@machine1 > gnugk -ttt
Le gatekeeper tourne maintenant en mode direct.
L'option "-ttt
" indique au gatekeeper de faire beaucoup de traces de debug
dans la console (vous pouvez rediriger cette sortie vers un fichier avec
"-o logfile
").
jan@machine1 > ohphone -l -a -u jan
Cet OhPhone attend maintenant (-l
) les appels et les acceptera automatiquement
(-a
). Il s'est enregistré comme utilisateur jan auprès du gatekeeper
qu'il détectera automatiquement. (Si la détection automatique ne marche pas
pour une quelconque raison, utilisez "-g 1.2.3.4
" pour indiquer le numéro
IP sur lequel le gatekeeper tourne.)
Sur la deuxième machine, lancez seulement ohphone:
peter@machine2 > ohphone -u peter jan
La deuxième instance de OhPhone s'enregistre auprès du gatekeeper détecté automatiquement en tant qu'utilisateur peter et essaye d'appeler jan. Le gatekeeper déterminera le numéro IP où jan s'est enregistré (machine1 dans ce cas) à partir du username et OhPhone appellera l'autre instance de OhPhone sur la machine une.
La première instance de OhPhone acceptera cet appel, Peter et Jan pourront parler.
Nous allons maintenant essayer de voir quels messages sont traités par le gatekeeper. Dans une nouvelle console sur machine1 nous utilisons telnet pour nous connecter au gatekeeper:
jan@machine1 > telnet machine1 7000
Très probablement nous aurons un message "Accès interdit!", car tout le monde n'a pas le droit d'espionner.
Nous créons maintenant un fichier appelé gatekeeper.ini
et le mettons
dans le répertoire où nous démarrons le gatekeeper.
gatekeeper.ini
contient seulement 4 lignes:
[Gatekeeper::Main]
Fortytwo=42
[GkStatus::Auth]
rule=allow
Arrêtez le gatekeeper avec Ctrl-C et redémarrez-le. Quand nous faisons à nouveau le telnet, nous restons connectés au gatekeeper. Répétons maintenant la première expérience où Peter appelle Jan et voyons quels messages sont traités par le gatekeeper en mode non-routé. Il existe un certain nombre de commandes qui peuvent être envoyées dans cette session telnet: Tapez "help" pour les voir. Pour terminer la session telnet avec le gatekeeper, tapez "quit" et Entrée.
Démarrer le gatekeeper en mode routé signifie que le gatekeeper utilise la "signalisation routée du gatekeeper" pour tous les appels. Dans ce mode tous les messages de signalisation du gatekeeper passent par le gatekeeper qui a beaucoup plus de contrôle sur les appels.
jan@machine1 > gnugk -r
Le gatekeeper tourne maintenant en mode routé. Faire un telnet sur le port d'état et faîtes un appel pour voir quels messages sont maintenant traités par le gatekeeper.
Il faut noter que tous les paquets media (audio et vidéo) sont toujours envoyés directement entre les terminaux (les 2 instances de ohphone).
Comme la signalisation routée du gatekeeper est beaucoup plus complexe, vous avez plus de chances de tomber sur une anomalie dans ce mode. Mais si çà casse, vous gardez les pièces. ;-)
Jusqu'à maintenant le gatekeeper a seulement servi de mécanisme pour résoudre des noms symboliques en adresses IP. Il s'agit d'une fonction importante mais pas très excitante.
Puisque le gatekeeper a beaucoup de contrôle sur les appels, il peut les
terminer par exemple. Quand nous sommes connectés au port d'état, nous
pouvons obtenir la liste de tous les appels en cours avec "PrintCurrentCalls
".
Pour terminer un appel, nous pouvons dire "Disconnectip 1.2.3.4
" pour un de
ses terminaux.
Quelqu'un pourrait par exemple écrire un script simple qui se connecte au port d'état, surveille les appels en cours et les termine après 5 minutes, de telle sorte qu'aucun utilisateur ne puisse abuser des ressources système.
Regardez les autres fonctions téléphoniques telles que TransferCall pour voir ce qui est disponible.
Sans utiliser de passerelle vous pouvez seulement appeler d'autres personnes avec un téléphone IP sur Internet. Pour atteindre les gens disposant d'un téléphone ordinaire vous devez utiliser une passerelle.
_________________ ______________
| endpoint "jan"| | |
| 192.168.88.35 |--------->| Gatekeeper |
|_______________| | |
_________________ | |
| gateway "gw1" | outgoing | |
| 192.168.88.37 |<---------|____________|
|_______________|
Le gatekeeper doit savoir quels appels sont supposés être routés par la passerelle et quels numéros doivent être appelés directement. Utilisez la section [RasSrv::GWPrefixes] du fichier de configuration pour indiquer au gatekeeper le préfixe des numéros qui doivent être routés par la passerelle.
[RasSrv::GWPrefixes]
gw1=0
Cette entrée indique au gatekeeper de router tous les appels aux numéros E.164 qui commencent par 0 sur la passerelle qui s'est enregistrée avec l'alias H.323 "gw1". Si il n'y a pas de passerelle enregistrée avec cet alias l'appel échouera. (Il faut noter que vous devez utiliser l'alias de la passerelle - vous ne pouvez pas juste indiquer au gatekeeper le numéro IP de la passerelle.)
Un préfixe peut contenir des chiffres 0-9
, #
et *
. Il peut aussi
contenir un carctère spécial .
(un point) qui correspond à
n'importe quel chiffre et peut être préfixé par !
(un point
d'exclamation) pour désactiver le préfixe.
La correspondance des préfixes est faite en respectant la règle du plus
long préfixe correspondant, avec les règles ! ayant une priorité
supérieure si les longueurs sont égales. Quelques exemples:
[RasSrv::GWPrefixes]
; Cette entrée routera les numéros commençant par 0048 (mais pas par
; 004850 et 004860) vers gw1
gw1=0048,!004850,!004860
; Cette entrée correspond uniquement à 001 avec 10 chiffres après
gw2=001..........
Quand vous utilisez une passerelle vous devez souvent utiliser des numéros différents en interne et les réécrire avant de les envoyer par la passerelle sur le réseau téléphonique. Vous pouvez utiliser la section RasSrv::RewriteE164 pour configurer ceci.
Exemple: Vous voulez appeler le numéro 12345 avec votre téléphone IP et atteindre le numéro 08765 derrière la passerelle "gw1".
[RasSrv::GWPrefixes]
gw1=0
[RasSrv::RewriteE164]
12345=08765
Vous pouvez aussi configurer la réécriture de numéros E.164 en fonction de quelle passerelle vous recevez un appel ou vous en envoyez un en utilisant la section RasSrv::GWRewriteE164.
Exemple: Vous avez deux passerelles différentes ("gw1" et "gw2") auxquelles vous envoyez des appels avec le préfixe 0044, mais qui nécessitent l'ajout d'un préfixe différent après que le routage ait choisi la passerelle. Ce peut être par exemple pour des raisons d'identification.
[RasSrv::GWPrefixes]
gw1=0044
gw2=0044
[RasSrv::GWRewriteE164]
gw1=out=0044=77770044
gw2=out=0044=88880044
Exemple: Vous voulez identifier les appels d'une passerelle particulière "gw1" avec un préfixe spécifique avant de passer ces appels à une autre passerelle "gw2".
[RasSrv::GWPrefixes]
gw2=1
[RasSrv::GWRewriteE164]
gw1=in=00=123400
Les expressions de réécriture acceptent les caractères jokers point
'.'
et pourcent '%'
pour permettre de construire des règles plus
générales. Le caractère point peut apparaître à la fois
à gauche et à droite de l'expression, le signe pourcent peut
apparaître uniquement à la gauche de l'expression. Utilisez '.'
pour
indiquer n'importe quel caractère et le copier dans la chaîne
réécrite et '%'
pour indiquer n'importe quel caractère et
l'omettre.
Quelques exemples simples:
[RasSrv::RewriteE164]
; Réécrit 0044 + min. 7 chiffres en 44 + min. 7 digits
0044.......=44.......
; Réécrit les numéros commencant par 11 + 4 chiffres + 11 en 22 + 4 digits + 22
; (comme 11333311 => 22333322, 110000112345 => 220000222345)
11....11=22....22
; omet les 4 premiers chiffres de tous les numéros (11114858345 => 4858345)
; c'est équivalent à 10 règles %%%%1=1, %%%%2=2, ...
%%%%.=.
; insère deux zéros au milieu du numéro (111148581234 => 11110048581234)
....48=....0048
; même ceci est possible (415161 => 041051061)
4.5.6=04.05.06