[Asterisk-Users] Gogoif with variables acting funny?

Steve Woolley swoolley at adstelecom.com
Mon Jul 12 07:51:24 MST 2004


Using an example provided by "The Hitchhiker's Guide to Asterisk", I
made the following addition to my extensions.conf file:

[inbound-analog]
exten => s,1,Wait(1)                     
exten => s,2,SetVar(counter=0)
exten => s,3,Answer()                     
exten => s,4,Wait(1)
exten => s,5,DigitTimeout(15)            
exten => s,6,ResponseTimeout(10)         
exten => s,7,BackGround(pls-entr-num-uwish2-call)

exten => t,1,SetVar(counter=[${counter}+1])
exten => t,2,Gotoif([${counter}<3]?s,7:h,1)

exten => i,1,Playback(invalid)          

exten => h,1,hangup()

The hope would be that the "pls-entr-num-uwish2-call" message would be
offered up to incoming calls 3 times if the caller times out (10
seconds) and then hangup. However the call hangs up 10 seconds after the
first playing of "pls-entr-num-uwish2-call".

My asterisk log shows:    

    -- Executing Wait("Zap/99-1", "1") in new stack
    -- Executing SetVar("Zap/99-1", "counter=0") in new stack
    -- Executing Answer("Zap/99-1", "") in new stack
    -- Executing Wait("Zap/99-1", "1") in new stack
    -- Executing DigitTimeout("Zap/99-1", "15") in new stack
    -- Set Digit Timeout to 15
    -- Executing ResponseTimeout("Zap/99-1", "10") in new stack
    -- Set Response Timeout to 10
    -- Executing BackGround("Zap/99-1", "pls-entr-num-uwish2-call") in
new stack
    -- Playing 'pls-entr-num-uwish2-call' (language 'en')
    -- Timeout on Zap/99-1
  == CDR updated on Zap/99-1
    -- Executing SetVar("Zap/99-1", "counter=[0+1]") in new stack
    -- Executing GotoIf("Zap/99-1", "[[0+1]<3]?s|7:h|1") in new stack
    -- Goto (inbound-analog,h,1)
    -- Executing Hangup("Zap/99-1", "") in new stack
  == Spawn extension (inbound-analog, h, 1) exited non-zero on
'Zap/99-1'
    -- Executing Hangup("Zap/99-1", "") in new stack
  == Spawn extension (inbound-analog, h, 1) exited non-zero on
'Zap/99-1'
    -- Hungup 'Zap/99-1'

It looks to me as if the Gotoif thinks that [0+1] is greater than or
equal to 3 and therefore jumps to hangup.

Am I missing something here?

--
Steve Woolley
IT Manager
ADS Telecom, Inc.
59 Skyline Drive
Suite 1250
Lake Mary, Florida 32746

Phone: (407)682-6226 x1110
Fax:   (407)682-3455
Cell:  (321)229-5311

swoolley at adstelecom.com
www.adstelecom.com 



More information about the asterisk-users mailing list