Bind customer with agent for 30 minutes

Hello! We have a station with IVR and ten extensions. In IVR there is an entry ‘1’ that transfers call to a queue of support agents. We need possibility of binding client’s number and agent’s extension for 30 minutes. Then if client makes call again within 30 minutes and presses ‘1’ button he could be connected with his last agent directly. Can I solve it with just bare FreePBX or I need to buy some module?

There’s nothing stock that can do this, paid or free, but there have been conversations and some rough dialplan shared around this concept before. Here’s a proof of concept I started once upon a time:

1 Like

Thanks for reply! I’m gonna get know it. I just wanted solve it without manually changing dialplan files. It could be good idea if we used bare asterisk instead. But if there’s no special module then a have no choice.

The problem is what to do if the agent is busy in those 30 minutes - if they receive a new call, what happens?

I did implement something like that a long time ago, where we basically would keep “agent affinity” for a given caller, and that would mean that before queueing the caller, the system would try reaching to the agent directly. It does not really work for call center scenarios where agents should be busy, but it does work for, say, talking to your financial consultant.

Oh, I really didn’t think of chance that agent could be busy permanently. Thank you!

If you could determine that the agent is free, is there a way to push the call to the extension as a queue call, so the reporting/metrics stay intact?

You could either use a “personal” queue, where the agent is always logged on, or you could write events to the queue_log that look like a queue call. I would try the first option first.

But there is a chance that agent could be on another call within that 30 minute window. So if the agent is on a call what happens then?