Summary:ASTERISK-20192: Despite a "context" defined in queues.conf - queue callers can't exit a queue by dialing extension numbers within that context
Reporter:lijingcheng (lijingcheng)Labels:
Date Opened:2012-08-06 02:13:56Date Closed:2012-09-10 16:59:57
Versions: Frequency of
Environment:OS: linux Ubuntu 11.10 Attachments:( 0) extensions.conf
( 1) issue_20192_full_log
( 2) issue_20192.pcap
( 3) logger.conf
( 4) queue.log
( 5) queues.conf
Description:[at first,I'm sorry for my poor chinese english.]queue keypress events don't work, asterisk seems not to receive DTMF keys when waiting in a queue, when i enter any digit key, expect to exit the queue and go to a voice menu context corresponding to "context" config item in queues.conf, but i always failed. i debug this by GDB, i know asterisk call wait_a_bit in queue_exec() function at app_queue.c to receive a single digit DTMF key to exit, and i go deep into call stack of wait_a_bit, the program return "ast_null_frame" at "case AST_TIMING_EVENT_EXPIRED" after calling ast_timer_get_event in __ast_read.
Comments:By: Rusty Newton (rnewton) 2012-08-06 15:01:37.049-0500

1)Does detection of your keypress (DTMF) work anywhere outside of a queue? For example when inside of a WaitExten() ?

2)Is the person pressing keys connected via a SIP device or calling in through a SIP channel?

Please gather an Asterisk full log with VERBOSE, DEBUG and DTMF type messages of  at least level 5 during the issue occurring. Please attach the log to the issue as txt file, compressed if very large.

By: lijingcheng (lijingcheng) 2012-08-06 20:13:15.966-0500

yes, i make a voicemail dialplan test and the keypress do work inside WaitExten, i also can enter agent number and password to login a queue inside a agentLogin application, and i use a Grandstream GXP1450 SIP endpoint to do these.
there is a log file about this.

By: lijingcheng (lijingcheng) 2012-08-06 22:18:13.074-0500

update the status of this issue.

By: Rusty Newton (rnewton) 2012-08-07 15:53:06.127-0500

I don't see any indication that Asterisk detected DTMF during the time the logging occurred.

Did you gather the logging as in the method here: https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information ?  Be sure to include DTMF message type.

Please also include a packet capture of the SIP and RTP traffic occurring during that time. (using tcpdump or a similar tool so that we can analyze the capture in wireshark. The capture should be taken from the machine running Asterisk. This will allow us to verify Asterisk is receiving DTMF from the endpoint and not just ignoring DTMF for some strange reason.

By: lijingcheng (lijingcheng) 2012-08-08 20:38:14.849-0500

I am sure i added DTMF message type in logger.conf. there are a logger.conf file, a full log, and a pcap file attached.

By: Rusty Newton (rnewton) 2012-08-09 15:59:34.049-0500

Thanks. We'll take a look and see if we can identify this as a bug or not.

By: Matt Jordan (mjordan) 2012-08-09 16:13:36.412-0500

Try Answer-ing the call before it goes into the Queue.

same => n,Answer()
same => n,Queue(...)

Does that fix the problem?

By: lijingcheng (lijingcheng) 2012-08-09 20:11:24.133-0500

Thanks! it fixed my problem, but when should we use an answer before a queue application? is it a must?

By: Richard Mudgett (rmudgett) 2012-08-09 20:52:29.397-0500

Many SIP/ISDN phones do not allow generating DTMF before answer because there is no media stream.

By: lijingcheng (lijingcheng) 2012-08-09 22:36:57.601-0500

I see, thanks! so this depends on the phone?

By: Rusty Newton (rnewton) 2012-09-10 16:59:57.690-0500

Yup, it can vary per device. When in doubt, Answer() the channel, or even in some cases you may need Progress() (probably want to research that one).  Thanks.