Qualche giorno fa mi è venuta l’idea di collegare un centralino asterisk che ho in ufficio e che uso come test con il mio centralino di casa.
Allora pongo la domanda al mio caro amico Walter esperto di Asterisk e lui mi risponde cosi:

Certo che si può fare (a patto che i centralini da collegare abbiano una connessione adsl, o comunque a banda larga)
basta usare IAX che è il protocollo di interconnessione nativo di asterisk.
Poi mi spiegava che questo protocollo ha una serie di vantaggi in confronto al piu tiffuso dei protolli.. SIP

1) può incapsulare tutto il traffico in un unico canale
2) usa una sola porta di comunicazione
3) l’attraversamento delle NAT è nativo, e non da problemi
4) permette di selezionare il punto di arrivo nel dialplan di destinazione sin dall’origine
5) permette l’autenticazione su chiave pubblica

comunque tante altre piccole funzionalità che nell’insieme lo rendono imbattibile.

Mi sono studiato la configurazione e alla fine non è stata molto difficile.
Veniamo al sodo abbiamo due centralini (Hardy e Karmic in perfetto stile Ubuntu) di cui vado ad illustrare iax.conf:

Hardy
iax.conf:
[general]

bindport=4569
bindaddr=0.0.0.0
language=it
bandwidth=medium
disallow=all
allow=gsm
allow=g729
allow=alaw
jitterbuffer=no
forcejitterbuffer=no
autokill=yes
requirecalltoken=no
mailboxdetail=yes
minregexpire=360
maxregexpire=3600

[karmic]
type=friend
username=ubuntu
secret=linux
auth=plaintext
host=karmic.mydomain.it
context=fromiax
peercontext=fromiax
qualify=yes
transfer=yes

Karmic
iax.conf:
[general]

bindport=4569
bindaddr=0.0.0.0
language=it
bandwidth=medium
disallow=all
allow=gsm
allow=g729
allow=alaw
jitterbuffer=no
forcejitterbuffer=no
autokill=yes
requirecalltoken=no
mailboxdetail=yes
minregexpire=360
maxregexpire=3600

[hardy]
type=friend
username=ubuntu
secret=linux
auth=plaintext
host=hardy.mydomain.it
context=fromiax
peercontext=fromiax
qualify=yes
transfer=yes

Le righe da inserire in extensions.conf a questo punto sono abbastanza semplici e logiche;

Hardy
extensions.conf
[uscita]
exten => _88XXX,1,Dial(IAX2/karmic/${EXTEN:2})

[...]

[fromiax]
exten => _X.,1,Set(CALLERID(name)=Karmic)
exten => _X.,n,Goto(interni,${EXTEN},1)

Karmic
extensions.conf
[uscita]
exten => _88XXX,1,Dial(IAX2/hardy/${EXTEN:2})

[...]

[fromiax]
exten => _X.,1,Set(CALLERID(name)=Hardy)
exten => _X.,n,Goto(interni,${EXTEN},1)

Come potete vedere nel primo esempio per chiamare un interno remoto basta seleziona 88 + l’interno, mentre il secondo esempio è la rotta in entrata che cambia il Caller ID per distinguere chi chiama, e poi inoltra la chiamata nel contesto interni che è il contesto in cui si trovano i miei interni.

Spero possa essere utile a molti.

By

Frank