- Joined
- Nov 22, 2018
- Messages
- 2
- Reaction score
- 0
Hello,
We are currently trying to build a queue system which can distinguish between the following cases:
As an alternative, we tried to build a two-queue system. On Queue 1, all incoming calls are accepted. Using a CFD call flow, we determine if any agents are logged in to Queue 2 at all ("Get Queue Extensions" component). If there aren't any, a prompt is played immediately and the caller is disconnected (Case 1). If there are agents logged in to Queue 2, the call is transferred to Queue 2. This covers Case 1, but we are still stuck distinguishing between Cases 2 and 3.
We tried to use "Destination if no answer" in the settings of Queue 2. If we could set the "Maximum queue wait time" to 1 second, calls that land in the queue (because agents are logged on, but no one is available) are immediately forwarded to a digital receptionist which can play the prompt "Please call again later". Unfortunately, for some reason, 3CX only allows us to set 15 seconds or more. That means that even if no agents are available, the phone will ring for 15 seconds before the call can be redirected to the digital receptionist.
We thought about using Call Groups, because we can more freely define the ring time there, but we need our agents to be able to log in and out, so we need to use queues.
We also tried moving the logic into the CFD call flow by using a slightly modified script from https://www.3cx.com/community/threads/find-amount-of-available-call-queue-agents.49551/#post-201302, but couldn't get it working. dnAgent.GetActiveConnections().Length always returns 0, so we cannot find out whether the agent is currently calling someone. And checking whether extAgent.CurrentProfile.Name == "Available" does not seem to account for agents that are currently "Busy".
Has anyone tried to implement a similar queue logic? Did you use CFD or is there a way to implement this using the "regular" 3CX settings?
Thanks in advance!
We are currently trying to build a queue system which can distinguish between the following cases:
- Case 1: No agents logged into the queue: Play audio prompt "Please send us an e-mail instead" immediately and disconnect.
- Case 2: Agents logged in, but all of them are busy: Play audio prompt "Please try again later" immediately and disconnect.
- Case 3: Agents logged in and available: Transfer call to agent.
As an alternative, we tried to build a two-queue system. On Queue 1, all incoming calls are accepted. Using a CFD call flow, we determine if any agents are logged in to Queue 2 at all ("Get Queue Extensions" component). If there aren't any, a prompt is played immediately and the caller is disconnected (Case 1). If there are agents logged in to Queue 2, the call is transferred to Queue 2. This covers Case 1, but we are still stuck distinguishing between Cases 2 and 3.
We tried to use "Destination if no answer" in the settings of Queue 2. If we could set the "Maximum queue wait time" to 1 second, calls that land in the queue (because agents are logged on, but no one is available) are immediately forwarded to a digital receptionist which can play the prompt "Please call again later". Unfortunately, for some reason, 3CX only allows us to set 15 seconds or more. That means that even if no agents are available, the phone will ring for 15 seconds before the call can be redirected to the digital receptionist.
We thought about using Call Groups, because we can more freely define the ring time there, but we need our agents to be able to log in and out, so we need to use queues.
We also tried moving the logic into the CFD call flow by using a slightly modified script from https://www.3cx.com/community/threads/find-amount-of-available-call-queue-agents.49551/#post-201302, but couldn't get it working. dnAgent.GetActiveConnections().Length always returns 0, so we cannot find out whether the agent is currently calling someone. And checking whether extAgent.CurrentProfile.Name == "Available" does not seem to account for agents that are currently "Busy".
Has anyone tried to implement a similar queue logic? Did you use CFD or is there a way to implement this using the "regular" 3CX settings?
Thanks in advance!