Home > Articolo Tecnico, Software > Asterisk – Introduzione ad Dialplan [quarta parte]

Asterisk – Introduzione ad Dialplan [quarta parte]

February 14th, 2009 Leave a comment Go to comments

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

Categories: Articolo Tecnico, Software Tags:
  1. No comments yet.
  1. No trackbacks yet.
You must be logged in to post a comment.