Asterisk – Introduzione ad Dialplan [quarta parte]
Le istruzioni/strutture principali che permettono di creare un Dialpaln sono:
– Contesti
– Estensioni
– Priorità
– Applicazioni
NB: Il dialplan di Asterisk è contenuto nel file principale di tutto il sistema che è extensions.conf
I contesti
I contesti suddividono il dialplan in varie sezioni.
Nota Bene –> Asterisk identifica i tipi d’interfaccia sui quali si può telefonare con il termine canal, canale. Un canale può essere, per esempio, l’interfaccia ISDN (es. chan_dahdi.conf) o l’interfaccia Ethernet per il VoIP (es. sip.conf). La configurazione dei canali è fatta con dei file di configurazione *.conf, che si trovano nella directory /etc/asterisk. Nei vari canali, in base al flusso di ingresso, si può scegliere con quale contesto – presente nel file extension.conf – tale flusso deve essere gestito. (Questo argomento verrà ripreso successivamente).
Il nome di ogni contesto è racchiuso tra parentesi quadre. E’ possibile includere un contesto dentro l’altro utilizzando la funzione include. Es
[users] ; questo è il contesto users
exten => 6001,1,Dial(SIP/6001,20)
exten => 6002,1,Dial(SIP/6002,20)
include => features ; in questo modo includo il contesto features dentro il contesto users
[features]
exten => 6003,1,Dial(SIP/6003,20)
exten => 6004,1,Dial(SIP/6004,20)
Le estensioni
L’estensione (a differenza di quanto accade per un centralino standard) in Asterisk può essere condiderata come un insieme di azioni associate ad un nome
Sintassi:
exten => name, priority, application
exten => : definisco un estensione
name : il nome dell’estensione può essere numerico od alfanumerico
priority : numero sequenziale
application : azione
La priorità
La priorità è essenzialmente un numero sequenziale. Ciascuno step viene processato in ordine sequenziale
exten => 123,1, do something
exten => 123,2, do something else
exten => 123,3, do something different
Quando Asterisk termina di processare tutte le righe riaggancia la chiamata (auto-failthrough)
Dopo la priorità 1 (OBBLIGATORIA) posso mettere la priorità n che si incrementa automaticamente:
exten => 123,1, do something
exten => 123,n, do something else
exten => 123,n(label), do something different
NB: ad ogni n posso associare un etichetta (o label)
Le Applcazioni
Ciascuna priorità invoca un applicazione. Vediamone alcune
Answer() : apre il canale di comunicazione (risponde)
PlayBack() : fa ascoltare un suono che gli passo come argomento e ignora i DTMF. Di default risponde pure alla chiamata. La cartella in cui va a cercare il nome file passato come argomento è /var/lib/asterisk/sounds
NB: se voglio sentire i file in italiano devo modificare in sip.conf la riga language (nella sezione [default] in questo modo: language=it. Naturalmente dovrò a questo punto avere i file in italiano nella directory /var/lib/asterisk/sounds/it. Usare channel(language=it) per cambiare linguaggio dal Dialplan.
Progress() : manda un messaggio al chiamante senza rispondere (quindi tassare) alla chiamata.Può essere usata se l’operatore TELCO lo permette
Hangup() : butta giù la chiamata
Creiamo un dialplan che risponde ad un interno, faccia il play di un file audio e riaggancia la chiamata
extensions.conf
;*******************************************
;*** GLOBAL SETTING FOR EXTENSION[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no;*******************************************
;*** GLOBAL SETTING FOR variables[globals]
;*******************************************
;*** EXTENSION CONTEXT[users]
exten => 6001,1,Dial(SIP/6001,20)
exten => 6002,1,Dial(SIP/6002,20)
;exten => _600x,1,Dial(SIP/${EXTEN},20)
include => features[features]
exten => 6599,1,Answer()
exten => 6599,2,Playback(hello-world)
exten => 6599,3,wait(2)
exten => 6599,4,Playback(good-evening)
exten => 6599,5,Hangup()
Ricordarsi sempre di ricaricare il file extensions.conf
# asterisk -vvvr
CLI> dialplan reload
Per vedere se Asterisk a caricato il nuovo dialpan:
CLI> dialplan show 6599@features
Recent Comments