Read() application will disconnect

good day all,
I’m using the Read() function to play a message prompting for account number for a maximum of 10 digits, and timeout is default, option is n, and try is default. here is my extensions.conf

[inquiry]
exten => s,1,Set(i=1)
exten => s,2,Answer()
exten => s,3,GotoIfTime(07:55-17:30,mon-fri,,?inquiry,s,7)
exten => s,4,GotoIfTime(07:55-15:00,sat,,?inquiry,s,7)
exten => s,5,GotoIfTime(01:00-23:59,sun,,?office-close,s,4)
exten => s,6,Goto(office-close,s,1)
exten => s,7,Background(silence/2)
exten => s,8,Background(yyk_vlc_welcome4)
exten => s,9,WaitExten(2|m)
exten => s,10,Goto(internal,7000,1)

exten => _7000,1,Answer()
exten => _7000,n,Read(acctnum,yyk_vlc_enter_account_number2,10,n,)

===============================
Executing [s@inquiry:1] Set(“IAX2/voicebio-12286”, “i=1”) in new stack
– Executing [s@inquiry:2] Answer(“IAX2/voicebio-12286”, “”) in new stack
– Executing [s@inquiry:3] GotoIfTime(“IAX2/voicebio-12286”, “07:55-17:30|mon-fri||?inquiry|s|7”) in new stack
– Goto (inquiry,s,7)
– Executing [s@inquiry:7] BackGround(“IAX2/voicebio-12286”, “silence/2”) in new stack
– <IAX2/voicebio-12286> Playing ‘silence/2’ (language ‘en’)
– Executing [s@inquiry:8] BackGround(“IAX2/voicebio-12286”, “yyk_vlc_welcome4”) in new stack
– <IAX2/voicebio-12286> Playing ‘yyk_vlc_welcome4’ (language ‘en’)
– Executing [s@inquiry:9] WaitExten(“IAX2/voicebio-12286”, “2|m”) in new stack
– Timeout on IAX2/voicebio-12286, continuing…
– Executing [s@inquiry:10] Goto(“IAX2/voicebio-12286”, “internal|7000|1”) in new stack
– Goto (internal,7000,1)

-- Executing [7000@internal:2] Read("IAX2/voicebio-12286", "acctnum|yyk_vlc_enter_account_number2|10|n|||") in new stack
-- Accepting a maximum of 10 digits.
-- <IAX2/voicebio-12286> Playing 'yyk_vlc_enter_account_number2' (language 'en')
-- User disconnected

== Spawn extension (internal, 7000, 2) exited non-zero on ‘IAX2/voicebio-12286’


I observed that the read function succeed and sometimes Asterisk hangs up while I’m still typing.

Maybe you somewhere redefines TIMEOUT(digit) option?

And, by the way, if in Read() you do not need last two options, just omit last two commas, plan will still work. But in fact, I’m not sure if defining options with NULL value (as in your case) will be the same as not defining them at all.

thank you prod_user for your idea, sorry im still new to asterisk and i would to ask if what did you mean about redefining Timeout(digits) option. And i already tried omitting the commas but ive still experienced hangup problems of Read() function .

TIMEOUT(digit) defines max timeout between buttons pressing. As I remember it’s 5 seconds by default and should be quite enough. Does hangup happens rarely if you increase total timeout in read() option ?

It seems that you should anylize your problem deeper. First of all, can you act so that hangup repeats every time you try? Or it always happens occasionaly?

Maybe you should try to raise console verbosity: asterisk -vvvvvvvr, or even enable debug output to try to catch something weird: asterisk -dvvvvvvvr

thank you prod_user for your idea, im implementing a timeout of 15secs and right now im currently observing the behavior of it. i’ll notify you the my observation. thanks