Queue calls still trying to be forwarded even when queue set to extesions only

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

Because as stated in the tooltips and documents, agents with CF enabled and “Extensions Only” setting in the queue will be ignored. As it states in the Queue tooltip

When set to ‘Extensions Only’ the queue will dial Extensions as described for ‘No Follow-Me or Call Forward’.

Which means, again per the Queue tooltip:

When set to ‘No Follow-Me or Call Forward’, all agents that are extensions on the system will be limited to ringing their extensions only. Follow-Me and Call Forward settings will be ignored. Any other agent will be called as dialed. This behavior is similar to how extensions are dialed in ringgroups.

And how it works in Ring Groups (Ignore CF Settings)

When set to Yes, agents who attempt to Call Forward will be ignored, this applies to CF, CFU and CFB. Extensions entered with ‘#’ at the end, for example to access the extension’s Follow-Me, might not honor this setting .

So in other words, the agents are being ignored (not dialled) as per the settings when they have FM or CF/CFU/CFB enabled.

Tom, thank you for your reply.

I tried “No Follow-Me or Call Forward” with local forwarded extensions and got the same result.

Correct me if I’m wrong, but I interpreted this exactly as it says in the tool tip.

If 104 is forwarded to 402, The forwarding will be ignored and ext 104 will ring.

The 104 doesn’t ring with “No Follow-Me or Call Forward” settings either…

No, by ignored it means it ignores those extensions when trying to dial. If I set up CF I don’t want calls hitting my phone why would a queue call be any different?

Logically, I fully agree.When it’s forwarded - it’s forwarded.

However, the wording in tool tip is confusing.

I have a situation where 104 is temporarily sitting at the desk phone with ext 402. Ext 104 is a member of the queue and I wanted her mobile app to still ring when queue call comes in.

That tool tip wording exactly means of what I wanted to achieve in this particular case (Follow-Me and Call Forward settings will be ignored) :slight_smile:

Sangoma team may want to change that to sound clearer…