Dynamic agents - external access - stop direct calls when virtual extension is on queue call

Background:
FreePBX/Asterisk 14.

I have a call center queue with ~20 agents. The agents all use virtual extensions with a cellphone FMFM to take the calls, off-PBX. I set the “Skip Busy Agents” to “Yes + (ringinuse=no)” This allows only one queue call to an external agent at a time. I’ve turned off call waiting and have calls set to go to an IVR if the extension is busy/unavailable.

So when an external agent (FMFM cell phone) is on a queue call, no more queue calls will route to them, but direct calls will still ring the cell phone (when the agent is already on a queue call), instead of seeing the agent is busy/unavailable and going to the IVR destination.

I think the reason for this is that even though the virtual extension is on a queue call, the hint shows Idle:
1111@ext-local : &Custom:DND1111,Cust State:Idle Presence:not_set Watchers 0

Question:
Is there a way, for when the virtual extension takes a queue call via FMFM, to update the hint 1111@ext-local to reflect the extension is in use?

or

Is there a way for when an virtual extension takes a queue call via FMFM, that the direct calls “see” the extension is unavailable/busy and go to the busy/unavailable treatment (IVR) without first trying to ring the virtual extension?

Other:
Kudos to @PitzKey for the great how-to on external agent login/out. It worked great.

Thanks for any help/insights here.

1 Like

I am thinking I could write some custom dial plan that somehow looks at Asterisk Info - Queues, greping the extension people are trying to direct call (1111). If the return line contains “not in use” then follow the normal path and call 1111. Otherwise send the call to 1111’s busy treatment.

I feel like this is a needlessly complicated approach. Any alternate ideas?

Ha! I’m embarrassed to look at that dialplan. Gotta rewrite it.

A while back I asked what the queue checks before skipping a busy agent, I was told that it checks more than just the device state.

I guess the proper way is to somehow get these virtual extension setup with a device state and take it from there

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.