[Home]

Summary:ASTERISK-20558: Incorrect TRANSFER entry in queue_log on attended transfer
Reporter:John Horck (jhorck)Labels:
Date Opened:2012-10-12 09:19:09Date Closed:2013-01-15 09:19:30.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Applications/app_queue
Versions:1.8.17.0 Frequency of
Occurrence
Constant
Related
Issues:
duplicatesASTERISK-19960 Incorrect data in queue_log, event TRANSFER, field data1
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.