fbpx

Installazione e Configurazione Asterisk PBX + IaxModem + Hylafax Server (3a parte)

Domande degli utenti: [Asterisk] interno esterno che non possa chiamare esterno :-)
Aprile 6, 2013
10 Siti Web dove puoi scaricare gratuitamente fotografie ed immagini
Aprile 9, 2013

Ed ecco che continua la nostra avventura nella configurazione di Asterisk, per chi è la prima volta che visita questa guida, i precedenti articoli sono :

Installazione e Configurazione Asterisk PBX + IaxModem + Hylafax Server (1a parte)

Installazione e Configurazione Asterisk PBX + IaxModem + Hylafax Server (2a parte)

Quello che faremo oggi è::

  • Configureremo due linee Voip, una per le chiamate voce ed una per i fax
  • Creeremo il dialplan per ricevere ed effettuare chiamate dagli interni
  • Configureremo il modem per la ricezione dei fax ed il relativo inoltro via email ad un indirizzo predefinito (bisogna aver installato un mailserver, Es. Postfix)
  • Aggiungeremo una musica di attesa al posto dell’anonimo squillo libero

Come per la guida precedente tutti i file che andremo a modificare sono contenuti nella seguente cartella /etc/asterisk/ e vi consiglio di effettuare una copia di backup dei file che andremo a modificare così da averne sempre anche una copia di riserva nel caso qualcosa vada storto.

Cominciamo subito!

Configurazione Linee Voip

Per chi non avesse ancora una linea voip ci sono diversi provider in rete che offrono delle linee gratuite per poter ricevere ed effettuare chiamate, per una lista di altri provider utilizziamo il nostro migliore amico: Google.

Io ho scelto il servizio offerto da Messagenet.

1 – Apriamo quindi il file /etc/asterisk/sip.conf ed aggiungiamo in fondo al file quanto segue:

[provider-voce]
type=friend
host=sip.messagenet.it ;(inserite i dati comunicatovi dal provider che avete scelto)
fromuser=NOME_UTENTE ;(inserite i dati comunicatovi dal provider che avete scelto)
secret=PASSWORD ;(inserite i dati comunicatovi dal provider che avete scelto)
callbackextension=from-provider-voce
transport=udp
context=from-provider-voce
defaultuser=NOME_UTENTE ;(inserite i dati comunicatovi dal provider che avete scelto)
fromdomain=sip.messagenet.it ;(inserite i dati comunicatovi dal provider che avete scelto)
port=5061 ;(inserite i dati comunicatovi dal provider che avete scelto)
qualify=yes ;(inserite i dati comunicatovi dal provider che avete scelto)
insecure=invite,port ;(inserite i dati comunicatovi dal provider che avete scelto)
nat=force_rport ;(se siete sotto NAT)
language=it
t38pt_udptl=yes
disallow = all
allow = ulaw
allow = alaw

[provider-fax]
type=friend
host=sip.messagenet.it ;(inserite i dati comunicatovi dal provider che avete scelto)
fromuser=NOME_UTENTE ;(inserite i dati comunicatovi dal provider che avete scelto)
secret=PASSWORD ;(inserite i dati comunicatovi dal provider che avete scelto)
callbackextension=from-provider-fax
transport=udp
context=from-provider-voce
defaultuser=NOME_UTENTE ;(inserite i dati comunicatovi dal provider che avete scelto)
fromdomain=sip.messagenet.it ;(inserite i dati comunicatovi dal provider che avete scelto)
port=5061 ;(inserite i dati comunicatovi dal provider che avete scelto)
qualify=yes ;(inserite i dati comunicatovi dal provider che avete scelto)
insecure=invite,port ;(inserite i dati comunicatovi dal provider che avete scelto)
nat=force_rport ;(se siete sotto NAT)
language=it
t38pt_udptl=yes,redundancy,maxdatagram=400
dtmfmode=auto
disallow=all
allow=ulaw
allow=alaw

Abbiamo inserito un paio di voci che non avevamo ancora visto, nel dettaglio:

callbackextension=from-provider-voce è l’estensione del dialplan che utilizzeremo per ricevere le chiamate

context=from-provider-voce è il contesto del dialplan che useremo per ricevere le chiamate

t38pt_udptl = abilitiamo la ricezione dei fax attraverso il protocollo t.38, maggiori informazioni sono presenti in questa pagina

dtmfmode = dichiariamo la codifica dei toni audio, maggiori informazioni sono presenti in questa pagina

2 – a questo punto possiamo salvare il file sip.conf, entrare nella CLI di Asterisk e ricaricare il file sip.conf attraverso il comando “sip reload”. In seguito vediamo se Asterisk di registra ai provider attraverso il comando “sip show registry”, il risultato dovrebbe essere simile al seguente:

centralino*CLI> sip reload
Reloading SIP
centralino*CLI> sip show registry
Host                                          dnsmgr      Username                        Refresh              State                     Reg.Time
sip.messagenet.it:5060       N                 NOME_UTENTE       105                     Registered           Sat, 06 Apr 2013 20:02:05
sip.messagenet.it:5060       N                 NOME_UTENTE       105                     Registered           Sat, 06 Apr 2013 20:02:05
2 SIP registrations.
centralino*CLI>

Se risultano entrambe in stato “registered” vuol dire che tutto è andato per il verso giusto, in alternativa vi consiglio di controllare eventuali errori di battitura o la correttezza dei parametri dei vostri provider

Configurazione Modem

3 – Ora dobbiamo aggiungere il nostro modem (precedentemente creato) ad Asterisk, per fare questo apriamo il file /etc/asterisk/iax.conf e modifichiamolo come segue:

[general]
bindport=4569
bindaddr=0.0.0.0
language=it
bandwidth=low
disallow=all
;allow=all
;disallow=g723.1
;disallow=lpc10
;allow=g729
;allow=gsm
allow=alaw
allow=ulaw

ed inseriamo in fondo al file il nuovo modem, i parametri che ho inserito sono gli stessi che avevamo inserito nel file /etc/iaxmodem/ttyIAX1 nella prima parte della guida:

[iaxmodem1]

type=friend
context=from-fax
disallow=all
allow=alaw
username=iaxmodem1
secret=mia_password
qualify=yes
notransfer=yes
host=dynamic
callerid=Mio Fax
requirecalltoken=no
insecure=invite,port
port=4570

4 – salviamo quindi il file, colleghiamoci alla CLI di asterisk e ricarichiamo il file iax.conf attraverso il comando “iax2 reload”. In seguito vediamo se Asterisk vede il nostro modem attraverso il comando “iax2 show peers”, il risultato dovrebbe essere simile al seguente:

centralino*CLI> iax2 show peers
Name/Username                   Host                       Mask                               Port          Status               Description
iaxmodem1/iaxmo                127.0.0.1 (D)       255.255.255.255         4570         OK (3 ms)
1 iax2 peers [1 online, 0 offline, 0 unmonitored]
centralino*CLI>

Riepilogando fin’ora abbiamo configurato due provider voip per le chiamate in ingresso ed in uscite ed il modem per la ricezione dei fax. Per rendere tutto funzionante dobbiamo solo andare ad aggiungere le voci del dialplan diciendo così ad Asterisk cosa deve fare.

Configurazione Dialplan

5 – Apriamo il file /etc/asterisk/extensions.conf e aggiungiamo le seguenti linee per configurare le chiamate in ingresso:

[from-provider-voce]

;—— CHIAMATE DA LINEA VOCE ———

exten => from-provider-voce,1,Dial(SIP/6000,20)
exten => from-provider-voce,n,Voicemail(6000@voicemail-internal)
exten => from-provider-voce,n,Hangup

[from-provider-fax]

;—— CHIAMATE DA LINEA FAX ———

exten => from-provider-fax,1,Dial(IAX2/iaxmodem1)
exten => from-provider-fax,n,Hangup()

Nel dettaglio non abbiamo fatto altro che dire ad Asterisk:

Se arriva una chiamata Voce (from-provider-voce) -> chiama l’interno 6000 per 20 secondi-> se è occupato o non disponibile la chiamata verrà passata alla casella vocale -> Termina la chiamata

Se arriva una chiamata Fax (from-provider-fax) -> chiama il modem e da questo punto in poi il modem farà tutto in automatico -> Termina la chiamata

Salviamo il file extensions.conf e ricarichiamo il dialplan con il comando “dialplan reload”, proviamo quindi a chiamare i due provider, su uno suonerà un interno, sul secondo partirà il fax.

Ora dobbiamo permettere agli interni di effettuare chiamate in uscita per i due provider, ipotizziamo che l’interno 6000 e 6001 siamo dedicati alla voce e l’interno 6002 sia dedicato al fax. Riapriamo quindi il file /etc/sip.conf e modifichiamo il contesto dell’interno 6002 da “from-internal” a “from-internal-fax”:

[6002] ;(numero dell’interno)
type = friend ;(friend = può ricevere ed effettuare chiamate, peer = può solo riceverle)
callerid = Interno 6002 ;(nome che verrà visualizzato da chi riceve la chiamata)
secret = MIA_PASSWORD ;(impostiamo una password per il collegamento)
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = 6002 ;(il numero della voicemail, la vedremo dopo)
disallow = all ;(anche in questo caso possiamo dichiarare i codec che l’interno può usare)
allow = ulaw
allow = alaw
transport = udp ;(udp o tcp)
context=from-internal-fax ;(nome del contesto nel dialplan, lo vedremo dopo)
language=it ;(lingua delle voci registrate per l’interno, possiamo tranquillamente ometterlo se vogliamo)

Salviamo il file ed apriamo il file /etc/asterisk/extensios.conf e modifichiamo il contesto from-internal che avevamo creato nel precedente articolo:

[from-internal]

;—— CHIAMATE VOCE INTERNI ———

exten => 6000,1,Dial(SIP/6000,20)
exten => 6000,n,Voicemail(6000@voicemail-internal)
exten => 6000,n,Hangup()

exten => 6001,1,Dial(SIP/6001,20)
exten => 6001,n,Voicemail(6001@voicemail-internal)
exten => 6001,n,Hangup()

exten => _X.,1,Dial(SIP/provider-voce/${EXTEN})
exten => _X.,n,Hangup()

[from-internal-fax]

exten => _X.,1,Dial(SIP/provider-fax/${EXTEN})
exten => _X.,n,Hangup()

Che cosa abbiamo fatto?

Nel contesto from-internal abbiamo eliminato l’interno 6002 ed abbiamo aggiunto la regola per le chiamate in uscita provenienti dagli interni 6000 e 6001, la sintassi che abbiamo utilizzato prevede che per qualsiasi numero chiamato (ad eccezione dei due interni) la telefonata venga effettuata utilizzando il provider-voce.

Abbiamo aggiunto poi il contesto from-internal-fax ed abbiamo aggiunto la regola per le chiamate in uscita provenienti dall’interno 6002, la sintassi che abbiamo utilizzato prevede che per qualsiasi numero chiamato la telefonata venga effettuata utilizzando il provider-fax.

Configurazione Hylafax

Perfetto, ora abbiamo le chiamate in ingresso ed in uscita perfettamente funzionanti ma una domanda sorge spontanea …. dove sono i fax che ci arrivano??

Infatti non abbiamo ancora configurato Hylafax per fare in modo che ci invii i fax via email in pdf, e per il momento si limita a salvarli in formato TIFF nella seguente cartella /var/spool/hylafax/etc/recvq/. Ovviamente in questo modo dovremmo ogni volta andare a vedere nella cartella se sono arrivati fax il che non è molto funzionale! Andiamo quindi a modificare le impostazioni di Hylafax!

6 – Creiamo il nuovo file /var/spool/hylafax/etc/FaxDispatch (è importante che sia chiamato esattamente così) ed scriviamo le seguenti istruzioni:

SENDTO=ricevente_fax@mioserver.com
FILETYPE=pdf (se vogliamo l’allegato in PDF, se non lo impostiamo ci verranno inviati in formato TIFF)
TEMPLATE=it (la lingua che verrà utilizzata per il template della email)

Salviamo il file e riavviamo Hylafax, da questo momento tutti i fax ci arriveranno via email all’indirizzo che abbiamo indicato in formato PDF.

Impostazione Voci in italiano

7 – Ora abbiamo un sistema perfettamente funzionante, ci manca solo da impostare la lingua italiana e da aggiungere una musica di attesa così da sorprendere chi ci chiama.

Tutti i suoni di Asterisk sono contenuti nella cartella /var/lib/asterisk/sounds, l’installazione di base prevede solo i file in lingua inglese (contenuti nella cartella “en”), quindi per impostare l’italiano scarichiamo il set di voci in italiano da qui.

Estraiamo la cartella “it” in  /var/lib/asterisk/sounds/it/ e riavviamo Asterisk da terminale “service asterisk restart”. In questo modo avremo le voci in italiano (es. quando risponde la voicemail).

Impostazione Musica di attesa

8 – Per ultimo impostiamo la musica di attesa, quindi creiamo una cartella in /var/lib/asterisk/musica_attesa/, questa sarà la cartella ove inseriremo la nostra musica di attesa personalizzata.

Le impostazioni della musica di attesa sono contenute nel file /etc/asterisk/musiconhold.conf, apriamolo ed aggiungiamo un contesto “attesa” ed il percorso della nostra cartella:

[attesa]
mode=files
directory=/var/lib/asterisk/musica_attesa

I file della musica di attesa devono essere in formato wav mono a 8KHz oppure in formato GSM.

Per convertire un MP3 nel formato wav possiamo usare il software “mpg123” (apt-get install mpg123) attraverso il comando

mpg123 -m -r 8000 -w mio_file.wav mio_file.mp3

salviamo quindi il nostro nuovo file nella cartella /var/lib/asterisk/musica_attesa/mio_file.wav e riavviamo asterisk.

Ora modifichiamo il contesto “from-provider-voce” nel dialplan ed aggiungiamo la musica di attesa:

exten => from-provider-voce,1,Dial(SIP/6000,20,m(attesa))
exten => from-provider-voce,n,Voicemail(6000@voicemail-internal)
exten => from-provider-voce,n,Hangup

In questo modo chi ci chiama ascolterà la musica da noi scelta al posto dello squillo standard.

Come sempre, per chiarimenti, informazioni o suggerimenti scrivetemi.

Top