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