Trunking VoIP intersite. La liaison entre plusieurs sites en VoIP, soit entre plusieurs PBX à travers TCP/IP est une fonctionnalité qui démontre l’avantage de la technologie. Nous envisageons ici le « Trunking » en SIP et en IAX, en se souciant de la sécurité.
Lecture préalable.
Topologie.
Arrière-plan
SIP permet d’établir directement une connexion entre plusieurs PBX afin que ceux-ci effectuent un routage d’appel. Une adresse IP de destination suffit si l’on se passe de l’authentification. En fait, il sera préférable d’authentifier les PBX avec un mot de passe Aussi, on pourra encrypter la signalisation SIP sur le protocole TLS ainsi que le trafic voix en SRTP.
La topologie IP supporte la configuration de type LAN comme ici, [de type Internet sans NAT ou VPN à tester]. Le plan d’adressage est identique de part et d’autre.
Un type SIP ou IAX dans la configuration des périphériques est soit :
- peer : est un périphérique qui reçoit des appels venant d’Asterisk.
- user : est un périphérique qui place des appels auprès d’Asterisk.
- friend : qui reçoit et place des appels.
Objectifs
Etablir un trunk SIP mutuel entre deux PBX Asterisk de manière sécurisée.
Le numéro de préfixe 9 suivi d’un numéro de poste permet de joindre le poste distant de l’autre site : soit le numéro 9301 composé à partir du Site A permet d’appeler le poste 301 (0000FFFF0002) du site B.
Exercice 1 : configuration basique.
Etape 1 : Attribuer une extension vers les destinations de l’autre site.
Lorsqu’un poste compose le chiffre 9 suivi d’une extension connue du Site B, l’appel doit être routé correctement sur le trunk SIP à destination de l’extension du plan d’appel du Site B.
Sur le serveur du Site A, il s’agit de modifier le fichier /etc/asterisk/extensions.conf en créant l’extension suivante :
exten => _9XXX,1,Dial(SIP/192.168.1.201/${EXTEN:1})
Etape 2 : Permettre à l’autre site d’accepter les appels non authentifiés.
Si vous tester déjà le numéro 9301 ou 9300 à partir du Site A, vous constatez que l’appel n’aboutit pas et que la console sur le Site B vous donne une erreur du type :
handle_request_invite: Call from '' (192.168.1.200:5060) to extension '301' rejected because extension not found in context 'unauthenticated'
Pour “ouvrir” votre Asterisk, il faut changer la directive allowguest=yes dans la section [general] du fichier /etc/asterisk/sip.conf. Pour que ces appels non authentifiés soit routés dans le notre contexte local, il suffit de remplacer le context=unauthenticated en context=LocalSets.
Tentez de joindre le poste 100 ou 101 du Site B à partir d’un poste du Site A.
Etape 3 : Assurer le routage des appels du Site B vers le Site A.
Pour que le routage des appels puisse être valable dans l’autre sens, du site B vers le Site A, il faudrait répéter les étapes 2 et 3 précédentes : d’une part établir une route sur le serveur du site B et “ouvrir” le serveur du Site A.
Par mesure de sécurité, il vaut mieux utiliser une autre configuration. Nous venons de démontrer l’usage dangereux de la directive allowguest=yes.
Exercice 2 : Configuration avec authentification et mot de passe.
Étape 1.
1.a. Le plus simple est de créer deux périphériques SIP aux noms identique et d’identifier leur adresse IP.
Sur le serveur du Site A dans le fichier /etc/asterisk/sip.conf :
[Trunk_AB] type=peer host=192.168.1.201 context=LocalSets ;username=Trunk_AB ; nom du périphérique distant (ici identiques) ;secret=test1234 ; secret partagé
Sur le serveur du Site B dans le fichier /etc/asterisk/sip.conf :
[Trunk_AB] type=peer host=192.168.1.200 context=LocalSets ;username=Trunk_AB ;secret=test1234
1.b. Vérifiez l’état du trunk dans la console Asterisk :
*CLI> sip show peers
Étape 2.
2.a. Il s’agit de modifier le plan d’appel dans /etc/asterisk/extensions.conf sur les deux serveurs, ajoutez la ligne dans le contexte des appels entrants [LocalSets] :
exten => _9XXX,1,Dial(SIP/Trunk_AB/${EXTEN:1})
2.b. Tentez de joindre le poste 100 ou 101 du Site B à partir d’un poste du Site A et inversement.
2.c. Comment devez-vous modifier votre configuration si vous nommez différemment les périphériques SIP du trunk ?
2.d. Comment sont traités les appels qui n’aboutissent pas ? Peut-on leur donner un autre traitement ?
Exercice 3. Configuration avec encryption.
Encryptez le trafic SIP et RTP : voir AsteriskTM: The Definitive Guide, Third Edition, p. 150 et suivantes.
Exercice 4. Configuration d’un Trunk IAX.
Voir http://www.voip-info.org/wiki/view/Asterisk+-+dual+servers
Mais aussi suivre le laboratoire proposé dans Learning Guide for Asterisk 1.6, mis gracieusement à notre disposition, chapitres 7 et 8.


