Thanks david55 for your explaination,
The verbose output from console for my dialplan code were as following:
The bold red texts were my comments
Executing [100@MakeCall:1] GoSub(“SIP/300-00000004”, “subCheck,s,1(2)”) [color=#FF0000] -------> Go to outer Sub[/color]
– Executing [s@subCheck:1] Set(“SIP/300-00000004”, “LOCAL(Count)=2”) in new stack
– Executing [s@subCheck:2] Set(“SIP/300-00000004”, “LOCAL(Counter)=1”) in new stack
– Executing [s@subCheck:3] While(“SIP/300-00000004”, “1”) in new stack
– Executing [s@subCheck:4] GotoIf(“SIP/300-00000004”, “1?:6”) in new stack
– Executing [s@subCheck:5] Gosub(“SIP/300-00000004”, “subCheck,s,1(4)”) in new stack [color=#FF0000] -------> Go to inner Sub[/color]
– Executing [s@subCheck:1] Set(“SIP/300-00000004”, “LOCAL(Count)=4”) in new stack
– Executing [s@subCheck:2] Set(“SIP/300-00000004”, “LOCAL(Counter)=1”) in new stack
– Executing [s@subCheck:3] While(“SIP/300-00000004”, “1”) in new stack
– Executing [s@subCheck:4] GotoIf(“SIP/300-00000004”, “0?:6”) in new stack
– Goto (subCheck,s,6)
– Executing [s@subCheck:6] Verbose(“SIP/300-00000004”, “2,Counter=1,Count=4”) in new stack
== Counter=1,Count=4 [color=#FF0000] -------> Verbose 1th from inner Sub[/color]
– Executing [s@subCheck:7] Set(“SIP/300-00000004”, “Counter=2”) in new stack
– Executing [s@subCheck:8] EndWhile(“SIP/300-00000004”, “”) in new stack
– Executing [s@subCheck:3] While(“SIP/300-00000004”, “1”) in new stack
– Executing [s@subCheck:4] GotoIf(“SIP/300-00000004”, “0?:6”) in new stack
– Goto (subCheck,s,6)
– Executing [s@subCheck:6] Verbose(“SIP/300-00000004”, “2,Counter=2,Count=4”) in new stack
== Counter=2,Count=4 [color=#FF0000] -------> Verbose 2th from inner Sub[/color]
– Executing [s@subCheck:7] Set(“SIP/300-00000004”, “Counter=3”) in new stack
– Executing [s@subCheck:8] EndWhile(“SIP/300-00000004”, “”) in new stack
– Executing [s@subCheck:3] While(“SIP/300-00000004”, “1”) in new stack
– Executing [s@subCheck:4] GotoIf(“SIP/300-00000004”, “0?:6”) in new stack
– Goto (subCheck,s,6)
– Executing [s@subCheck:6] Verbose(“SIP/300-00000004”, “2,Counter=3,Count=4”) in new stack
== Counter=3,Count=4 [color=#FF0000] -------> Verbose 3th from inner Sub[/color]
– Executing [s@subCheck:7] Set(“SIP/300-00000004”, “Counter=4”) in new stack
– Executing [s@subCheck:8] EndWhile(“SIP/300-00000004”, “”) in new stack
– Executing [s@subCheck:3] While(“SIP/300-00000004”, “1”) in new stack
– Executing [s@subCheck:4] GotoIf(“SIP/300-00000004”, “0?:6”) in new stack
– Goto (subCheck,s,6)
– Executing [s@subCheck:6] Verbose(“SIP/300-00000004”, “2,Counter=4,Count=4”) in new stack
== Counter=4,Count=4 [color=#FF0000] -------> Verbose 4th from inner Sub[/color]
– Executing [s@subCheck:7] Set(“SIP/300-00000004”, “Counter=5”) in new stack
– Executing [s@subCheck:8] EndWhile(“SIP/300-00000004”, “”) in new stack
– Executing [s@subCheck:3] While(“SIP/300-00000004”, “0”) in new stack
– Executing [s@subCheck:9] Return(“SIP/300-00000004”, “”) in new stack [color=#FF0000] -------> Return from inner Sub[/color]
– Executing [s@subCheck:6] Verbose(“SIP/300-00000004”, “2,Counter=1,Count=2”) in new stack
== Counter=1,Count=2 [color=#FF0000] -------> Verbose 1th from outer Sub[/color]
– Executing [s@subCheck:7] Set(“SIP/300-00000004”, “Counter=2”) in new stack
– Executing [s@subCheck:8] EndWhile(“SIP/300-00000004”, “”) in new stack
– Executing [s@subCheck:9] Return(“SIP/300-00000004”, “”) in new stack [color=#FF0000] -------> I think the problem at here, why is the While the command can’t executed?[/color]
– Executing [100@MakeCall:2] Hangup(“SIP/300-00000004”, “”)
Thanks in advance