No. Asterisk will forcefully hangup on you after 7 ‘depths’ in the same macro context. This can not be changed. Thus in FreePBX we set the value to 6 so that we do the hangup and you know why instead of Asterisk doing the hangup.
I can’t replicated the 7 disconnects in the same macro context on Asterisk 13:
-- Executing [123@api-test:1] Macro("SIP/2000-00000006", "myloop") in new stack
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
-- Executing [s@macro-myloop:2] Wait("SIP/2000-00000006", "2") in new stack
-- Executing [s@macro-myloop:3] Goto("SIP/2000-00000006", "1") in new stack
-- Goto (macro-myloop,s,1)
-- Executing [s@macro-myloop:1] Playback("SIP/2000-00000006", "demo-echodone") in new stack
-- <SIP/2000-00000006> Playing 'demo-echodone.ulaw' (language 'en')
No call disconnect on Asterisk 13 after 11 loops in the same macro.
Am I understanding it correctly?
Regards