CFD - Set Queue Extension Status Skipping Users in Loop

JoshuaF

Gold Partner
Basic Certified
Joined
May 9, 2025
Messages
3
Reaction score
0
Hey Legends,

A client is wanting to prevent users from sneakily logging out of their assigned queues. We've created the below CFD that runs on an inbound call to the queue that does the following:

- Sets Int ExtensionIndex = 0

- Get Queue Extensions - Specific queue - ALL EXT

- While ExtensionIndex < Get Queue Extensions List Count *LESS_THAN(callflow$.ExtensionIndex,GET_LIST_ITEM_COUNT(GetLoggedOutUsersInQueue.ExtensionNumberList))*

- Set Queue Extension Status to GLOBAL LOGGED IN *Extension = TO_STRING(GET_LIST_ITEM(GetLoggedOutUsersInQueue.ExtensionNumberList,callflow$.ExtensionIndex))*
-
Play a prompt play back of 0.2s seconds of silence *acting as a delay*
- +1 Increment ExtensionIndex

- Transfer to the desired queue

The CFD works with a test call of 2x people, however scaling it up to 11 people in the queue causes some users to show up as in a queue on the 3CX app but not on the 3CX web panel, and to still not receive any calls. Any advice would be appreciated, thanks.

1755732746561.png
 
Hi,

Perhaps those users were administratively logged out of the queue via the panel? User level action doesn't overwrite the administrative.
 
Hey KyriacosS,

That looks to be correct, when having users remove themselves from the queue via the 3CX app, running the CFD correctly re-logs them in.

Removing users from the queue via the Webpanel, and then running the CFD does not re-log them in on the webpanel, but the 3cx app visually shows them being in a queue despite them not receiving any calls.

Is there anyway to circumvent this or to stop users being able to sign themselves out of queues on the web panel? Possibly the use of a Call Flow API script?
 
When it comes to CFDs and what they can do, there are people much more knowledgeable than me, hopefully someone can give some assistance or clarity.

Removing users from the queue via the Webpanel, and then running the CFD does not re-log them in on the webpanel, but the 3cx app visually shows them being in a queue despite them not receiving any calls.
It should be noted that the visual on the app is "generic" in that someone can be admin-out from one queue and logged in to another. In a sense it signals the agents availability to take queue calls, while the webpannel logout is a queue level action not to poll that specific agent for this queue.

I believe that it should be possible to have an external HTTP API level script that can log people in on demand, as well as possibly a CFD.

This, for the most part, sounds like a company policy problem, not a technical one. Reports show when agents log in and out, they could be presented with that and be told to knock it off?
 
Maybe you can invoke the Set Queue Extension Status component twice:
  • First, with Mode = Global
  • Second, with Mode = SpecificQueue

Those 2 actions will do different things, the first invocation makes changes on the Extension object. The second invocation makes changes to the QueueAgent object (the link between the extension and the queue).
 
  • Like
Reactions: KyriacosS_3CX

Forum statistics

Threads
111,956
Messages
589,927
Members
164,858
Latest member
MichaelRussell3