Dialplan con Asterisk - Seconda Parte - Le variabili

Versione adatta alla stampaSend to friendPDF version

Oggi vedremo cosa sono e come funzionano le variabili nella costruzione di un dialplan. Una piccola premessa. Una variabile è un contenitore che al suo interno ha un valore. Questo valore può essere solamente uno finché non decidiamo di cambiarlo.

In Asterisk esistono tre tipi di variabili:

  • Variabili Globali
  • Variabili di canale
  • Variabili di ambiente

Si rappresentano nella seguente forma: ${PIPPO} (carattere dollaro e il nome della variabile tra parentesi graffe. I nomi delle variabili cambiano se sono scritti in minuscolo o maiuscolo, quindi scrivere  ${PIPPO} e ${pippo} non è la stessa cosa.

Analizziamole più da vicino.

Variabili globali

Le variabili globali si applicano a tutto il dialplan e i contesti contenuti nello stesso. A volte può essere molto utile definire variabili globali per semplificare e rendere più leggibile il dialplan. Supponiamo che nel nostro sip.conf abbiamo definito due interni: 1001 e 1002. Come vedremo al momento della costruzione del dialplan, per chiamare un interno useremo l’applicazione Dial alla quale passeremo alcuni valori fra i quali il numero da chiamare. Nel caso di un interno configurato nel sip.conf dovremo indicare SIP/1001. Possiamo assegnare questo valore a una variabile (per esempio il nome della persona che utilizza quell’interno). Quindi potremo definire una variabile globale nella seguente forma:

LUIGI=SIP/1001

nel dialplan per chiamare luigi non dovremo più scrivere SIP/1001 ma semplicemente ${LUIGI} e potremo usare la stessa variabile nei differenti contesti o estensioni presenti.

Per definire le varabili globali nel dialplan abbiamo a disposizione due opzioni:

  • definirle sotto l’etichetta [globals] del file extensions.conf o all’interno del dialplan usando la funzione GLOBAL()

Variabili di canale

Una variabile di canale è valida solo per un particolare canale (chiamata) e sarà disponibile solamente ai partecipanti di quella specifica chiamata. All’interno di Asterisk ci sono un nutrito numero di variabili predefinite che possiamo usare nel nostro dialplan. Nella cartella doc dei sorgenti era presente (dico era perché nella versione 1.6.X non l’ho trovato) un file con tutte le variabili usate da Asterisk. Per una lista completa c’è sempre il sito di voip-info. Chiaramente i nomi di queste variabili non possono essere usati perché riservati ad Asterisk. Un esempio:

quando da un Soft Phone o un telefono IP digitiamo un numero, automaticamente questo numero verrà salvato (registrato) nella variabile ${EXTEN} (una variabile di canale). Se nel dialplan quel numero (una chiamata negli Stati Uniti) è associato a un VoIP provider tipo justvoip nel dialplan troveremo:

exten => _011X.,1,DIal(SIP/justvoip/${EXTEN})

[dei vari caratteri presenti dopo exten =>, chiamati Pattern Matching, abbiamo parlato nel precedente articolo sul dialplan]

Questo ci rende le cose molto semplici perché definendo solamente il prefisso internazionale degli stati uniti (011), con una linea nel nostro dialplan potremo gestire tutte le chiamate dirette a quel paese.

Variabili di ambiente

Le variabili di ambiente ci permettono di accedere a variabili del nostro sistema LInux. Una variabile di ambiente usa la seguente sintassi:

${ENV(var)} dove var è la variabile presa da Linux utilizzabile nel dialplan di Asterisk.

Nel prossimo articolo cominceremo a scrivere il nostro dialplan e vedremo un paio di esempi.

 

Etiquetas de Technorati: ,,
Condividi contenuti