[asterisk-bugs] [JIRA] Created: (ASTERISK-20566) Incorrect TRANSFER entry in queue_log on attended transfer

Rusty Newton (JIRA) noreply at issues.asterisk.org
Mon Oct 15 17:28:28 CDT 2012


Incorrect TRANSFER entry in queue_log on attended transfer
----------------------------------------------------------

                 Key: ASTERISK-20566
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-20566
             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