SIP Trunk Blind Transfer Hang-up

I am having issues with successfully completing a blind transfer of both incoming and local calls. Below is a capture of an incoming call to x322, transfered to x319 and then a failed blind transfer back to x322.

Currently running FreePBX 2.8.0 & Asterisk 1.4.38. Original install was PIAF v1.3.

Any ideas on how to start tracking down ZOMBIE?

pbx*CLI>

    -- Executing [6165551212@from-trunk-sip-McLeodUSA:1] Set("SIP/McLeodUSA-00000050", "GROUP()=OUT_2") in new stack
    -- Executing [6165551212@from-trunk-sip-McLeodUSA:2] Goto("SIP/McLeodUSA-00000050", "from-trunk|6165551212|1") in new stack
    -- Goto (from-trunk,6165551212,1)
    -- Executing [6165551212@from-trunk:1] NoOp("SIP/McLeodUSA-00000050", "Catch-All DID Match - Found 6165551212 - You probably want a DID for this.") in new stack
    -- Executing [6165551212@from-trunk:2] Goto("SIP/McLeodUSA-00000050", "ext-did|s|1") in new stack
    -- Goto (ext-did,s,1)
    -- Executing [s@ext-did:1] Set("SIP/McLeodUSA-00000050", "__FROM_DID=s") in new stack
    -- Executing [s@ext-did:2] ExecIf("SIP/McLeodUSA-00000050", "0 |Set|CALLERID(name)=6165553882") in new stack
    -- Executing [s@ext-did:3] Set("SIP/McLeodUSA-00000050", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [s@ext-did:4] SetCallerPres("SIP/McLeodUSA-00000050", "allowed_not_screened") in new stack
    -- Executing [s@ext-did:5] Goto("SIP/McLeodUSA-00000050", "timeconditions|1|1") in new stack
    -- Goto (timeconditions,1,1)
    -- Executing [1@timeconditions:1] GotoIfTime("SIP/McLeodUSA-00000050", "17:00-08:00|mon-fri|*|*?ivr-2|s|1") in new stack
    -- Executing [1@timeconditions:2] GotoIfTime("SIP/McLeodUSA-00000050", "12:00-23:59|*|23-25|dec?ivr-2|s|1") in new stack
    -- Executing [1@timeconditions:3] GotoIfTime("SIP/McLeodUSA-00000050", "*|sat-sun|*|*?ivr-2|s|1") in new stack
    -- Executing [1@timeconditions:4] GotoIfTime("SIP/McLeodUSA-00000050", "*|*|4|jul?ivr-2|s|1") in new stack
    -- Executing [1@timeconditions:5] GotoIfTime("SIP/McLeodUSA-00000050", "*|*|31|may?ivr-2|s|1") in new stack
    -- Executing [1@timeconditions:6] GotoIfTime("SIP/McLeodUSA-00000050", "*|*|25-26|nov?ivr-2|s|1") in new stack
    -- Executing [1@timeconditions:7] GotoIfTime("SIP/McLeodUSA-00000050", "*|*|1|jan?ivr-2|s|1") in new stack
    -- Executing [1@timeconditions:8] Goto("SIP/McLeodUSA-00000050", "ivr-3|s|1") in new stack
    -- Goto (ivr-3,s,1)
    -- Executing [s@ivr-3:1] Set("SIP/McLeodUSA-00000050", "MSG=custom/New_Welcome") in new stack
    -- Executing [s@ivr-3:2] Set("SIP/McLeodUSA-00000050", "LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-3:3] Set("SIP/McLeodUSA-00000050", "__DIR-CONTEXT=") in new stack
    -- Executing [s@ivr-3:4] Set("SIP/McLeodUSA-00000050", "_IVR_CONTEXT_ivr-3=") in new stack
    -- Executing [s@ivr-3:5] Set("SIP/McLeodUSA-00000050", "_IVR_CONTEXT=ivr-3") in new stack
    -- Executing [s@ivr-3:6] GotoIf("SIP/McLeodUSA-00000050", "0?begin") in new stack
    -- Executing [s@ivr-3:7] Answer("SIP/McLeodUSA-00000050", "") in new stack
    -- Executing [s@ivr-3:8] Wait("SIP/McLeodUSA-00000050", "1") in new stack
    -- Executing [s@ivr-3:9] Set("SIP/McLeodUSA-00000050", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3
    -- Executing [s@ivr-3:10] Set("SIP/McLeodUSA-00000050", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing [s@ivr-3:11] Set("SIP/McLeodUSA-00000050", "__IVR_RETVM=") in new stack
    -- Executing [s@ivr-3:12] ExecIf("SIP/McLeodUSA-00000050", "1|Background|custom/New_Welcome") in new stack
    -- <SIP/McLeodUSA-00000050> Playing 'custom/New_Welcome' (language 'en')
  == CDR updated on SIP/McLeodUSA-00000050
    -- Executing [322@ivr-3:1] ExecIf("SIP/McLeodUSA-00000050", "0|dbDel|") in new stack
    -- Executing [322@ivr-3:2] Set("SIP/McLeodUSA-00000050", "__NODEST=") in new stack
    -- Executing [322@ivr-3:3] Goto("SIP/McLeodUSA-00000050", "from-did-direct|322|1") in new stack
    -- Goto (from-did-direct,322,1)
    -- Executing [322@from-did-direct:1] GotoIf("SIP/McLeodUSA-00000050", "1?ext-local|322|1") in new stack
    -- Goto (ext-local,322,1)
    -- Executing [322@ext-local:1] Macro("SIP/McLeodUSA-00000050", "exten-vm|322|322") in new stack
    -- Executing [s@macro-exten-vm:1] Macro("SIP/McLeodUSA-00000050", "user-callerid|") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/McLeodUSA-00000050", "AMPUSER=6165553882") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/McLeodUSA-00000050", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/McLeodUSA-00000050", "1|Set|REALCALLERIDNUM=6165553882") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/McLeodUSA-00000050", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/McLeodUSA-00000050", "AMPUSERCIDNAME=") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/McLeodUSA-00000050", "1?report") in new stack
    -- Goto (macro-user-callerid,s,9)
    -- Executing [s@macro-user-callerid:9] GotoIf("SIP/McLeodUSA-00000050", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:10] Set("SIP/McLeodUSA-00000050", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:11] GotoIf("SIP/McLeodUSA-00000050", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,18)
    -- Executing [s@macro-user-callerid:18] NoOp("SIP/McLeodUSA-00000050", "Using CallerID "Unavailable" <6165553882>") in new stack
    -- Executing [s@macro-exten-vm:2] Set("SIP/McLeodUSA-00000050", "RingGroupMethod=none") in new stack
    -- Executing [s@macro-exten-vm:3] Set("SIP/McLeodUSA-00000050", "VMBOX=322") in new stack
    -- Executing [s@macro-exten-vm:4] Set("SIP/McLeodUSA-00000050", "__EXTTOCALL=322") in new stack
    -- Executing [s@macro-exten-vm:5] Set("SIP/McLeodUSA-00000050", "CFUEXT=") in new stack
    -- Executing [s@macro-exten-vm:6] Set("SIP/McLeodUSA-00000050", "CFBEXT=") in new stack
    -- Executing [s@macro-exten-vm:7] Set("SIP/McLeodUSA-00000050", "RT=25") in new stack
    -- Executing [s@macro-exten-vm:8] Macro("SIP/McLeodUSA-00000050", "record-enable|322|IN") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/McLeodUSA-00000050", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] ExecIf("SIP/McLeodUSA-00000050", "0|MacroExit|") in new stack
    -- Executing [s@macro-record-enable:5] GotoIf("SIP/McLeodUSA-00000050", "0?Group:OUT") in new stack
    -- Goto (macro-record-enable,s,15)
    -- Executing [s@macro-record-enable:15] GotoIf("SIP/McLeodUSA-00000050", "1?IN") in new stack
    -- Goto (macro-record-enable,s,20)
    -- Executing [s@macro-record-enable:20] ExecIf("SIP/McLeodUSA-00000050", "1|MacroExit|") in new stack
    -- Executing [s@macro-exten-vm:9] Macro("SIP/McLeodUSA-00000050", "dial|25|trWw|322") in new stack
    -- Executing [s@macro-dial:1] GotoIf("SIP/McLeodUSA-00000050", "1?dial") in new stack
    -- Goto (macro-dial,s,3)
    -- Executing [s@macro-dial:3] AGI("SIP/McLeodUSA-00000050", "dialparties.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
  dialparties.agi: Starting New Dialparties.agi
  == Parsing '/etc/asterisk/manager.conf': Found
  == Parsing '/etc/asterisk/manager_additional.conf': Found
  == Parsing '/etc/asterisk/manager_custom.conf': Found
  dialparties.agi: Caller ID name is 'Unavailable' number is '6165553882'
  dialparties.agi: USE_CONFIRMATION:  'FALSE'
  dialparties.agi: RINGGROUP_INDEX:   ''
  dialparties.agi: Methodology of ring is  'none'
    --  dialparties.agi: Added extension 322 to extension map
       >  dialparties.agi: Extension 322 has call screening off
    --  dialparties.agi: Extension 322 cf is disabled
    --  dialparties.agi: Extension 322 do not disturb is disabled
      >  dialparties.agi: extnum 322 has:  cw: 1; hascfb: 0 [] hascfu: 0 []
  dialparties.agi: ExtensionState: 0
    --  dialparties.agi: dbset CALLTRACE/322 to 6165553882
    --  dialparties.agi: Filtered ARG3: 322
    -- AGI Script dialparties.agi completed, returning 0
    -- Executing [s@macro-dial:7] Dial("SIP/McLeodUSA-00000050", "SIP/322|25|trWw") in new stack
    -- Called 322
    -- SIP/322-00000051 is ringing
    -- SIP/322-00000051 answered SIP/McLeodUSA-00000050
    -- Started music on hold, class 'default', on SIP/McLeodUSA-00000050
    -- Executing [319@from-internal:1] Macro("SIP/322-00000052", "exten-vm|novm|319") in new stack
    -- Executing [s@macro-exten-vm:1] Macro("SIP/322-00000052", "user-callerid|") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/322-00000052", "AMPUSER=322") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/322-00000052", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/322-00000052", "1|Set|REALCALLERIDNUM=322") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/322-00000052", "AMPUSER=322") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/322-00000052", "AMPUSERCIDNAME=UserName") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/322-00000052", "0?report") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/322-00000052", "AMPUSERCID=322") in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/322-00000052", "CALLERID(all)="UserName" <322>") in new stack
    -- Executing [s@macro-user-callerid:9] GotoIf("SIP/322-00000052", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:10] Set("SIP/322-00000052", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:11] GotoIf("SIP/322-00000052", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,18)
    -- Executing [s@macro-user-callerid:18] NoOp("SIP/322-00000052", "Using CallerID "UserName" <322>") in new stack
    -- Executing [s@macro-exten-vm:2] Set("SIP/322-00000052", "RingGroupMethod=none") in new stack
    -- Executing [s@macro-exten-vm:3] Set("SIP/322-00000052", "VMBOX=novm") in new stack
    -- Executing [s@macro-exten-vm:4] Set("SIP/322-00000052", "__EXTTOCALL=319") in new stack
    -- Executing [s@macro-exten-vm:5] Set("SIP/322-00000052", "CFUEXT=") in new stack
    -- Executing [s@macro-exten-vm:6] Set("SIP/322-00000052", "CFBEXT=") in new stack
    -- Executing [s@macro-exten-vm:7] Set("SIP/322-00000052", "RT=""") in new stack
    -- Executing [s@macro-exten-vm:8] Macro("SIP/322-00000052", "record-enable|319|IN") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/322-00000052", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] ExecIf("SIP/322-00000052", "0|MacroExit|") in new stack
    -- Executing [s@macro-record-enable:5] GotoIf("SIP/322-00000052", "0?Group:OUT") in new stack
    -- Goto (macro-record-enable,s,15)
    -- Executing [s@macro-record-enable:15] GotoIf("SIP/322-00000052", "1?IN") in new stack
    -- Goto (macro-record-enable,s,20)
    -- Executing [s@macro-record-enable:20] ExecIf("SIP/322-00000052", "1|MacroExit|") in new stack
    -- Executing [s@macro-exten-vm:9] Macro("SIP/322-00000052", "dial||trWw|319") in new stack
    -- Executing [s@macro-dial:1] GotoIf("SIP/322-00000052", "1?dial") in new stack
    -- Goto (macro-dial,s,3)
    -- Executing [s@macro-dial:3] AGI("SIP/322-00000052", "dialparties.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
  dialparties.agi: Starting New Dialparties.agi
  == Parsing '/etc/asterisk/manager.conf': Found
  == Parsing '/etc/asterisk/manager_additional.conf': Found
  == Parsing '/etc/asterisk/manager_custom.conf': Found
  dialparties.agi: Caller ID name is 'UserName' number is '322'
  dialparties.agi: USE_CONFIRMATION:  'FALSE'
  dialparties.agi: RINGGROUP_INDEX:   ''
  dialparties.agi: Methodology of ring is  'none'
    --  dialparties.agi: Added extension 319 to extension map
    --  dialparties.agi: Extension 319 cf is disabled
    --  dialparties.agi: Extension 319 do not disturb is disabled
       >  dialparties.agi: extnum 319 has:  cw: 1; hascfb: 0 [] hascfu: 0 []
  dialparties.agi: ExtensionState: 0
    --  dialparties.agi: dbset CALLTRACE/319 to 322
    --  dialparties.agi: Filtered ARG3: 319
    -- AGI Script dialparties.agi completed, returning 0
    -- Executing [s@macro-dial:7] Dial("SIP/322-00000052", "SIP/319||trWw") in new stack
    -- Called 319
    -- SIP/319-00000053 is ringing
    -- SIP/319-00000053 answered SIP/322-00000052
    -- Stopped music on hold on SIP/McLeodUSA-00000050
    -- Executing [h@macro-dial:1] Macro("SIP/322-00000052<ZOMBIE>", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/322-00000052<ZOMBIE>", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,4)
    -- Executing [s@macro-hangupcall:4] GotoIf("SIP/322-00000052<ZOMBIE>", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/322-00000052<ZOMBIE>", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] Hangup("SIP/322-00000052<ZOMBIE>", "") in new stack
  == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/322-00000052<ZOMBIE>' in macro 'hangupcall'
  == Spawn h extension (macro-dial, h, 1) exited non-zero on 'SIP/322-00000052<ZOMBIE>'
  == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/322-00000052<ZOMBIE>' in macro 'dial'
  == Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'SIP/322-00000052<ZOMBIE>' in macro 'exten-vm'
  == Spawn extension (ext-local, 322, 1) exited non-zero on 'SIP/322-00000052<ZOMBIE>'
    -- Started music on hold, class 'default', on SIP/McLeodUSA-00000050
    -- Stopped music on hold on SIP/McLeodUSA-00000050
    -- Started music on hold, class 'default', on SIP/McLeodUSA-00000050
    -- Stopped music on hold on SIP/McLeodUSA-00000050
    -- Executing [h@from-internal-xfer:1] Macro("SIP/McLeodUSA-00000050", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/McLeodUSA-00000050", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,4)
    -- Executing [s@macro-hangupcall:4] GotoIf("SIP/McLeodUSA-00000050", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/McLeodUSA-00000050", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] Hangup("SIP/McLeodUSA-00000050", "") in new stack
  == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/McLeodUSA-00000050' in macro 'hangupcall'
  == Spawn h extension (from-internal-xfer, s, 1) exited non-zero on 'SIP/McLeodUSA-00000050'
  == Spawn extension (from-internal-xfer, 322, 0) exited non-zero on 'SIP/McLeodUSA-00000050' in macro 'dial'
  == Spawn extension (from-internal-xfer, 322, 0) exited non-zero on 'SIP/McLeodUSA-00000050' in macro 'exten-vm'
  == Spawn extension (from-internal-xfer, 322, 0) exited non-zero on 'SIP/McLeodUSA-00000050'

Same problem here but only with half attended transfers. Solved by 1.4.39 RC1.

Issue was resolved after installing Asterisk 1.4.39-rc1.

Thanks for the suggestion.

1.4.39-rc1 was just released (roughly one hour ago) and corrects a transfer bug that was introduced into 1.4.38.

I experienced the bug with Manager transfers. According to the changelog, the bug affects SIP REFER also–the method used to perform a blind transfer in SIP.

See http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/ChangeLog-1.4.39-rc1 and search for “r295790”