Nel precedente post abbiamo analizzato in dettaglio l’estensione:
exten => _X.,1,Dial(SIP/${EXTEN}@ext-provider)
e abbiamo approfondito il concetto di “pattern matching”. Continuando nell’analisi si nota l’utilizzo della stringa ${EXTEN} che rappresenta una “variabile” in Asterisk.
In particolare la variabile ${EXTEN} rappresenta il numero dell’estensione corrente durante l’elaborazione del dialplan. In pratica nel nostro caso il numero digitato sull’interno dal quale è stata effettuata la chiamata.
Dunque con l’applicazione:
Dial(SIP/${EXTEN}@ext-provider)
effettuiamo una chiamata su canale sip del numero contenuto in ${EXTEN} utilizzando il provider “ext-provider”.
L’utilizzo della variabile EXTEN può anche essere più complesso, ad esempio, nel caso in cui la riga specificata fosse modificata in:
exten => _0.,1,Dial(SIP/${EXTEN:1}@ext-provider)
avremmo inviato sul provider “ext-provider” tutti i numeri che iniziano per 0 ma avremmo eliminato la prima cifra (lo 0 appunto!), come indicato da “:1” dopo EXTEN.
${EXTEN} non è l’unica variabile presente in Asterisk ma sicuramente è la più utilizzata, alcune delle altre variabili disponibili sono:
${CALLERID(all)} contiene numero e nome del chiamante
${CALLERID(num)} contine il numero del chiamante
${CALLERID(name)}contiene il nome del chiamante
${CHANNEL} nome del canale corrente
${CONTEXT} nome del contesto corrente
${DATETIME} data corrente nel formato: DDMMYYYY-HH:MM:SS