[Asterisk-Users] Read() timeout hangs up the line
Troy
hat at air-stream.org
Wed Jan 5 16:52:00 MST 2005
Hi list,
I am having some difficulty implementing a certain dialplan where the
following
happens. If the first Dial() is not answered, I want to play a small
greeting then
ask the caller to either hold the line (try calling again) or press 1
to leave
voicemail.
exten => s,1,Dial(${BLAH},10,Tt) ; Dial 10 sec
exten => s,2,Answer
exten => s,3,Playback(greeting)
exten => s,4,Playback(werebusy)
exten => s,5,DigitTimeout(1)
exten => s,6,ResponseTimeout(3)
exten => s,7,Read(WHAT,holdormsg,1) ; "Hold the line, or
press 1 to leave a msg.."
exten => s,8,Gotoif($[${WHAT} = 1]?30)
exten => s,9,Dial(${BLAH},15,Ttm) ; Dial another
15 sec with music on hold
exten => s,10,Goto(7) ; Loop
My problem is that if the caller doesn't press a key when prompted, and
the Read()
is allowed to time out (3 seconds), (s,7) returns non-zero and asterisk
hangs up
on the caller without further execution. I want it to continue down the
priorities and
redial the line, with hold music.. It doesn't even get to test the
value of ${WHAT}
if nothing is entered. However, if the caller enters an number other
than 1, it will
perform properly and redial the line.
-- Executing Read("vpb/1-1", "WHAT|holdormsg|1") in new stack
-- Accepting a maximum of 1 digits.
-- Playing 'holdormsg' (language 'en')
-- User entered ''
== Spawn extension (blah, s, 9) exited non-zero on 'vpb/1-1'
== vpb/1-1: Hangup requested
== vpb/1-1: Ending record mode (1/yes)
== vpb/1-1: Ending play mode on vpb/1-1
== vpb/1-1: Hangup complete
Any ideas what could be wrong ?
Cheers
Troy
More information about the asterisk-users
mailing list