This is a slower time period so I’ve upgraded to FreePBX 2.5.10 again also did an upgrade of Asterisk to SVN-branch-1.4-r166509. Same issue.
The loop is created as soon as the DISA user hangs up.
{{{
include => disa-custom
exten => 1,1,Authenticate(1234567,)
exten => 1,n,Set(_DISA=“disa,1,newcall”)
exten => 1,n(newcall),Set(_DISACONTEXT=from-internal)
exten => 1,n,Set(_KEEPCID=TRUE)
exten => 1,n,Set(TIMEOUT(digit)=5)
exten => 1,n,Set(TIMEOUT(response)=10)
exten => 1,n,DISA(no-password,disa-dial)
exten => 1,n(end),Hangup
exten => 2,1,Authenticate(1234567,)
exten => 2,n,Set(_DISA=“disa,2,newcall”)
exten => 2,n(newcall),Set(_DISACONTEXT=from-internal)
exten => 2,n,Set(_KEEPCID=TRUE)
exten => 2,n,Set(TIMEOUT(digit)=5)
exten => 2,n,Set(TIMEOUT(response)=10)
exten => 2,n,Set(CALLERID(all)=<1234567>)
exten => 2,n,DISA(no-password,disa-dial)
exten => 2,n(end),Hangup
[disa-dial]
include => disa-dial-custom
exten => _.,1,Noop(called ${EXTEN} in ${DISACONTEXT} by ${DISA})
exten => _.,n,Dial(Local/${EXTEN}@${DISACONTEXT},300,${HANGUP})
exten => _.,n,Gosub(s-${DIALSTATUS},1)
exten => _.,n,Goto(${DISA})
exten => s-ANSWER,1,Return()
exten => s-CANCEL,1,Return()
exten => s-BUSY,1,Playtones(busy)
exten => s-BUSY,n,Wait(3)
exten => s-BUSY,n,Return()
exten => _s-.,1,Noop(DISA Dial failed due to ${DIALSTATUS} - returning to dial tone)
exten => _s-.,n,Playtones(congestion)
exten => _s-.,n,Wait(3)
exten => _s-.,n,StopPlaytones
exten => _s-.,n,Return()
; end of [disa-dial]
}}}