Prioritize calls in the queue if a certain button is clicked

Hello everyone,

I want to know if it is accomplishable for users that click a certain button to be prioritized in a queue.

For example, 3 users call into queue. When 4th one calls the queue, he has a way to become first in the queue by pressing a certain button, for example “5”. So if a caller presses 5 he’s given higher priority in queue than those that don’t press “5”.

I also had another idea to create two different queues with the same agents(if it’s not accomplishable with one queue). Then add those queues to the IVR, where one queue will be reachable by pressing “5”(let’s call it Queue 1) and the other one by timeout(Queue 2). Since Queue 1 is more important than Queue 2, the callers in Queue 1 should be answered first. So if there are two callers waiting in Queue 1 and five callers waiting in Queue 2, those two callers in Queue 1 should be answered first, and then those that are in Queue 2.

Is it possible?

Thank you in advance.

Almost anything is possible if you are going to write your own dialplan. I cannot think of a way to do this in the GUI 100% while you are waiting on hold. A GUI approach that might be close (depending on what you think) is virtual queues (this is a commercial module). They allow you to keep one logical queue but insert callers at different queue priorities.
Virtual Queues - PBX GUI - Documentation (freepbx.org)

You could have a dynamic route to “filter” which users are offered the virtual queue path.
Dynamic Routes Module - PBX GUI - Documentation (freepbx.org)

Lastly, you could use the queue breakout feature to route callers back to your “Press 5 check” periodically.
Queues Module User Guide - PBX GUI - Documentation (freepbx.org)