Disable the message "There are not enough agents available" and allow calls to enter the queue

gyImxi2y

Premier Customer
Joined
May 9, 2025
Messages
3
Reaction score
0
Hello everyone,

I’m looking to find out if it’s possible in 3CX to disable the automatic message: "There are not enough agents available in the queue at the moment."

I would like external calls to be able to enter the queue even if no agents are currently logged in or available. The goal is for the call to remain on hold in the queue (with hold music or a custom message) until an agent becomes available, rather than being immediately rejected with that automatic message.

Is there a specific option or setting in the queue configuration to modify this behavior?

Thanks in advance for your help!
 
Hello gyImxi2y,

This question has been here many times, the short answer is no, that is not possible.
If there are no agents in queue it will just exit the queue.

Workaounds would be having an extra (dummy) phone in the queue, and leave that logged in at all times, so there is always an agent in the queue.
This will mess up all the queue reports, so that will be of no use.

Paulo
 
  • Like
Reactions: VoIPTools
I do not remember ever hearing a message "There are not enough agents available in the queue at the moment'. I was under the impression that when a caller is transferred to a queue with no agents logged in, it immediately transfers the call to the "no answer" destination. Did I just never notice this message?
 
@VoIPTools - yes, there is such a prompt - QUEUE_UNATT

1751077370517.png

The lack of ability to have this option (keeping callers in a queue even with no logged in agents) is frustrating for sure and the fact that it has been asked as another poster says "This question has been here many times" indicates that it is not a edge case or unusual request. There are a wide variety of situations where one would want this. As mentioned, there are workarounds but none are perfect since in many cases this will screw up reporting metrics or can be unreliable. A much more elegant way to do this might be to just include the option in the current queue destinations section, adding one for "If no agents in the queue, do this action" and have the same menu choices (transfer to another ext/queue, voicemail, or simply "Accept anyway"). That would make it work for those of us that keep asking the same question here over the years to get a different answer.

What we do is created an agent, and since we used skill based routing we give that agent the lowest call priority (highest number). Then we use the 3CX softphone application on a VM that auto logs in and opens that application at startup. We monitor that the softphone process is running using a monitoring platform. That gave us better results than the add an agent and set them to simultaneous ring and set a bogus mobile number, but neither method is all that great. A simple option in the queue to allow this would be fantastic for sure.
 
@jasonfz Have you also tested the option below?

1751347982589.png
 
  • Like
Reactions: Evolute IT
Thats for what the option is... try it.
 
Thats for what the option is... try it.
That option is for when an agent, already logged into the queue, is on another call to ring their phone. This is NOT the ask - at all. We do not want an agent that is on a call to receive another call. We want there to be absolutely no agents logged into the queue and still have calls enter that queue. This option does not seem to do that.
 
That option is for when an agent, already logged into the queue, is on another call to ring their phone. This is NOT the ask - at all. We do not want an agent that is on a call to receive another call. We want there to be absolutely no agents logged into the queue and still have calls enter that queue. This option does not seem to do that.
It's just not possible without using a dummy user+phone connected somewhere that just rings over and over until another agent logs in and takes the call.
 
It's just not possible without using a dummy user+phone connected somewhere that just rings over and over until another agent logs in and takes the call.
Yes, correct, it is not possible currently. If you read the thread, we all understand this and we all understand the workaround. The discussion was around adding this feature. (TL;DR is that the feature does not currently exist, many people keep asking how to do this over the years, we suggest 3CX add that feature). My reply above was to the user that said that enabling this multiple ring was the solution (it is not, it is just another workaround that is not even a good one since that would mean that all agents - real ones - would get multiple calls even when on a call). Yes, we can create a dummy user and use a mobile dummy number, and yes we can create a dummy user and have a softphone logged in as them all the time. But these are not solutions, these are workarounds since that screws up the reports and has a dependency and is unsupported. Given that time and time again this question gets asked, it seems that customers want this feature, so we respectfully request that it be considered (as per the fact that people seem to want it as the same question is asked year after year).
 
Yes, correct, it is not possible currently. If you read the thread, we all understand this and we all understand the workaround. The discussion was around adding this feature. (TL;DR is that the feature does not currently exist, many people keep asking how to do this over the years, we suggest 3CX add that feature). My reply above was to the user that said that enabling this multiple ring was the solution (it is not, it is just another workaround that is not even a good one since that would mean that all agents - real ones - would get multiple calls even when on a call). Yes, we can create a dummy user and use a mobile dummy number, and yes we can create a dummy user and have a softphone logged in as them all the time. But these are not solutions, these are workarounds since that screws up the reports and has a dependency and is unsupported. Given that time and time again this question gets asked, it seems that customers want this feature, so we respectfully request that it be considered (as per the fact that people seem to want it as the same question is asked year after year).
Try to post it in the Ideas section (as a Premier Customer, I think you can.)
 
  • Like
Reactions: jasonfz
I have an idea that maybe we could implement. I have not tried it. What if we set the queue no-answer destination to a park location. Then we write a service that monitors the availability of an agent. When our service sees an agent login, we dump all the callers currently in the specified park location into the queue? We could also send notifications (phone, email, SMS) to managers that no agents are available in the queue. Would that solve the problem?
 
I have an idea that maybe we could implement. I have not tried it. What if we set the queue no-answer destination to a park location. Then we write a service that monitors the availability of an agent. When our service sees an agent login, we dump all the callers currently in the specified park location into the queue? We could also send notifications (phone, email, SMS) to managers that no agents are available in the queue. Would that solve the problem?
It might -- and would be interesting to try. I think it might still screw up the reporting since the call would be out of the queue during the time there is no logged in agent so not sure how it would treat the parked calls that get dumped back into the queue. Worth investigating.

Better would just be a native option to allow callers to queue despite there being no logged in agents. For orgs (like ours) that have shift work there are occasions (usually lasting a few minutes) during shift changes where agents are not logged in. I think the other issue is that 3CX out of the box will move agents that miss a call in a queue to a logged out status of that queue which exacerbates this issue. Having the native ability for a missed queue call to move the agent to DND (instead of logged out) -- similar to the Voiptools Auto Logout -- coupled with the ability to have calls queue even without agents logged in would solve the problem without the need for 3rd party tools. We do use third party tools to extend the capabilities of the system and to bridge some gaps in the functionality, but this is one that I think could be handled by the PBX itself since it is a frequent ask here.
 
You are correct. The "park" solution only addresses 1/2 of the issue. The first (most important) issue is the customer experience, and the second is providing useful reporting on what happened to the queue calls. I would anticipate the reporting results would be better than the hacky approach of logging in a dummy extension with ring-my-mobile set up (that is a real mess).

I will mention that 3CX does not log agents out of a queue if they miss X number of calls. That is our 3CX Auto Logout tool. And, by the way, you can have it either log the user out of the appropriate queues, or change the agent's status to DND :)

We can agree that a native built-in solution from 3CX would be the ideal, but until then... what if we had a defined shift schedule where we controlled when the agents are automatically logged in / out of the queues? I mentioned a very specific order -- log the new shift in first, then log out the users from the completed shift. That would ensure there is always someone logged into the queue? Would that help?

I know my suggestion is a simplistic description because you may have people out sick or on vacation or late for work so automating the process could be a bit more complicated, but I don't think this is a huge problem especially depending on the polling strategy employed. If we are trying to address a couple of minutes of coverage between shifts, I think we can solve that challenge while we watch for a solution from 3CX. But this is a issue that has been around for the nearly 20 years I have been building solutions for 3CX. It could be a very long wait.

On the topic of waiting... Nick is an extraordinary businessman. I can only dream about the success he has had. So if this question has been around for this long, maybe we should consider that he knows about the request and has made a purposeful decision not to include the feature. That decision may be driven by the desire to keep things (3CX configuration) simple to implement, or it could be about the level of effort that would be required to muck around in what is undoubtedly already pretty complicated code. Software development always has to be a balance between ease-of-use, complexity of code changes, and where to invest finite time and labor. A friend of mine has a saying similar to "the juice has to justify the squeeze". My assumption is that there are bigger fish to fry and my advice is don't hold your breath.

This idea of simplicity-first reminds me of the difference between 3CX and LG-Ericsson. The LG product was one of the most feature-rich phone systems I have ever used. But it had so many features that they literally gave up trying to provide a functional user interface. To get to the desired screen, to configure the desired setting, required you know the assigned number of the screen and you had to type that number into a search field. I know it is hard to imagine, but they took a very different path from 3CX's approach. They added every imageable feature to their phone system, but it was so administratively complex that after Samuel and I passed the certification tests we never sold the phone system. We walked out of the last day of training, looked at each other, and said "no way". Our concern was that we would never remember how to implement this system. We do not want 3CX to go down that path.
 
Last edited:
You are correct. The "park" solution only addresses 1/2 of the issue. The first (most important) issue is the customer experience, and the second is providing useful reporting on what happened to the queue calls. I would anticipate the reporting results would be better than the hacky approach of logging in a dummy extension with ring-my-mobile set up (that is a real mess).

I will mention that 3CX does not log agents out of a queue if they miss X number of calls. That is our 3CX Auto Logout tool. And, by the way, you can have it either log the user out of the appropriate queues, or change the agent's status to DND :)

We can agree that a native built-in solution from 3CX would be the ideal, but until then... what if we had a defined shift schedule where we controlled when the agents are automatically logged in / out of the queues? I mentioned a very specific order -- log the new shift in first, then log out the users from the completed shift. That would ensure there is always someone logged into the queue? Would that help?

I know my suggestion is a simplistic description because you may have people out sick or on vacation or late for work so automating the process could be a bit more complicated, but I don't think this is a huge problem especially depending on the polling strategy employed. If we are trying to address a couple of minutes of coverage between shifts, I think we can solve that challenge while we watch for a solution from 3CX. But this is a issue that has been around for the nearly 20 years I have been building solutions for 3CX. It could be a very long wait.

On the topic of waiting... Nick is an extraordinary businessman. I can only dream about the success he has had. So if this question has been around for this long, maybe we should consider that he knows about the request and has made a purposeful decision not to include the feature. That decision may be driven by the desire to keep things (3CX configuration) simple to implement, or it could be about the level of effort that would be required to muck around in what is undoubtedly already pretty complicated code. Software development always has to be a balance between ease-of-use, complexity of code changes, and where to invest finite time and labor. A friend of mine has a saying similar to "the juice has to justify the squeeze". My assumption is that there are bigger fish to fry and my advice is don't hold your breath.
Understood. A more elegant solution to this, even if using third party tools, would be better than the workaround of the dummy agent (I agree!). This would be a great addition to the Auto Logout VOIPtool (basically a "keep alive" for the queue). I would not try to build shift logic as that is not everyone's use case and at least in our setup that gets complicated by the need to use hotdesking in connection with this (where 3CX presence does not work all that well as to log in/out status of queues by hotdesked users). Better (and simpler) is what others request -- a way to have the queue active whether or not there are humans logged into it, some sort of keep alive that wont screw up reporting (or at least not as bad as a phantom agent) that might even include the ability to alert on this event via email/SMS.

As to the development effort, all of that is true, I also think it is call center philosophy. Dedicated centers are going to have different needs than quasi centers versus people that do other work and have to answer the phone. Full fledged call center only enterprise software seems to pick a lane (some handle queueing like 3CX - that you have to have a logged in agent; others as we ask here - that you do not). Since 3CX tries to cater more to SMB (as well as some enterprise) the flexibility ought to be there but absent that (like some technical reason or large development uplift) I get that we might never get what we are asking for -- but it still doesn't hurt to keep asking.

Developing an elegant third party solution and asking 3CX to put it natively into the PBX are not mutually exclusive. I'd love to have the "problem" of having too many solutions to choose from for this issue!
 
You are a thoughtful person and I am enjoying the conversation. Still, I have a pretty good grasp of what is possible with the 3CX APIs and I do not see any way to manipulate what happens to a call after it is sent to a queue, or anyway to manipulate how queues work. There is, for example, no facility for creating your own polling strategy, or creating a "keep alive" feature. Any 3rd-party solution will have to deal with the problem before the call is sent to the queue, or after. We cannot do anything while the call is waiting in the queue.

Not to continue to beat a dead horse (sorry I'm old), but what about before routing a call to a queue, what if we routed the call to a CFD that first checks for available agents. If none are available, we route the call to a park location. Then we monitor the queue until an agent becomes available. When someone logs in, we dump the calls into the queue?
 
That would only solve part of the issue, but the problem can manifest itself if there are callers in the queue and then the last agent logs out, those calls get routed out and this workaround wouldn't fix it (I guess you could route back to that CFD but then you are in a circle and reporting will look wonky I would suppose). That is more likely with using auto logout for a missed call, meaning that even if you could get the CFD to work properly that once the call is in the queue if you have no visibility or ability to manipulate it with the current API that we are still in the same predicament. The routing to a park location might be better if that even works but still is clunky (hence here we are back to one!).
 

Latest Posts

Forum statistics

Threads
111,961
Messages
589,954
Members
164,862
Latest member
ARTipsadmin