Summary: | ASTERISK-20558: Incorrect TRANSFER entry in queue_log on attended transfer | ||||
Reporter: | John Horck (jhorck) | Labels: | |||
Date Opened: | 2012-10-12 09:19:09 | Date Closed: | 2013-01-15 09:19:30.000-0600 | ||
Priority: | Major | Regression? | No | ||
Status: | Closed/Complete | Components: | Applications/app_queue | ||
Versions: | 1.8.17.0 | Frequency of Occurrence | Constant | ||
Related Issues: |
| ||||
Environment: | Attachments: | ( 0) full | |||
Description: | When an agent performs an attended transfer (features.conf) to another queue, the entry in queue_log is reporting the extension where the call is transferred from, not the extension where the call is transferred to. We use dynamic agents, added to the queues by AddQueueMember. We don't use chan_agent. Unattended transfer is OK. I stripped down the dialplan and queue settings to a minimum to isolate the problem. The bug is easily reproduced in 1.8.17.0 with the config below. We also saw this behavior in 1.8.8.1 and 1.8.4. queue_log (I added my comments at the end of the lines): 1350049215|1350049214.162|800|NONE|ENTERQUEUE||214|1 ; caller 214 enters queue 800 1350049219|1350049214.162|800|SIP/600|CONNECT|4|1350049215.163|4 ; agent at extension 600 answers the call 1350049228|1350049228.165|801|NONE|ENTERQUEUE||600|1 ; agent initiates an attended transfer by dialing *2 and destination 801# 1350049232|1350049228.165|801|SIP/601|CONNECT|4|1350049228.166|3 ; agent 601 answers the call 1350049241|1350049214.162|800|SIP/600|TRANSFER|800|test-queues|4|22|1 ; agent 600 disconnects, caller 214 is connected to agent 601. It should say TRANSFER to 801 here! 1350049261|1350049228.165|801|SIP/601|COMPLETEAGENT|4|29|1 ; agent 601 disconnects extensions.conf: [test-queues] exten => 800,1,Answer exten => 800,n,Set(__TRANSFER_CONTEXT=test-xfer) exten => 800,n,Queue(800,t) exten => 800,n,Hangup exten => 801,1,Answer exten => 801,n,Set(__TRANSFER_CONTEXT=test-xfer) exten => 801,n,Queue(801,t) exten => 801,n,Hangup [test-xfer] exten => _X.,1,Goto(test-queues,${EXTEN},2) ; optionally using local channels: [test-agent-lookup] exten => 400,1,Dial(SIP/600,60) exten => 400,n,Hangup exten => 401,1,Dial(SIP/601,60) exten => 401,n,Hangup queues.conf: [general] persistentmembers=yes shared_lastcall=yes updatecdr=no [800] joinempty=yes leavewhenempty=no [801] joinempty=yes leavewhenempty=no In Asterisk CLI: queue add member SIP/600 to 800 queue add member SIP/601 to 801 On our production systems we add local channels to the queues. This allows us to look-up the agent in the database and do some logic when the agent is dialed. Using local channels has the same problem. To test this in this dialplan, enter in Asterisk CLI: queue add member Local/400@test-agent-lookup/n to 800 queue add member Local/401@test-agent-lookup/n to 801 | ||||
Comments: | By: John Horck (jhorck) 2012-10-12 09:24:33.034-0500 full log By: Marcelo Iampaglia (gordowien) 2012-10-17 07:38:36.249-0500 We see this problem as well.(1.8.15) the field data1 is wrong By: Steven Davis (davissteve80) 2012-10-17 11:02:16.446-0500 We also have been seeing this issue. at least 1.8.15 probably earlier. By: Matt Jordan (mjordan) 2013-01-15 09:19:22.275-0600 This looks to be identical to ASTERISK-19960 - if I'm mistaken, let me know in #asterisk-bugs and I'll reopen this issue. |