Asterisk in pillole - Contesti, estensioni, priprità

Nel tutorial precedente abbiamo menzionato il file di configurazione, extensions.conf, nel quale si definisce come vengono gestite le chiamate in ingresso e in uscita dal sistema.

E' in extensions.conf che andremo a definire e configurare il comportamento di tutte le connessioni da e verso il nostro PBX.

All'inizio del file troviamo due sezioni [general] e [globals], sotto le quali vengono definiti alcuni settaggi che influenzerranno il comportamento del sistema relativo al dialplan.

Dopo [general] e [globlas], la restante parte del file, attraverso quelli che noi chiameremo contesti, definisce il vero dialplan di Asterisk.

Un contesto e' un gruppo di estensioni che a livello di sintassi nel file vengono definite come segue:

[nome_del_contesto]
exten => estensione, priorita', applicazione

L' "estensione" può essere numerica, letterale, può contenere simboli standard come * , # e a differenza di un PBX tradizionale dove le estensioni sono associate a telefoni, interfacce... in Asterisk una estensione e' definita come una lista di comandi da eseguire. I comandi sono generalmente eseguiti nell'ordine definito dal loro tag "priorita'".
Alcuni comandi come il "GoToIf" possono saltare ad un contesto specifico con una specifica estensione e priorità, in base a condizioni verificatesi durante lo svolgimento normale e diciamo ordinato delle priorità.

Vediamo qualche esempio:

[chiama_200]
exten => 200,1,Dial(SIP/200,20)
exten => 200,n,GoToIf($["${DIALSTATUS}" = "BUSY"]?:noanswer,s,1)
exten => 200,n,Playback(custom/occupato)
exten => 200,n,Hangup()

[noanswer]
exten => s,1,Voicemail(200@voicemail,u)
exten => s,n,Hangup()

Cosa abbiamo fatto?

Quando si digitera' 200 dalla tastiera, il sistema chiamerà l'interno sip 200, se l'interno risulta occupato, il sistema riprodurrà al chiamante un file audio "occupato", altrimenti se non risponderà entro 20 secondi o la variabile "DIALSTATUS" riporterà un valore diverso da "BUSY", il sistema salterà alla casella vocale dell'interno 200.

Diamo per scontato che il contesto [chiama_200] sia un contesto di appartenza per l'utente che sta chiamando il 200, altrimenti si avrebbe da parte del sistema un "service unavailable".  

Migliora il tuo business. Partecipa ai nostri Corsi!

I nostri corsi OnLine ed in Aula sono studiati per garantire il miglior apprendimento e sono finalizzati a "creare professionisti nel settore".
Questi i prossimi corsi in calendario:

Corsi 2019

Corso Data Tipo
Corso Base FreeSWITCH MILANO 17/18 Ottobre 2019 Aula
Corso Programmazione WEB per Asterisk MILANO 19/20/21 Ottobre 2019 Aula