[Home]

Summary:ASTERISK-27166: app_queue: Crash when handling hangup with incomplete data
Reporter:Mario Lenis (mario.lenis)Labels:
Date Opened:2017-07-31 11:06:10Date Closed:2017-08-16 15:52:22
Priority:MajorRegression?
Status:Closed/CompleteComponents:Applications/app_queue
Versions:13.17.0 14.6.0 Frequency of
Occurrence
Frequent
Related
Issues:
duplicatesASTERISK-27006 app_queue: Crash when hanging up with realtime queues
Environment:Linux Slackware 14.2 Kernel 4.4.14 Intel(R) Xeon(R) CPU E3-1220 8Gb Ram SATA HDAttachments:( 0) core.kerberus-2017-08-08T13-00-50-0500-brief.txt
( 1) core.kerberus-2017-08-08T13-00-50-0500-full.txt
( 2) core.kerberus-2017-08-08T13-00-50-0500-thread1.txt
( 3) kerberus.log-2017-08-08T13-00-50-0500.txt
Description:This is the scenario:
1. Call enters to a Queue A and is received by Agent A (chan_sip)
2. Agent A executes an attended transfer to a Queue B and hangs up before someone answers.
3. The trasnfered call is not answered since Queue B has callback agents and none answers.
4. The attended transfer fails (beeperr) but the original channel had been optimized.
5. Asterisk stops.

This is the backtrace of the issue.
[http://kerberus.com.co/core/core.kerberus-2017-07-31T08-40-49-0500-brief.txt]
[http://kerberus.com.co/core/core.kerberus-2017-07-31T08-40-49-0500-full.txt]
[http://kerberus.com.co/core/core.kerberus-2017-07-31T08-40-49-0500-thread1.txt]
Comments:By: Asterisk Team (asteriskteam) 2017-07-31 11:06:11.282-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

By: Rusty Newton (rnewton) 2017-08-01 16:58:05.608-0500

This looks like the same crash as ASTERISK-27006.

Are you able to reproduce this reliably with the scenario you described above? Does it crash every time?

If so, please attach a minimal configuration that can be used to reproduce the issue as we were unable to reproduce the problem in the other case.

By: Mario Lenis (mario.lenis) 2017-08-02 11:54:57.991-0500

I've been trying to reproduce the error but it happens randomly. What I see in common is when asterisk crashes, I see a beeperr message (transfer failed), agent hangs up before any agent answers

All transfers are attended using the features.conf setup,

This is the minimun setup, there are some ODBC functions but since it doesn't show any errors or warnings I think it has no relevace. I appreciate any help and thanks in advance.

queues.conf
{code}
[general]
persistentmembers = yes
autofill = yes

[QueueA]
music = default
timeout = 10
strategy = rrmemory
servicelevel = 60
ringinuse = no
maxlen = 0
setinterfacevar = yes
setqueuevar = yes

[QueueB]
music = default
timeout = 10
strategy = rrmemory
servicelevel = 60
ringinuse = no
maxlen = 0
setinterfacevar = yes
setqueuevar = yes
{code}

extensions.conf
{code}
[default]

exten => 10,1,Answer()
same => n,ExecIf($["${ORIGEN}"!=""]?Set(CALLERID(num)=${ORIGEN}))
same => n,Gosub(Queues,${EXTEN},1(QueueA))

exten => 11,1,Answer()
same => n,ExecIf($["${ORIGEN}"!=""]?Set(CALLERID(num)=${ORIGEN}))
same => n,Gosub(Queues,${EXTEN},1(QueueB))

include => agents-login

[Queues]

; ARG1: Queue, ARG2: PRIO, ARG3: timeout
exten => _[0-9a-zA-Z].,1,Answer()
same => n,ExecIf($["${CALLID}"!=""]?Gosub(DELETE_XFER,s,1))
same => n,Set(__CALLID=${IF($["${CALLID}"=""]?${UNIQUEID}:${CALLID})})
same => n,Set(__TO_QUEUE=${IF($["${ARG1}"!=""]?${ARG1}:${EXTEN})})
same => n,Set(__ORIGEN=${CALLERID(num)})

same => n,Set(QUEUE_PRIO=${IF($["${ARG2}"=""]?0:${ARG2})})
same => n,ExecIf($["${ARG3}"!=""]?Set(QUEUE_TIMEOUT=${ARG3}))
; same => n,Set(ODBC_AGENTLOG()=${UNIQUEID},${TO_QUEUE},NONE,QUEUE_CONNECT,${CALLID},${CALLERID(num)},${EXTEN},,)
same => n,Set(CHANNEL(musicclass)=q_${TO_QUEUE})
same => n,System(test -e /var/www/htdocs/cmds/ivr/${TO_QUEUE}_ann.wav)
same => n,Queue(${TO_QUEUE},tT,,${IF($["${SYSTEMSTATUS}"="SUCCESS"]?ivr/${TO_QUEUE}_ann)},${QUEUE_TIMEOUT},,,QUEUE_CONNECT\,${UNIQUEID})
same => n,Return()

exten => h,1,Noop(${DB_DELETE(XFER/${CALLID})})

[QUEUE_CONNECT]
exten => s,1,Noop(**** ${MEMBERINTERFACE} ****)
same => n,Set(MFILE=${QUEUENAME}_${UNIQUEID})
same => n,Gosub(AGENT_RECORD,s,1(${MFILE}))
; same => n,Set(ODBC_AGENTUPDATE()=${ARG1},${MFILE},${MEMBERINTERFACE})
same => n,Return()

[agentCallback]
exten => _X.,1,ExecIf($["${#EXTEN}"="2"]?Goto(default,${EXTEN},1))
same => n,ExecIf($["${DB(XFER/${CALLID})}"="YES"]?Goto(,*${EXTEN},1))
same => n,NoOp(Connecting the current call ${CHANNEL} to agent ${EXTEN})

same => n,Dial(SIP/${EXTEN},,U(agent-xfer-hangup^${EXTEN}))
same => n,Hangup()

exten => _*Z.,1,Noop(******* XFER TO ${EXTEN:1} *********)
same => n,Set(CHANNEL(musicclass)=silence)
same => n,Gosub(SET_XFER,s,1(NO))
same => n,Set(__XFERID=${CHANNEL(uniqueid)}_${EPOCH})
same => n,SET(__INICIO=${EPOCH})
same => n,Set(__MONITOR_FILENAME=${TO_QUEUE}_${UNIQUEID}_${EPOCH})
same => n,Dial(Local/${EXTEN:1}@agentCallback/n,20,tTU(AGENT_RECORD^${MONITOR_FILENAME}))

[agent-xfer-hangup]
exten => s,1,ExecIf(${DB_EXISTS(XFER/${CALLID})}?Set(CHANNEL(hangup_handler_push)=agent-xfer-hangup,end,1(${ARG1},${UNIQUEID})))
same => n,Return()

exten => end,1,Noop(**** SUCCESS **** ${HANGUPCAUSE} ****)
same => n,Set(TALK_TIME=${MATH(${EPOCH} - ${INICIO},i)})
same => n,Set(TIME_WAIT=${CDR(duration)})
; same => n,Set(ODBC_AGENTLOG()=${XFERID},${TO_QUEUE},NONE,QUEUE_CONNECT,${CALLID},${CALLERID(num)},XFER,${MONITOR_FILENAME},)
same => n,Set(ODBC_AGENTLOG()=${XFERID},${TO_QUEUE},Local/${ARG1}@agentCallback/n,COMPLETECALLER,${TIME_WAIT},${TALK_TIME},,,)
same => n,Return()

[agents-login]
exten => *300,1,Answer()
same => n,AddQueueMember(QueueA,Local/${CALLERID(num)}@agentCallback/n)

exten => *301,1,Answer()
same => n,AddQueueMember(QueueB,Local/${CALLERID(num)}@agentCallback/n)

[SET_XFER]
exten => s,1,SET(DB(XFER/${CALLID})=${ARG1})
same => n,Return()

[DELETE_XFER]
exten => s,1,Noop(${DB_DELETE(XFER/${CALLID})})
same => n,Return()

[AGENT_RECORD]
exten => s,1,Set(CHANNEL(musicclass)=silence)
same => n,Gosub(SET_XFER,s,1(YES))
same => n,MixMonitor(${MONITOR}/${ARG1}.gsm,abW(2))
same => n,Return()
{code}

By: Mario Lenis (mario.lenis) 2017-08-04 09:08:17.891-0500

Hi, I've been trying to understand what is going on using the verbose on CLI, I came up with a conclusion:

1. A Caller makes a call which enters to a QueueA
2. The call is answered by AgentA
3. AgentA makes an attended transfer to QueueA (since is not able to handle the call)
4. AgentB Answers the call
5. The caller ends the call (almost at the same time AgentB answers)
6. AgentA receives the beeperr and hangs up
7. Asterisk stops.

Here's the verbose
{code}
Executing [1770@Queues:5] Set("DAHDI/i1/16114770-3ec", "__ORIGEN=16114770") in new stack
   -- Executing [1770@Queues:6] Set("DAHDI/i1/16114770-3ec", "QUEUE_PRIO=0") in new stack
   -- Executing [1770@Queues:7] ExecIf("DAHDI/i1/16114770-3ec", "0?Set(QUEUE_TIMEOUT=)") in new stack
   -- Executing [1770@Queues:8] Set("DAHDI/i1/16114770-3ec", "ODBC_AGENTLOG()=1501508401.7468,QueueA,NONE,QUEUE_CONNECT,1501508401.7468,16114770,1770,,") in new stack
   -- Executing [1770@Queues:9] Set("DAHDI/i1/16114770-3ec", "CHANNEL(musicclass)=q_QueueA") in new stack
   -- Executing [1770@Queues:10] System("DAHDI/i1/16114770-3ec", "test -e /var/www/htdocs/cmds/ivr/QueueA_ann.wav") in new stack
   -- Executing [1770@Queues:11] Queue("DAHDI/i1/16114770-3ec", "QueueA,tT,,,,,,QUEUE_CONNECT\,1501508401.7468") in new stack
   -- Started music on hold, class 'q_QueueA', on channel 'DAHDI/i1/16114770-3ec'
   -- Called Local/117@agentCallback/n
   -- Executing [117@agentCallback:1] Set("Local/117@agentCallback-0000049e;2", "ARRAY(PROTOCOLO,EXTENSION)=SIP,1014") in new stack
   -- Executing [117@agentCallback:2] GotoIf("Local/117@agentCallback-0000049e;2", "0?kerberus,117,1") in new stack
   -- Executing [117@agentCallback:3] ExecIf("Local/117@agentCallback-0000049e;2", "0?Hangup()") in new stack
   -- Executing [117@agentCallback:4] NoOp("Local/117@agentCallback-0000049e;2", "Connecting the current call Local/117@agentCallback-0000049e;2 to agent 117 - ") in new stack
   -- Executing [117@agentCallback:5] Dial("Local/117@agentCallback-0000049e;2", "SIP/1014,,U(agent-xfer-hangup^117)") in new stack
 == Using SIP VIDEO CoS mark 6
 == Using SIP RTP CoS mark 5
   -- Called SIP/1014
   -- SIP/1014-0000052a is ringing
   -- Local/117@agentCallback-0000049e;1 is ringing

   
   -- Local/117@agentCallback-0000049e;1 answered DAHDI/i1/16114770-3ec
   -- Stopped music on hold on DAHDI/i1/16114770-3ec
   -- Local/117@agentCallback-0000049e;1 Internal Gosub(QUEUE_CONNECT,s,1(1501508401.7468)) start
   -- Executing [s@QUEUE_CONNECT:1] NoOp("Local/117@agentCallback-0000049e;1", "**** Local/117@agentCallback/n ****") in new stack
   -- Executing [s@QUEUE_CONNECT:2] Set("Local/117@agentCallback-0000049e;1", "MFILE=QueueA_1501508411.7472") in new stack
   -- Executing [s@QUEUE_CONNECT:3] Gosub("Local/117@agentCallback-0000049e;1", "AGENT_RECORD,s,1(QueueA_1501508411.7472)") in new stack
   -- Executing [s@AGENT_RECORD:1] Set("Local/117@agentCallback-0000049e;1", "CHANNEL(musicclass)=silence") in new stack
   -- Executing [s@AGENT_RECORD:2] Gosub("Local/117@agentCallback-0000049e;1", "SET_XFER,s,1(YES)") in new stack
   -- Executing [s@SET_XFER:1] Set("Local/117@agentCallback-0000049e;1", "DB(XFER/1501508401.7468)=YES") in new stack
   -- Executing [s@SET_XFER:2] Return("Local/117@agentCallback-0000049e;1", "") in new stack
   -- Executing [s@AGENT_RECORD:3] MixMonitor("Local/117@agentCallback-0000049e;1", "/var/spool/asterisk/monitor/QueueA_1501508411.7472.gsm,abW(2)") in new stack
   -- Executing [s@AGENT_RECORD:4] Return("Local/117@agentCallback-0000049e;1", "") in new stack
   -- Executing [s@QUEUE_CONNECT:4] Set("Local/117@agentCallback-0000049e;1", "ODBC_AGENTUPDATE()=1501508401.7468,QueueA_1501508411.7472,Local/117@agentCallback/n") in new stack
   -- Channel SIP/1014-0000052a joined 'simple_bridge' basic-bridge <6d4bde2f-9b04-4dd1-8871-1655bcb69906>
   -- Channel Local/117@agentCallback-0000049e;2 joined 'simple_bridge' basic-bridge <6d4bde2f-9b04-4dd1-8871-1655bcb69906>
 == Begin MixMonitor Recording Local/117@agentCallback-0000049e;1
   -- Executing [s@QUEUE_CONNECT:5] Return("Local/117@agentCallback-0000049e;1", "") in new stack
 == Spawn extension (agentCallback, 1770, 1) exited non-zero on 'Local/117@agentCallback-0000049e;1'
   -- Local/117@agentCallback-0000049e;1 Internal Gosub(QUEUE_CONNECT,s,1(1501508401.7468)) complete GOSUB_RETVAL=
   -- Channel Local/117@agentCallback-0000049e;1 joined 'simple_bridge' basic-bridge <d246bf58-9067-4b6e-b23b-46915c47bc99>
   -- Channel DAHDI/i1/16114770-3ec joined 'simple_bridge' basic-bridge <d246bf58-9067-4b6e-b23b-46915c47bc99>
      > 0x7f352005da80 -- Probation passed - setting RTP source address to 192.168.1.54:50024


   -- Started music on hold, class 'q_QueueA', on channel 'DAHDI/i1/16114770-3ec'
   -- <Local/117@agentCallback-0000049e;1> Playing 'pbx-transfer.gsm' (language 'en')
   -- Channel Local/10@agentCallback-000004a2;1 joined 'simple_bridge' basic-bridge <14e8df7b-6375-439a-b810-843903a70f6d>
      > Found no rows [SELECT protocolo, usuario FROM peer,agente WHERE idagente = '10' AND peer.usuario=agente.logged_on]
   -- Channel Local/117@agentCallback-0000049e;1 left 'simple_bridge' basic-bridge <d246bf58-9067-4b6e-b23b-46915c47bc99>
   -- Channel Local/117@agentCallback-0000049e;1 joined 'simple_bridge' basic-bridge <14e8df7b-6375-439a-b810-843903a70f6d>
   -- Executing [10@agentCallback:1] Set("Local/10@agentCallback-000004a2;2", "ARRAY(PROTOCOLO,EXTENSION)=") in new stack
   -- Executing [10@agentCallback:2] GotoIf("Local/10@agentCallback-000004a2;2", "1?kerberus,10,1") in new stack
   -- Goto (kerberus,10,1)
   -- Executing [10@kerberus:1] Answer("Local/10@agentCallback-000004a2;2", "") in new stack
   -- Executing [10@kerberus:2] ExecIf("Local/10@agentCallback-000004a2;2", "1?Set(CALLERID(num)=16114770)") in new stack
   -- Executing [10@kerberus:3] Gosub("Local/10@agentCallback-000004a2;2", "Queues,10,1(QueueA)") in new stack
   -- Executing [10@Queues:1] NoOp("Local/10@agentCallback-000004a2;2", "") in new stack
   -- Executing [10@Queues:2] ExecIf("Local/10@agentCallback-000004a2;2", "1?Gosub(DELETE_XFER,s,1)") in new stack
   -- Executing [s@DELETE_XFER:1] NoOp("Local/10@agentCallback-000004a2;2", "YES") in new stack
   -- Executing [s@DELETE_XFER:2] Return("Local/10@agentCallback-000004a2;2", "") in new stack
   -- Executing [10@Queues:3] Set("Local/10@agentCallback-000004a2;2", "__CALLID=1501508401.7468") in new stack
   -- Executing [10@Queues:4] Set("Local/10@agentCallback-000004a2;2", "__TO_QUEUE=QueueA") in new stack
   -- Executing [10@Queues:5] Set("Local/10@agentCallback-000004a2;2", "__ORIGEN=16114770") in new stack
   -- Executing [10@Queues:6] Set("Local/10@agentCallback-000004a2;2", "QUEUE_PRIO=0") in new stack
   -- Executing [10@Queues:7] ExecIf("Local/10@agentCallback-000004a2;2", "0?Set(QUEUE_TIMEOUT=)") in new stack
   -- Executing [10@Queues:8] Set("Local/10@agentCallback-000004a2;2", "ODBC_AGENTLOG()=1501508441.7490,QueueA,NONE,QUEUE_CONNECT,1501508401.7468,16114770,10,,") in new stack
   -- Executing [10@Queues:9] Set("Local/10@agentCallback-000004a2;2", "CHANNEL(musicclass)=q_QueueA") in new stack
   -- Executing [10@Queues:10] System("Local/10@agentCallback-000004a2;2", "test -e /var/www/htdocs/cmds/ivr/QueueA_ann.wav") in new stack
   -- Executing [10@Queues:11] Queue("Local/10@agentCallback-000004a2;2", "QueueA,tT,,,,,,QUEUE_CONNECT\,1501508441.7490") in new stack
   -- Started music on hold, class 'q_QueueA', on channel 'Local/10@agentCallback-000004a2;2'


   -- Called Local/145@agentCallback/n
   -- Executing [145@agentCallback:1] Set("Local/145@agentCallback-000004a3;2", "ARRAY(PROTOCOLO,EXTENSION)=SIP,1004") in new stack
   -- Executing [145@agentCallback:2] GotoIf("Local/145@agentCallback-000004a3;2", "0?kerberus,145,1") in new stack
   -- Executing [145@agentCallback:3] ExecIf("Local/145@agentCallback-000004a3;2", "0?Hangup()") in new stack
   -- Executing [145@agentCallback:4] NoOp("Local/145@agentCallback-000004a3;2", "Connecting the current call Local/145@agentCallback-000004a3;2 to agent 145 - ") in new stack
   -- Executing [145@agentCallback:5] Dial("Local/145@agentCallback-000004a3;2", "SIP/1004,,U(agent-xfer-hangup^145)") in new stack
 == Using SIP VIDEO CoS mark 6
 == Using SIP RTP CoS mark 5
   -- Called SIP/1004
   -- SIP/1004-0000052e is ringing
   -- Local/145@agentCallback-000004a3;1 is ringing
 
   -- SIP/1004-0000052e answered Local/145@agentCallback-000004a3;2
   -- SIP/1004-0000052e Internal Gosub(agent-xfer-hangup,s,1(145)) start
   -- Executing [s@agent-xfer-hangup:1] ExecIf("SIP/1004-0000052e", "0?Set(CHANNEL(hangup_handler_push)=agent-xfer-hangup,end,1(145,1501508441.7493))") in new stack
   -- Executing [s@agent-xfer-hangup:2] Return("SIP/1004-0000052e", "") in new stack
 == Spawn extension (kerberus, , 1) exited non-zero on 'SIP/1004-0000052e'
   -- SIP/1004-0000052e Internal Gosub(agent-xfer-hangup,s,1(145)) complete GOSUB_RETVAL=


   -- Local/145@agentCallback-000004a3;1 answered Local/10@agentCallback-000004a2;2
   -- Stopped music on hold on Local/10@agentCallback-000004a2;2


   -- Local/145@agentCallback-000004a3;1 Internal Gosub(QUEUE_CONNECT,s,1(1501508441.7490)) start
   -- Executing [s@QUEUE_CONNECT:1] NoOp("Local/145@agentCallback-000004a3;1", "**** Local/145@agentCallback/n ****") in new stack
   -- Executing [s@QUEUE_CONNECT:2] Set("Local/145@agentCallback-000004a3;1", "MFILE=QueueA_1501508441.7491") in new stack
   -- Executing [s@QUEUE_CONNECT:3] Gosub("Local/145@agentCallback-000004a3;1", "AGENT_RECORD,s,1(QueueA_1501508441.7491)") in new stack
   -- Executing [s@AGENT_RECORD:1] Set("Local/145@agentCallback-000004a3;1", "CHANNEL(musicclass)=silence") in new stack
   -- Executing [s@AGENT_RECORD:2] Gosub("Local/145@agentCallback-000004a3;1", "SET_XFER,s,1(YES)") in new stack
   -- Executing [s@SET_XFER:1] Set("Local/145@agentCallback-000004a3;1", "DB(XFER/1501508401.7468)=YES") in new stack
   -- Executing [s@SET_XFER:2] Return("Local/145@agentCallback-000004a3;1", "") in new stack
   -- Executing [s@AGENT_RECORD:3] MixMonitor("Local/145@agentCallback-000004a3;1", "/var/spool/asterisk/monitor/QueueA_1501508441.7491.gsm,abW(2)") in new stack
   -- Executing [s@AGENT_RECORD:4] Return("Local/145@agentCallback-000004a3;1", "") in new stack
   -- Executing [s@QUEUE_CONNECT:4] Set("Local/145@agentCallback-000004a3;1", "ODBC_AGENTUPDATE()=1501508441.7490,QueueA_1501508441.7491,Local/145@agentCallback/n") in new stack
   -- Executing [s@QUEUE_CONNECT:5] Return("Local/145@agentCallback-000004a3;1", "") in new stack
 == Spawn extension (agentCallback, 10, 1) exited non-zero on 'Local/145@agentCallback-000004a3;1'
   -- Local/145@agentCallback-000004a3;1 Internal Gosub(QUEUE_CONNECT,s,1(1501508441.7490)) complete GOSUB_RETVAL=
 == Begin MixMonitor Recording Local/145@agentCallback-000004a3;1
   -- Channel SIP/1004-0000052e joined 'simple_bridge' basic-bridge <cb93bfaa-2b60-4cf9-8e82-aa1ceea28a7e>
   -- Channel Local/145@agentCallback-000004a3;2 joined 'simple_bridge' basic-bridge <cb93bfaa-2b60-4cf9-8e82-aa1ceea28a7e>
   -- Channel Local/145@agentCallback-000004a3;1 joined 'simple_bridge' basic-bridge <b0606ad4-7a8d-46e3-bc0a-f8ccdbc89872>
   -- Channel Local/10@agentCallback-000004a2;2 joined 'simple_bridge' basic-bridge <b0606ad4-7a8d-46e3-bc0a-f8ccdbc89872>
      > 0x7f358406fea0 -- Probation passed - setting RTP source address to 192.168.1.54:50004
 
   -- Span 1: Channel 0/4 got hangup request, cause 16
   -- Stopped music on hold on DAHDI/i1/16114770-3ec
   -- Channel DAHDI/i1/16114770-3ec left 'simple_bridge' basic-bridge <d246bf58-9067-4b6e-b23b-46915c47bc99>
 == Spawn extension (Queues, 1770, 11) exited non-zero on 'DAHDI/i1/16114770-3ec'
   -- Executing [h@Queues:1] NoOp("DAHDI/i1/16114770-3ec", "YES") in new stack
   -- Hungup 'DAHDI/i1/16114770-3ec'
 
   -- <Local/117@agentCallback-0000049e;1> Playing 'beeperr.gsm' (language 'en')
      > Move-swap optimizing Local/10@agentCallback-000004a2;2 <-- Local/117@agentCallback-0000049e;1.
   -- Channel Local/117@agentCallback-0000049e;1 left 'simple_bridge' basic-bridge <14e8df7b-6375-439a-b810-843903a70f6d>
   -- Channel Local/10@agentCallback-000004a2;2 left 'simple_bridge' basic-bridge <b0606ad4-7a8d-46e3-bc0a-f8ccdbc89872>
   -- Channel Local/117@agentCallback-0000049e;1 swapped with Local/10@agentCallback-000004a2;2 into 'simple_bridge' basic-bridge <b0606ad4-7a8d-46e3-bc0a-f8ccdbc89872>
   -- Channel Local/10@agentCallback-000004a2;1 left 'simple_bridge' basic-bridge <14e8df7b-6375-439a-b810-843903a70f6d>
 == Spawn extension (Queues, 10, 11) exited non-zero on 'Local/10@agentCallback-000004a2;2'
   -- Executing [h@Queues:1] NoOp("Local/10@agentCallback-000004a2;2", "") in new stack
   -- Channel SIP/1014-0000052a left 'simple_bridge' basic-bridge <6d4bde2f-9b04-4dd1-8871-1655bcb69906>
   -- Channel Local/117@agentCallback-0000049e;2 left 'simple_bridge' basic-bridge <6d4bde2f-9b04-4dd1-8871-1655bcb69906>
 == Spawn extension (agentCallback, 117, 5) exited non-zero on 'Local/117@agentCallback-0000049e;2'
   -- Channel Local/117@agentCallback-0000049e;1 left 'simple_bridge' basic-bridge <b0606ad4-7a8d-46e3-bc0a-f8ccdbc89872>
   -- Channel Local/145@agentCallback-000004a3;1 left 'simple_bridge' basic-bridge <b0606ad4-7a8d-46e3-bc0a-f8ccdbc89872>
 == MixMonitor close filestream (mixed)
 == MixMonitor close filestream (mixed)
 == End MixMonitor Recording Local/117@agentCallback-0000049e;1
   -- Channel Local/145@agentCallback-000004a3;2 left 'simple_bridge' basic-bridge <cb93bfaa-2b60-4cf9-8e82-aa1ceea28a7e>
 == Spawn extension (agentCallback, 145, 5) exited non-zero on 'Local/145@agentCallback-000004a3;2'
   -- Channel SIP/1004-0000052e left 'simple_bridge' basic-bridge <cb93bfaa-2b60-4cf9-8e82-aa1ceea28a7e>
{code}

By: Mario Lenis (mario.lenis) 2017-08-09 11:08:01.528-0500

Hi everyone, still no luck.

Here's the link of the most recent log and cores files

[http://kerberus.com.co/core/kerberus.log-2017-08-08T13-00-50-0500.txt]

In the file above, the scenario went like this.

1. Call enters to a QueueA
2. Call is answered by Agent 117
3. Agent transfer to QueueB (using ## as attended transfer in features.conf)
4. Call is answered by Agent 309
5. Agent transfer to Extension 3001 (attended transfer)
6. Person in 3001 answers the call and makes an attended transfer to QueueA (attended transfer)
7. Call is answered by Agent 129
8. Caller hangs up and Asterisk crash.

[http://kerberus.com.co/core/core.kerberus-2017-08-08T13-00-50-0500-brief.txt]
[http://kerberus.com.co/core/core.kerberus-2017-08-08T13-00-50-0500-full.txt]
[http://kerberus.com.co/core/core.kerberus-2017-08-08T13-00-50-0500-thread1.txt]

Thanks in advance for your help.

By: Rusty Newton (rnewton) 2017-08-16 15:52:22.387-0500

Thanks for all the additional information. That is really detailed and will help out in the investigation. I'm going to close your issue out now and you can watch and participate on ASTERISK-27006. We try to consolidate issues when they are duplicates. All of your information will still be here and available for a developer or community member to view.

Feel free to post any further communication on ASTERISK-27006.