Queue if busy. Voicemail if no answer

Hey all

I’m trying to get it so that callers enter a queue upon ringing me, wait in the queue if phones are busy (at least one of them…excluding mobile I suppose) whereas if it rings through with no answer…nobody is about so go to voicemail. We have my mobile, a desk phone and another desk phone which will eventually be off site. We are onsite/offsite on call outs so rather than waste time holding in a queue indefinitely - if we don’t answer I’d like them to leave a voicemail. Whereas if one of the deskphones is “busy” then obviously we are about, continue to hold - with perhaps the option to leave a voicemail if they get fed up using virtual receptionist.

At the moment I can get them to queue fine, but it will timeout to voicemail even if one of the phones is busy. Or the other end of the spectrum…no voicemail but will hold them infinitely. Any help would be great :smile:

Sounds like there isn’t a GUI solution to this so I need to create a dial plan? Maybe using chanisavail = busy then hold in queue, if chanisavail = yes then exit queue after 30 seconds to voicemail?

You may want to have a look at the additonal abilities of VQ Plus as it may have some of what you are looking for, including alternate destinations upone exiting the queue depending on the reason the queue is exited, and some other abilities built into it. It is a commercial module so you’ll want to review to see if it can handle your desired scenarios but from what you describe, it sounds like you may be able to do much of that based on the varioud queue tuning knobs you can turn and the various destinations you can go to with that module.

Ah it’s only for my small home office so that prices me out a bit. Had hoped there would be this functionality built in

What queue strategy are you using? Can you copy/paste your queue settings please?

Looks like what you ask could be possible with strategy=ringall and skip-busy-agents=yes. And some timing tweaks maybe. Possibly also queue-no-answer.
If you want your extensions to be dynamic (join the queue or be removed from it manually) looks like join-empty=no could also be considered (no call will enter the queue if there are no agents about, call will go straight to failover = voicemail in your case).

(As an added bonus, with queues, if 2 calls come from same (SIP) trunk, queue can handle them without having any of them bounce)

I have pretty similar setup although no ‘join-empty=no’ setting because all my agents are static. All this on ordinary, not vq+, application.

Unless I didn’t get the idea correctly, hope this helps :wink:

I think you are talking about auto-pause. If you enable auto pause and leave empty, I think it will do what you are asking. Requires testing tho.

Hmm, yeah I suppose that would be another way to achieve this: appropriately chosen max wait time, agent timeout (with max wait time mode maybe ‘loose’ ), retry value that fits several times in the max wait time, auto-pause on busy + join-empty = no, leave-empty=ultra-strict;

Also maybe the route to the mobile phone, put on as FMFM to one of the extensions, not as direct destination of the queue? Just a thought.

But IANAE :wink: etc, etc.

Thanks all - I’ll give it a go!

A friend told me auto pause basically disables the phone until you undisable it?

Happy holidays, merry christmas, happy new year!

Is there a way to auto unpause once queue is empty?

I want it so:

Caller calls - I don’t answer after 30 seconds - Voicemail

Caller calls - I am in a call - hold until I get round to them

At the moment pause is working as we want - but any calls until I unpause manually will go straight to VM (I still want some ring time)

The following CLI would do what I want

queue unpause member Local/[email protected]/n

Now is there a way to get it to run this CLI before/after the voicemail failover?

You could run this from cron possibly as a script every minute (first check for paused memebers, then run the unpause command) ( if you don’t mind up to a minute delay of restarting the queue after being paused) - or have the unpause key feature code programmed as a quick dial - or as BLF lamp and button - or possibly there is a way to hook into hang-up of incoming calls that can run a script, but I don’t know how exactly…

I think this is - again - a problem of a “missing” step in the call flow of FreePBX.

As discribed in my thread Redirect calls if member of ring group is busy - there needs to be an option to route calls depending upon the device/extension state of an extension/ring group/queue/etc.

I still can’t imagin, this would be hard to implement.

For mrapoc here this would do it:

incoming call ------> check if device/extension/ring group is busy —>
—> yes: go to queue —> exit after timeout
—> no: dial extension/ring group/etc

That would solve my problem too :wink:

Maybe there is some expert out there, who has an idea of getting that set up within FreePBX.

1 Like

This exactly! So close to getting what I need but there does seem to be a limitation here

1 Like