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
2 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?

Laisser un commentaire

Votre adresse de messagerie 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.