Asterisk guida: cicli Dialplan – Come crearne 1/3

In questa mini serie di articoli vedremo diversi cicli, creati tramite il Dialplan di Asterisk.

PROBLEMA
Talvolta è necessario eseguire un’azione più volte prima di continuare nel dialplan.

SOLUZIONE
Creare dei cicli (loop). Di seguito un esempio.

ESEMPIO
Come creare dei cicli tramite il Dialplan di Asterisk che itera un numero di volte predefinito utilizzando un contatore con While/EndWhile.

[While-Loop]
exten => s,1,NoOp(Operazione ripetuta 5 volte)
same => n,Set(VAR_ITERA=1)
same => n,NoOp(Inizio del loop)
same => n,While($[${VAR_ITERA} <= 5])
same => n,NoOp(Il valore della variabile VAR_ITERA è: ${VAR_ITERA})
same => n,Set(VAR_ITERA=${INC(VAR_ITERA)})
same => n,EndWhile()
same => n,NoOp(Fine del loop)
same => n,Hangup()

In questo esempio il ciclo While/EndWhile eseguirà il codice contenuto per 5 volte.
Infatti, il ciclo sarà in esecuzione fino a quando la variabile VAR_ITERA, che inizialmente è valorizzata a 1 e che ad ogni esecuzione del ciclo si incrementa di valore +1, avrà valore <= 5 While($[${VAR_ITERA} <= 5])

L’incremento della variabile VAR_ITERA viene fatto con l’utilizzo della funzione INC (vedi wiki).

Riferimenti wiki Asterisk 18:

Più informazioni sulla funzione INC