PDA

Voir la version complète : Problème dans une boucle du Dialplan



asterisk93500
16/08/2016, 17h40
Bonjour,

Je suis confronté à un problème que je ne résouds pas.

Normalement ma boucle devrait s'exécuter jusqu'à ce que ma variable ${i} soit égale à -1, or ma boucle se comporte très très étrangement :



exten => s,1,Noop("####### TEST BOUCLE #####")
same => n,Set(i=999)
same => n,While($[${i} > 0])
same => n,Set(i=$[${i} - 1])
same => n,Noop("======================> ${i}")
same => n,EndWhile
same => n,Noop("FIN DE LA BOUCLE i = ${i}")
same => n,hangup()

exemple de comportement :

Set("SIP/100-00000013", "i=935") in new stack
-- Executing [s@choix:6] NoOp("SIP/100-00000013", ""======================> 935"") in new stack
-- Executing [s@choix:4] While("SIP/100-00000013", "1") in new stack
-- Executing [s@choix:5] Set("SIP/100-00000013", "i=627") in new stack
-- Executing [s@choix:6] NoOp("SIP/100-00000013", ""======================> 627"") in new stack
-- Executing [s@choix:7] EndWhile("SIP/100-00000013", "") in new stack

la boucle passe de 935 à 627 ????


Elle s'arrête souvent à 935 mais n'affiche pas le message de fin de la boucle

-- Executing [s@choix:4] While("SIP/100-00000000", "1") in new stack
-- Executing [s@choix:5] Set("SIP/100-00000000", "ik=938") in new stack
-- Executing [s@choix:6] NoOp("SIP/100-00000000", ""======================> 938"") in new stack
-- Executing [s@choix:7] EndWhile("SIP/100-00000000", "") in new stack
-- Executing [s@choix:4] While("SIP/100-00000000", "1") in new stack
-- Executing [s@choix:5] Set("SIP/100-00000000", "ik=937") in new stack
-- Executing [s@choix:6] NoOp("SIP/100-00000000", ""======================> 937"") in new stack
-- Executing [s@choix:7] EndWhile("SIP/100-00000000", "") in new stack
-- Executing [s@choix:4] While("SIP/100-00000000", "1") in new stack
-- Executing [s@choix:5] Set("SIP/100-00000000", "ik=936") in new stack
-- Executing [s@choix:6] NoOp("SIP/100-00000000", ""======================> 936"") in new stack
-- Executing [s@choix:7] EndWhile("SIP/100-00000000", "") in new stack
-- Executing [s@choix:4] While("SIP/100-00000000", "1") in new stack
-- Executing [s@choix:5] Set("SIP/100-00000000", "ik=935") in new stack
-- Executing [s@choix:6] NoOp("SIP/100-00000000", ""======================> 935"") in new stack
asterisk*CLI>

On ne voit même pas le Hangup !

jean
26/08/2016, 16h09
je dois avouer ne jamais avoir utilisé ca, essaie sans les espaces, sinon, un petit script agi met 2 secondes à écrire, et sera surement plus performant

J.