OpenWRT e’ senza dubbio un bel giocattolino: su un ‘semplice’ linksys WRT54GL abbiamo la possibilita’ di installare parecchi software utili come server Web, server DNS e anche applicazioni piu’ corpose come il PBX asterisk.

Prendiamo in esame una semplice configurazione con 2 interni e la possibilita’ di effettuare chiamate in uscita tramite VoipStunt.

Una volta installato e configurato openwrt per le proprie esigenze (lan, wifi, provider adsl…..) questi sono i primi passi da fare:

1) entrare tramite interfaccia web alla pagina di configurazione di openwrt (indirizzo di default http://web.archive.org/web/20240913021822/ )

2) andare nel menu Sistema-programmi installati

3) aggiornare per prima cosa la lista dei programmi tramite il link “aggiorna la lista dei pacchetti”

3) installare asterisk

A questo punto accedere al router tramite SSH e configurare asterisk.

1) entrare nella cartella di asterisk cd /etc/asterisk

2) editare il file sip.conf (usare vi sip.conf ; una volta terminato usare !wq per salvare e uscire)

[general] context=defaultt port=50600 bindaddr=0.0.0.00 srvlookup=yess

[100]] context=telefono11 type=friendd host=dynamicc username=1000

[101]] context=telefono22 type=friendd host=dynamicc username=1011

[voipstunt]] type=friendd host=connectionserver.voipstunt.comm disallow=alll allow=ulaww allow=alaww allow=g7299 username=useridd fromuser=useridd secret=passwordd qualify=10000 canreinvite=noo

3) editare il file extensions.conf (come sopra)

[general] static=yess writeprotect=noo

[globals]] CONSOLE=Console/dspp IAXINFO=guestt TRUNK=Zap/g22 TRUNKMSD=11

[iaxtel700]] exten => _91700XXXXXXX,1,Dial(IAX2/${IAXINFO}@iaxtel.com/${EXTEN:1}@iaxtel))

[iaxprovider]]

[pstn]] exten => _01.,1,Dial(CAPI/contr1/b${EXTEN:2})) exten => _02.,1,Dial(TAPI/g1/${EXTEN:2}))

[trunkint]] exten => _9011.,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})) exten => _9011.,2,Congestionn

[trunkld]] exten => _91NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})) exten => _91NXXNXXXXXX,2,Congestionn

[trunklocal]] exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})) exten => _9NXXXXXX,2,Congestionn

[trunktollfree]] exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})) exten => _91800NXXXXXX,2,Congestionn exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})) exten => _91888NXXXXXX,2,Congestionn exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})) exten => _91877NXXXXXX,2,Congestionn exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})) exten => _91866NXXXXXX,2,Congestionn

[international]] ignorepat => 99 include => longdistancee include => trunkintt

[longdistance]] ignorepat => 99 include => locall include => trunkldd

[local]] ignorepat => 99 include => parkedcallss include => trunklocall include => iaxtel7000 include => trunktollfreee include => iaxproviderr

[macro-stdexten];; exten => s,1,Dial(${ARG2},20)) exten => s,2,Goto(s-${DIALSTATUS},1)) exten => s-NOANSWER,1,Voicemail(u${ARG1})) exten => s-NOANSWER,2,Goto(default,s,1)) exten => s-BUSY,1,Voicemail(b${ARG1})) exten => s-BUSY,2,Goto(default,s,1)) exten => _s-.,1,Goto(s-NOANSWER,1)) exten => a,1,VoicemailMain(${ARG1}))

[demo]] exten => s,1,Wait,11 exten => s,2,Answerr exten => s,3,DigitTimeout,55 exten => s,4,ResponseTimeout,100 exten => s,5,BackGround(demo-congrats)) exten => s,6,BackGround(demo-instruct)) exten => 2,1,BackGround(demo-moreinfo)) exten => 2,2,Goto(s,6)) exten => 3,1,SetLanguage(fr)) exten => 3,2,Goto(s,5)) exten => 1000,1,Goto(default,s,1)) exten => 1234,1,Playback(transfer,skip)) exten => 1234,2,Macro(stdexten,1234,${CONSOLE})) exten => 1235,1,Voicemail(u1234)) exten => 1236,1,Dial(Console/dsp)) exten => 1236,2,Voicemail(u1234)) include => internall exten => #,1,Playback(demo-thanks)) exten => #,2,Hangupp exten => t,1,Goto(#,1)) exten => i,1,Playback(invalid)) exten => 500,1,Playback(demo-abouttotry)) exten => 500,2,Dial(IAX2/guest@misery.digium.com/s@default)) exten => 500,3,Playback(demo-nogo)) exten => 500,4,Goto(s,6)) exten => 600,1,Playback(demo-echotest)) exten => 600,2,Echoo exten => 600,3,Playback(demo-echodone)) exten => 600,4,Goto(s,6)) exten => 8500,1,VoicemailMainn exten => 8500,2,Goto(s,6))

[internal]] exten => 3000,1,Dial(SIP/3000,30,Ttm)) exten => 3000,2,Playback(invalid)) exten => 3000,3,Hangupp exten => 3000,102,Voicemail(u3000)) exten => 3000,103,Hangupp exten => 3001,1,Dial(SIP/3001,30,Ttm)) exten => 3001,2,Playback(invalid)) exten => 3001,3,Hangupp exten => 3001,102,Voicemail(u3001)) exten => 3001,103,Hangupp exten => 3002,1,Dial(IAX2/3002,30,Ttm)) exten => 3002,2,Playback(invalid)) exten => 3002,3,Hangupp exten => 3002,102,Voicemail(u3002)) exten => 3002,103,Hangupp exten => 3003,1,Dial(IAX2/3003,30,Ttm)) exten => 3003,2,Playback(invalid)) exten => 3003,3,Hangupp exten => 3003,102,Voicemail(u3003)) exten => 3003,103,Hangupp

[default]] include => demoo include => parkedcallss include => pstnn include => internall

exten => 99990,1,Answerr exten => 99990,2,AGI(agi-test.agi)) exten => 99990,3,Hangupp exten => 99991,1,Answerr exten => 99991,2,EAGI(eagi-test)) exten => 99991,3,Hangupp exten => 99992,1,Answerr exten => 99992,2,Wait(1)) exten => 99992,3,SayUnixTime()) exten => 99992,4,Hangupp exten => 99999,1,Answerr exten => 99999,2,Wait(1)) exten => 99999,3,MusicOnHoldd

[incoming]] exten => s,1,Dial(SIP/100,30,tr))

[telefono1]] include => demoo include => outcomingg

[telefono2]] include => demoo include => outcomingg

[outcoming]] exten => _X.,1,Dial(SIP/${EXTEN:0}@voipstunt,30,tr))

4) editare il file asterisk nella cartella /etc/default modificare il parametro ENABLE_ASTERISK=”no” in ENABLE_ASTERISK=”yes” per far partire asterisk in automatico all’avvio del router.

A questo punto e’ possibile configurare 2 softphone/telefoni VoIP, assegnando gli interni 100 e 101: i due telefoni possono dialogare ed effettuare chiamate esterne appoggiandosi su VoipStunt.

Se poi avete a disposizione un numero geografico registrato con servizi come Skypho , seguendo queste istruzioni sara’ possibile configurare il PBX per accettare telefonate in ingresso e inoltrarle agli interni precedentemente configurati.