Pour diverses raisons, votre réseau téléphonique peut contenir plusieurs serveurs Asterisk.
Il sera alors nécessaire de les connecter, afin de permettre des appels entre eux.
Il s’agit là typiquement du genre de cas que l’on retrouve en dans les entreprises implantées sur plusieurs sites géographiques.
1) Topologie et fonctionnement
Commençons tout d’abord par voir une topologie type d’une interconnexion de plusieurs serveurs Asterisk.
Considérons une entreprise ayant deux agences.
Chaque site contient de nombreux postes téléphoniques.
L’idée est alors de permettre aux postes du site A, d’appeler les postes du site B.
Plusieurs solutions s’offrent à nous.
Premièrement, nous pouvons permettre à un site d’appeler certains postes de l’autre site.
Nous devrons donc choisir les postes pouvant être joints, puis créer des extensions en conséquence.
Par exemple, pour permettre au site A d’appeler le standard du site B, il nous faut créer une extension dans le DialPlan de l’Asterisk A, pointant vers l’Asterisk du site B.
Par exemple, si les utilisateurs du site A composent le 970, ils tombent sur le standard du site B.
La numérotation n’a pas obligation de correspondre entre les deux sites.
C’est-à-dire que le numéro du standard du site B n’est pas forcément 970.
Sur l’Asterisk A, nous aurons une extension de ce type :
exten => 970,1,Dial(IAX2/AST-SRV-2/100)
Ainsi, le numéro 970 permet en fait de joindre le poste 100 du site B.
Les deux sites peuvent donc utiliser le même plan de numérotation.
Avec cette solution, il faudra créer une extension par poste du site distant que l’on veut joindre.
La deuxième solution permet d’autoriser en masse les appels d’un site à un autre.
Pour cela, il faut que les plans de numérotation soient différents sur les sites.
Par exemple, le site A peut utiliser le range de numéros allant de 100 à 499, et le site B un range allant de 500 à 899.
Il nous suffira alors de créer une extension sur chaque site, pour permettre les appels distants.
Exemple pour le site A :
exten => _[5-8]XX,1,Dial(IAX2/AST-SRV-2/${EXTEN})
Ainsi, les appels pour le site B sont directement envoyés au serveur Asterisk B.
L’interconnexion entre les serveurs Asterisk se fera à l’aide du protocole IAX – Inter Asterisk eXchange.
Ce protocole permet de connecter deux serveurs Asterisk, afin de transporter la signalisation des appels, ainsi que la voix.
La communication entre les serveurs ne se fera donc pas par SIP + RTP, mais simplement par IAX.
Le fichier de configuration est donc tout naturellement iax.conf.
Bien entendu, le fichier extensions.conf contiendra les extensions permettant les appels vers le site distant.
2) Configuration IAX
Commençons donc par créer la connexion IAX entre les deux serveurs Asterisk.
Pour cela, entrer la configuration suivante dans le fichier iax.conf :
[general] register => AST-SRV-1:1234@192.168.1.213 [AST-SRV-2] type=friend host=dynamic trunk=yes secret=1234 context=interco-ast-2 qualify=yes
La ligne « register » permet à notre serveur Asterisk de s’authentifier sur le serveur distant.
AST-SRV-2 représente le login
1234 représente le MDP
S’en suit l’IP du serveur distant.
La partie suivante de la configuration permet d’autoriser le serveur distant à s’authentifier chez nous.
Il devra donc utiliser le login AST-SRV-1, avec le MDP 1234, ainsi que l’IP de notre serveur (ici 192.168.1.215).
Le champ host permet de définir un IP fixe ou dynamique pour le serveur distant.
Le champ contexte permet de choisir le contexte dans lequel les appels vont arriver.
A vous de choisir le contexte qui vous convient. Ici, j’ai choisi de créer un contexte spécifique pour l’interconnexion des deux serveurs (nous y reviendrons dans la partie suivante).
Enfin, le champ qualify permet de monitorer le statut de la connexion vers ce serveur.
La configuration du serveur B sera donc la suivante :
[general] register => AST-SRV-2:1234@192.168.1.215 [AST-SRV-1] type=friend host=dynamic trunk=yes secret=1234 context=interco-ast-1 qualify=yes
A présent, vous pouvez relancer votre serveur Asterisk, ou au moins le module IAX2.
asterisk –rvv iax2 reload
Sur les deux serveurs, vous devriez voir que la connexion est établie :
3) Configuration du DialPlan
A présent, nous devons configurer le DialPlan pour permettre le routage des appels entre les deux sites.
Voici tout simplement le type d’extension à mettre en place :
exten => _[5-9]XX,1,Dial(IAX2/AST-SRV-2/${EXTEN}) exten => _[5-9]XX,2,Playtones(congestion) exten => _[5-9]XX,3,Congestion()
Cette extension doit être mise en place au bon endroit.
L’idéal est donc de créer un contexte spécifique.
Voici ce que j’ai choisi de mettre en place :
[interco-ast-2] exten => _[5-8]XX,1,Dial(IAX2/AST-SRV-2/${EXTEN}) exten => _[5-8]XX,2,Playtones(congestion) exten => _[5-8]XX,3,Congestion() exten => _1[0-8]X,1,Goto(dept_1,${EXTEN},1) exten => _2[0-8]X,1,Goto(dept_2,${EXTEN},1)
Dans ce contexte, nous retrouvons le routage des appels vers le site distant, ainsi que le routage des appels vers les bons contextes internes.
Ensuite, il faut envoyer dans ce contexte les appels vers les sites distants.
[dept_1] exten => _[5-8]XX,1,Goto(interco-ast-2,${EXTEN},1) [dept_2] exten => _[5-8]XX,1,Goto(interco-ast-2,${EXTEN},1)
Voici maintenant la configuration du site distant :
[interco-ast-1] exten => _[1-4]XX,1,Dial(IAX2/AST-SRV-1/${EXTEN}) exten => _[1-4]XX,2,Playtones(congestion) exten => _[1-4]XX,3,Congestion() exten => _5[0-8]X,1,Goto(dept_5,${EXTEN},1) exten => _6[0-8]X,1,Goto(dept_6,${EXTEN},1) [dept_5] exten => _[5-8]XX,1,Goto(interco-ast-1,${EXTEN},1) [dept_6] exten => _[5-8]XX,1,Goto(interco-ast-1,${EXTEN},1)
A présent, les utilisateurs du site A peuvent appeler les utilisateurs du site B.
En cas d’ajout de nouveaux contextes, il faudra ajuster la configuration.
vous expliquer bien…je vais essayer tes configurations…est ce qu’on peut interconnecter autant de serveur qu’on veut si oui comment sinon pourquoi?
Bonjour, oui on peut connecter plus de deux serveurs Asterisk
Bonjour, moi j’utilise elastix 4.0, comment proceder? je configure pour trois site.
Bonjour,
Je ne connais pas Elastix, mais vous trouverez surement des informations sur internet
Bonjour,
Tout d’abord je vous remercie pour la clarté de votre tuto.
J’aimerais savoir si pouvez faire un tuto sur la configuration d’asterisk pour recevoir des appels externes.
-Je suis sur un réseau local avec un serveur
-Les appels internes marchent très bien
-J’ai un live-box qui me permet d’accéder à internet avec une ligne extérieure.
– J’aimerais maintenant faire une configuration entre mon serveur Asterisk et ma live-box de telle sorte que je puisse recevoir des appels externes et vice versa.
Merci!!!!
Bonjour,
Vous trouverez un exemple ici :
https://www.networklab.fr/liaison-itsp/
bonsoir ,Merci pour l’explication
bonsoir ,
svp, vous pouvez me proposer une solution comment relier le routeur de site A avec le routeur de site B s’émulera sur deux laptop (gns3)
Bonjour,
Tout dépend de comment vos sites sont séparés.
Si vous avez un lien réseau entre les deux sites, il vous suffit de mettre en place du routage sur les deux routeurs, de manière à ce que chaque routeur connaisse la route vers le réseau du site distant.
Pour la configuration du routage dynamique, vous trouverez des articles ici : https://www.networklab.fr/category/ccnp_routing/
Si vos deux sites sont reliés à internet, vous pouvez mettre en place un VPN entre les deux routeurs.
Je n’ai pas d’article détaillant la configuration d’un VPN sur des routeurs Cisco. En revanche j’ai un article qui détaille la configuration sur un Firewall Cisco ASA.
https://www.networklab.fr/cisco-asa-site-to-site-vpn/
bonsoir ,
tout d’abord merci beaucoup pour votre repense
dans ma topo j’ai relier mes deux routeurs de gns3 avec un câble croisé grâce a les interfaces eth0 du cloud, Le ping entre les deux pc physique sa marche normale
Mon problème ces que le ping entre les deux routeur des fois sa marche normal des fois sa marche pas malgré que j’ai désactiver tous les pare-feu
Si le problème est aléatoire, sans que la configuration change, il s’agit peut être d’un Bug de GNS3.
En revanche, si la configuration change, il faut voir quelle modification impacte le fonctionnement.
Tout d’abord je vous remercie pour la clarté de votre tuto.
J’aimerais savoir si pouvez faire un tuto sur la configuration d’asterisk pour émettre des appels externes.
Bonjour
est ce qu on peut faire de la visioconference avec asterix
Bonjour, oui c’est possible, mais je n’ai jamais testé
Bonjour
doit t-on d’abord faire une configuration sur le pc pour interconnecter les deux serveurs ? j’ai configuré le fichier iax comme vous l’avez mentionner mais quand je fait iax show peers le statu reste unknown des solutions ?
La configuration est à faire sur les 2 serveurs. Et le flux ne doit pas être bloqué (attention aux Firewall).
Mais attention, l’article n’est plus forcement à jour. De mémoire le protocole est maintenant iax2.
Donc je dois passer par le iax trunk et non pas le sip
Salut,comment interconnecter deux serveurs trixbox distants?
Bonjour,
désolé, je ne peux pas vous aider, je ne connais pas les serveurs trixbox.
Bonjour je ne sais pas si on verra mon message, mais quelle serait la configuration du sip trunk de « secours » dont il est question pour éviter la concurrence entre les deux trunks ?
merci d’avance et merci beaucoup pour vos riches articles
Bonjour,
Désolé, je n’ai jamais mis en place ce genre de config.