[Home]

Summary:ASTERISK-16461: queue shows the wrong agent in queue_log (CONNECT event) when the call is pickup up by another phone
Reporter:anonymouz666 (anonymouz666)Labels:
Date Opened:2010-07-29 09:58:58Date Closed:2010-10-04 11:31:31
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_queue
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:In app_queue.c, the connect log is generated by this line:

ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "CONNECT", "%ld|%s", (long)time(NULL) - qe->start, peer->uniqueid);

However, if this call was (builtin) pickup by another phone, the log will store the first ringing queue member - not the channel that actually bridged the call.

Flow:

Incoming call -> queue FOO -> peer 300 ringing.

310 is outside queue FOO and pickup the call. The CONNECT event is associated with 300 not 310.
Comments:By: Tilghman Lesher (tilghman) 2010-10-04 11:31:31

The problem is that due to the way that app_queue was designed, we cannot provide that functionality.  The agent in the log MUST be the agent answered, if answered at all.  In order to provide a different answer, the entire Queue app would need to be redesigned from scratch, which is not something that we're going to do at this time.  However, if you'd like to rebuild the Queue app from scratch, using the devicestate model, instead of the polling model here, I believe the entire community would love to have that contributed back to the project.