Interconnexion de serveurs Asterisk

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.

Topologie Asterisk Multi-Site

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.

Topologie Asterisk Multi-Site

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 :

iax2 show peers

iax2 show peers

 

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.

 

Tagués avec : ,
Publié dans Interconnexion Asterisk
21 commentaires pour “Interconnexion de serveurs Asterisk
  1. CONTE dit :

    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?

  2. jean-paul dit :

    Bonjour, moi j’utilise elastix 4.0, comment proceder? je configure pour trois site.

  3. Berthoza dit :

    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!!!!

  4. Diallo dit :

    bonsoir ,Merci pour l’explication

  5. Metri dit :

    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)

    • Valentin Weber dit :

      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/

  6. Metri dit :

    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

    • Valentin Weber dit :

      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.

  7. ndiaye dit :

    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.

  8. papa seck dit :

    Bonjour
    est ce qu on peut faire de la visioconference avec asterix

  9. lahceni dit :

    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 ?

    • Valentin Weber dit :

      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.

  10. missengue dit :

    Salut,comment interconnecter deux serveurs trixbox distants?

  11. battilana dit :

    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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.