Asterisk, conosciamolo più da vicino: pattern matching [Ottava parte]

Nell’ultimo post abbiamo aggiunto la riga
exten => _X.,1,Dial(SIP/${EXTEN}@ext-provider)
per gestire le chiamate in uscita del centralino asterisk.

Ci eravamo preposti di analizzarla nel dettaglio. Questa riga fa uso di un meccanismo molto importante per il funzionamento di Asterisk: il pattern matching.

Ricordiamo che la riga in oggetto è stata aggiunta al contesto [from-internal] in cui confluiscono tutte le chiamate effettuate dai telefoni configurati come interni.

Il numero digitato sulla tastiera del telefono viene confrontato in sequenza con ogni riga presente nel contesto [from-internal]. In caso si digita il numero 200 avviene un “matching” con le estensioni che iniziano con 200 e dunque vengono eseguite le priorità 1 e 2.

In caso venga digitato il numero 201 avviene la stessa cosa per l’estensione 201.

La riga che stiamo analizzando inizia con la stringa “_X.” e non con un numero. Questo indica un possibile “pattern” con cui il numero digitato sulla tastiera può fare “matching”.

In particolare le sequenze di simboli che possiamo includere in una estensione iniziano sempre con il carattere “_” e sono:
X indica una cifra da 0 a 9
Z indica una cifra da 1 a 9
N indica una cifra da 2 a 9
[] è possibile specificare un range (es. [15-7] indica 1,5,6 oppure 7)
. Qualsiasi cosa

Esempio
_9. indica tutte le stringhe che iniziano con 9, di qualsiasi lunghezza, ad esempio 92,932344,99999,91,etc.

_XXX indica tutte le stringhe di 3 caratteri, con numeri che vanno da 0 a 9, come 321, 999,123, etc.

Nel nostro caso _X. significa tutte le stringhe di numeri. Interessante?

Ti consigliamo anche

Link copiato negli appunti