This was discovered on Freepbx 17 using Sangoma talk mobile.
The extension 104 is set to unconditional call forwarding to 402 through the app.
The queue is setup to ignore follow me/call forwarding, aka call extensions only.
When the queue call comes in, the system tries to dial extension 104, but gets hangup response every second during agent timeout time span.
Executing [104@from-queue:1] Set(“Local/104@from-queue-00001074;2”, “QAGENT=104”) in new stack
– Executing [104@from-queue:2] Set(“Local/104@from-queue-00001074;2”, “__FROMQ=true”) in new stack
– Executing [104@from-queue:3] UserEvent(“Local/104@from-queue-00001074;2”, “QueueMemberCallDial,QAGENT:104,UNIQ:1777217610.43165,Queue:1903,LinkedID:”) in new stack
– Executing [104@from-queue:4] Set(“Local/104@from-queue-00001074;2”, “CHANNEL(hangup_handler_push)=queueMemberCall-hangup,s,1(104,1777217610.43165,1903)”) in new stack
– Executing [104@from-queue:5] GotoIf(“Local/104@from-queue-00001074;2”, “0?hangup”) in new stack
– Executing [104@from-queue:6] GotoIf(“Local/104@from-queue-00001074;2”, “1?1903,1:hangup”) in new stack
– Goto (from-queue,1903,1)
– Executing [1903@from-queue:1] Goto(“Local/104@from-queue-00001074;2”, “from-queue-exten-only,104,1”) in new stack
– Goto (from-queue-exten-only,104,1)
– Executing [104@from-queue-exten-only:1] GotoIf(“Local/104@from-queue-00001074;2”, “0?hangup”) in new stack
– Executing [104@from-queue-exten-only:2] GotoIf(“Local/104@from-queue-00001074;2”, “0?from-queue-exten-only-x,104,1”) in new stack
– Executing [104@from-queue-exten-only:3] Set(“Local/104@from-queue-00001074;2”, “RingGroupMethod=none”) in new stack
– Executing [104@from-queue-exten-only:4] Set(“Local/104@from-queue-00001074;2”, “CHANNEL(language)=en”) in new stack
– Executing [104@from-queue-exten-only:5] Set(“Local/104@from-queue-00001074;2”, “QDOPTS=”) in new stack
– Executing [104@from-queue-exten-only:6] Set(“Local/104@from-queue-00001074;2”, “CALLTYPE_OVERRIDE=external”) in new stack
– Executing [104@from-queue-exten-only:7] ExecIf(“Local/104@from-queue-00001074;2”, “0?Set(FROMEXTEN=1903)”) in new stack
– Executing [104@from-queue-exten-only:8] Gosub(“Local/104@from-queue-00001074;2”, “sub-record-check,s,1(exten,104,)”) in new stack
– Executing [s@sub-record-check:1] GotoIf(“Local/104@from-queue-00001074;2”, “3?initialized”) in new stack
– Goto (sub-record-check,s,10)
– Executing [s@sub-record-check:10] NoOp(“Local/104@from-queue-00001074;2”, “Recordings initialized”) in new stack
– Executing [s@sub-record-check:11] ExecIf(“Local/104@from-queue-00001074;2”, “1?Set(ARG3=dontcare)”) in new stack
– Executing [s@sub-record-check:12] Set(“Local/104@from-queue-00001074;2”, “REC_POLICY_MODE_SAVE=YES”) in new stack
– Executing [s@sub-record-check:13] ExecIf(“Local/104@from-queue-00001074;2”, “0?Set(REC_STATUS=NO)”) in new stack
– Executing [s@sub-record-check:14] GotoIf(“Local/104@from-queue-00001074;2”, “5?checkaction”) in new stack
– Goto (sub-record-check,s,17)
– Executing [s@sub-record-check:17] GotoIf(“Local/104@from-queue-00001074;2”, “1?sub-record-check,exten,1”) in new stack
– Goto (sub-record-check,exten,1)
– Executing [exten@sub-record-check:1] NoOp(“Local/104@from-queue-00001074;2”, “Exten Recording Check between 113 and 104”) in new stack
– Executing [exten@sub-record-check:2] Set(“Local/104@from-queue-00001074;2”, “CALLTYPE=internal”) in new stack
– Executing [exten@sub-record-check:3] ExecIf(“Local/104@from-queue-00001074;2”, “8?Set(CALLTYPE=external)”) in new stack
– Executing [exten@sub-record-check:4] Set(“Local/104@from-queue-00001074;2”, “CALLEE=dontcare”) in new stack
– Executing [exten@sub-record-check:5] ExecIf(“Local/104@from-queue-00001074;2”, “0?Set(CALLEE=dontcare)”) in new stack
– Executing [exten@sub-record-check:6] GotoIf(“Local/104@from-queue-00001074;2”, “1?callee”) in new stack
– Goto (sub-record-check,exten,11)
– Executing [exten@sub-record-check:11] Gosub(“Local/104@from-queue-00001074;2”, “recordcheck,1(dontcare,external,104)”) in new stack
– Executing [recordcheck@sub-record-check:1] NoOp(“Local/104@from-queue-00001074;2”, “Starting recording check against dontcare”) in new stack
– Executing [recordcheck@sub-record-check:2] Goto(“Local/104@from-queue-00001074;2”, “dontcare”) in new stack
– Goto (sub-record-check,recordcheck,3)
– Executing [recordcheck@sub-record-check:3] Return(“Local/104@from-queue-00001074;2”, “”) in new stack
– Executing [exten@sub-record-check:12] Return(“Local/104@from-queue-00001074;2”, “”) in new stack
– Executing [104@from-queue-exten-only:9] Gosub(“Local/104@from-queue-00001074;2”, “macro-dial-one,s,1(,104)”) in new stack
– Executing [s@macro-dial-one:1] Set(“Local/104@from-queue-00001074;2”, “DEXTEN=104”) in new stack
– Executing [s@macro-dial-one:2] ExecIf(“Local/104@from-queue-00001074;2”, “1?Set(__EXTTOCALL=104)”) in new stack
– Executing [s@macro-dial-one:3] Set(“Local/104@from-queue-00001074;2”, “DIALSTATUS_CW=”) in new stack
– Executing [s@macro-dial-one:4] GosubIf(“Local/104@from-queue-00001074;2”, “0?screen,1()”) in new stack
– Executing [s@macro-dial-one:5] GosubIf(“Local/104@from-queue-00001074;2”, “1?cf,1()”) in new stack
– Executing [cf@macro-dial-one:1] Set(“Local/104@from-queue-00001074;2”, “CFAMPUSER=113”) in new stack
– Executing [cf@macro-dial-one:2] ExecIf(“Local/104@from-queue-00001074;2”, “0?Return()”) in new stack
– Executing [cf@macro-dial-one:3] ExecIf(“Local/104@from-queue-00001074;2”, “0?Set(ARG1=0)”) in new stack
– Executing [cf@macro-dial-one:4] ExecIf(“Local/104@from-queue-00001074;2”, “1?Set(ARG1=0)”) in new stack
– Executing [cf@macro-dial-one:5] Set(“Local/104@from-queue-00001074;2”, “DEXTEN=”) in new stack
– Executing [cf@macro-dial-one:6] Set(“Local/104@from-queue-00001074;2”, “__DIVERSION_REASON=”) in new stack
– Executing [cf@macro-dial-one:7] ExecIf(“Local/104@from-queue-00001074;2”, “0?Return()”) in new stack
– Executing [cf@macro-dial-one:8] Set(“Local/104@from-queue-00001074;2”, “DIALSTATUS=NOANSWER”) in new stack
– Executing [cf@macro-dial-one:9] Return(“Local/104@from-queue-00001074;2”, “”) in new stack
– Executing [s@macro-dial-one:6] GotoIf(“Local/104@from-queue-00001074;2”, “1?skip1”) in new stack
– Goto (macro-dial-one,s,9)
– Executing [s@macro-dial-one:9] GotoIf(“Local/104@from-queue-00001074;2”, “1?nodial”) in new stack
– Goto (macro-dial-one,s,61)
– Executing [s@macro-dial-one:61] NoOp(“Local/104@from-queue-00001074;2”, “”) in new stack
– Executing [s@macro-dial-one:62] ExecIf(“Local/104@from-queue-00001074;2”, “0?Set(DIALSTATUS=NOANSWER)”) in new stack
– Executing [s@macro-dial-one:63] NoOp(“Local/104@from-queue-00001074;2”, “Returned from dial-one with nothing to call and DIALSTATUS: NOANSWER”) in new stack
– Executing [s@macro-dial-one:64] Return(“Local/104@from-queue-00001074;2”, “”) in new stack
– Executing [104@from-queue-exten-only:10] GotoIf(“Local/104@from-queue-00001074;2”, “0?,”) in new stack
– Executing [104@from-queue-exten-only:11] Hangup(“Local/104@from-queue-00001074;2”, “”) in new stack
== Spawn extension (from-queue-exten-only, 104, 11) exited non-zero on ‘Local/104@from-queue-00001074;2’
– Executing [h@from-queue-exten-only:1] Gosub(“Local/104@from-queue-00001074;2”, “macro-hangupcall,s,1()”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“Local/104@from-queue-00001074;2”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“Local/104@from-queue-00001074;2”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] ExecIf(“Local/104@from-queue-00001074;2”, “0?AGI(pbxmfa.agi,noanswer)”) in new stack
– Executing [s@macro-hangupcall:5] Hangup(“Local/104@from-queue-00001074;2”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on ‘Local/104@from-queue-00001074;2’
– Local/104@from-queue-00001074;2 Internal Gosub(queueMemberCall-hangup,s,1(104,1777217610.43165,1903)) start
– Executing [s@queueMemberCall-hangup:1] NoOp(“Local/104@from-queue-00001074;2”, “104”) in new stack
– Executing [s@queueMemberCall-hangup:2] UserEvent(“Local/104@from-queue-00001074;2”, “QueueMemberCallHangup,QAGENT:104,UNIQ:1777217610.43165,Queue:1903,DIALSTATUS:NOANSWER”) in new stack
– Executing [s@queueMemberCall-hangup:3] Return(“Local/104@from-queue-00001074;2”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on ‘Local/104@from-queue-00001074;2’
– Local/104@from-queue-00001074;2 Internal Gosub(queueMemberCall-hangup,s,1(104,1777217610.43165,1903)) complete GOSUB_RETVAL=
– Nobody picked up in 0 ms