Hi,
I have written small script for dialing the call and when call no answer it will move to NOANSWER context and when I put in dial plan to wait(seconds) for redial again then call getting hungup every time. See my below dial plan for the more details.
[outdial]
exten => *8899,1,Dial(SIP/${DNUM},30)
exten => *8899,n,Goto(s-${DIALSTATUS},1)
;;if the line is busy
exten => s-BUSY,1,Verbose(SIP/${WTrunk}/${DNUM}->The number is busy ${HANGUPCAUSE})
exten => s-BUSY,n,Wait(30)
exten => s-BUSY,n,Goto(*8899,1)
;if the channel is not avilable
exten => s-CHANUNAVAIL,1,Verbose(SIP/${WTrunk} VOIP Trunk is not available : ${HANGUPCAUSE})
exten => s-CHANUNAVAIL,n,Wait(30)
exten => s-CHANUNAVAIL,n,Goto(*8899,1) ;;redial again after some time
;exten => s-CHANUNAVAIL,n,Hangup()
;if the no answer
exten => s-NOANSWER,1,Verbose(Wait for some time to redial)
exten => s-NOANSWER,n,Wait(30)
exten => s-NOANSWER,n,Goto(*8899,1) ;;redial number again
;if the line having the congestion
exten => s-CONGESTION,1,Verbose(SIP/${WTrunk}/${DNUM}->Congestion : ${HANGUPCAUSE})
exten => s-CONGESTION,n,Verbose(Increase the attempt counter and update into the database)
exten => s-CONGESTION,n,Wait(30) ;;wait for some time and try again
exten => s-CONGESTION,n,Goto(*8899,1) ;;redial again
When in No Answer state I put the call wait for 30 seconds it will hangup after some time, below is the asterisk console log
- Attempting call on Local/*8899@wakeupout for *7777@wakeupout:1 (Retry 1)
– Executing [*8899@wakeupout:1] Verbose(“Local/*8899@wakeupout-112b;2”, “1312356700.62->Dialing Number 9999 with Wait time 20, Wakeup Trunk 2001”) in new stack
– Executing [*8899@wakeupout:2] Dial(“Local/*8899@wakeupout-112b;2”, “SIP/9999,20”) in new stack
== Using SIP RTP CoS mark 5
– Called 9999
– SIP/9999-00000011 is ringing
– Nobody picked up in 20000 ms
– Executing [*8899@wakeupout:3] Verbose(“Local/*8899@wakeupout-112b;2”, “1312356700.62->Dial status : NOANSWER, Hangup cause : 0”) in new stack
– Executing [*8899@wakeupout:4] Goto(“Local/*8899@wakeupout-112b;2”, “s-NOANSWER,1”) in new stack
– Goto (wakeupout,s-NOANSWER,1)
– Executing [s-NOANSWER@wakeupout:1] Verbose(“Local/*8899@wakeupout-112b;2”, “SIP/2001/9999->No answer : 0, Called Count : 0, Account :17”) in new stack
Called Count : 0, Account :17
– Executing [s-NOANSWER@wakeupout:2] GotoIf(“Local/*8899@wakeupout-112b;2”, “1?wakeupout,r-NOANSWER,1”) in new stack
– Goto (wakeupout,r-NOANSWER,1)
– Executing [r-NOANSWER@wakeupout:1] Verbose(“Local/*8899@wakeupout-112b;2”, “Guest Extension No-Answer”) in new stack
Guest Extension No-Answer
– Executing [r-NOANSWER@wakeupout:2] AGI(“Local/*8899@wakeupout-112b;2”, “wakeup/WakeupNoAnswer.agi,17,1423.temp.17.9999.call”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/wakeup/WakeupNoAnswer.agi
wakeup/WakeupNoAnswer.agi,17,1423.temp.17.9999.call: setting up the operator flag…
– <Local/*8899@wakeupout-112b;2>AGI Script wakeup/WakeupNoAnswer.agi completed, returning 0
– Executing [r-NOANSWER@wakeupout:3] Verbose(“Local/*8899@wakeupout-112b;2”, “OperatorCall = no”) in new stack
OperatorCall = no
– Executing [r-NOANSWER@wakeupout:4] GotoIf(“Local/*8899@wakeupout-112b;2”, “0?wakeupout,h-NOANSWER,1”) in new stack
– Executing [r-NOANSWER@wakeupout:5] Set(“Local/*8899@wakeupout-112b;2”, “i=300”) in new stack
– Executing [r-NOANSWER@wakeupout:6] Wait(“Local/*8899@wakeupout-112b;2”, “30”) in new stack
== Spawn extension (wakeupout, r-NOANSWER, 6) exited non-zero on 'Local/*8899@wakeupout-112b;2’
I got the Spawn extension exited non-zero error. Can you pls let me know what is happening here… why it is hanging ?
Note : {DNUM} is the channel variable which hold the extension number which is set from the AGI script.
Thanks in advance.
Ketan