[asterisk-bugs] [JIRA] Created: (ASTERISK-20558) Incorrect TRANSFER entry in queue_log on attended transfer
John Horck (JIRA)
noreply at issues.asterisk.org
Fri Oct 12 09:20:27 CDT 2012
Incorrect TRANSFER entry in queue_log on attended transfer
----------------------------------------------------------
Key: ASTERISK-20558
URL: https://issues.asterisk.org/jira/browse/ASTERISK-20558
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: Applications/app_queue
Affects Versions: 1.8.17.0
Reporter: John Horck
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 at test-agent-lookup/n to 800
queue add member Local/401 at test-agent-lookup/n to 801
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the asterisk-bugs
mailing list