Asterisk IAX
.:[ Asterisk IPBX ]:.
Inter-Asterisk eXchange | MOH Musique d'Attente
|
Cet {{{1}}} est en cours de rédaction. |
Présentation
Le protocol IAX
IAX est un protocole de communication propre à l'échange de données entre plusieurs serveurs Asterisk.
Fonctionnement
Dans une architecture composée d'un seul serveur Asterisk, tous les postes sont enregistrés sur ce même serveur et peuvent se joindre entre eux. Si un second serveur est déployé, les postes du serveur A ne pourront pas joindre les poste du serveur B car ils sont enregistrés sur un serveur différent. Dans ce cas, il faut établir deux truncks : le premier du server A vers le serveur B et le second du serveur B vers le serveur A. Ainsi, les deux serveur pourront s'échanger les appels. Pour mettre en place un trunck inter-Asterisk, il faut utiliser le protocol IAX qui peut être géré dans le fichier de configuration /etc/asterisk/iax.conf.
Etude de cas
Cahier des charges
Configuration du serveur A
Pour être acheminé du serveur A au serveur B et réciproquement, les serveurs doivent disposer :
- d'un compte trunck pour chacun des serveurs;
- d'une ligne register pour s'authentifier sur le serveur.
Création du compte trunck pour la connexion du serveur A
Ce compte va permettre au serveur B d'acheminer les appels à destination du serveur A. La ligne register permet d'établir le compte trunck avec le serveur B qui va être crée par la suite. Ainsi le serveur B autorisera la serveur A à transmettre également ses appels.
[general] autokill=yes register => servera:password@192.168.104.112 [serverb] ; compte trunck type=friend host=dynamic trunk=yes secret=password context=planinterne deny=0.0.0.0/0.0.0.0 permit=192.168.104.112/255.255.255.255
Adaptation du dialplan
[general] static=yes writeprotect=no autofallthrough=yes clearglobalvars=no priorityjumping=no language=fr [globals] CONSOLE=Console/dsp IAXINFO=servera TRUNK=Zap/g2 TRUNKMSD=1 [telephone] ; contexte des postes internes include => planinterne include => planserverb
[planinterne] ; appels internes exten => _7XXX,1,Answer() exten => _7XXX,n,Dial(SIP/${EXTEN}) exten => _7XXX,n,Hangup() [planserverb] ; appels sur le serveur b exten => _2XXX,1,Answer() exten => _2XXX,n,Dial(IAX2/serverb/${EXTEN}) exten => _2XXX,n,Hangup()
On crée deux nouveaux contextes :
- telephone : qui sera affecté aux postes téléphoniques depuis le fichier /etc/sip.conf et qui regroupe les contextes planinterne et planserverb;
- planservb : transfert les appels dont le numéro commence par 2 suivit de 4 chiffre au serveur b. Ceci correspond au plan de numérotation interne du serveur b.
Configuration du serveur B
Création du compte trunck pour la connexion du serveur B
[general] autokill=yes register => serverb:password@192.168.104.146 [servera] ; compte trunck type=friend host=dynamic trunk=yes secret=password context=planinterne deny=0.0.0.0/0.0.0.0 permit=192.168.104.146/255.255.255.255