Trigger call flow after call abandoned

Soli

Platinum Distributor
Advanced Certified
Joined
Feb 14, 2016
Messages
167
Reaction score
42
I'm looking for a way to automatically trigger a specific call flow or script immediately after a caller hangs up / abandons while waiting in a queue.

Has anyone successfully implemented this, or have any insights on the best workflow/workaround to achieve it?

Thanks in advance!
 
Not without a lot of development and head-scratching with Call Control.

Maybe @VoIPTools has an idea.
 
What do you need to do in that case in your script?

The only way to detect a missed queue call is using the Call Control API, which lets you monitor calls activity in real time. We have used it to create a callback in SIP Caller (when a call is abandoned, the number is added to a campaign, so the customer can be called back later when an agent becomes available again).
 
  • Like
Reactions: Evolute IT and Soli
Couldn't you do this in a simulated queue running in a CFD?
 
Couldn't you do this in a simulated queue running in a CFD?
No way to do this from a CFD app. The Call Control API is the only option.
 
  • Like
Reactions: Evolute IT
Why? If you answer the call with the CFD and it manages it's own queue (not a 3CX queue) then if the call is abandoned it will use the error handler flow to handle failed/dropped or discconect call handler calls to branch off.
It;s been a while since Ive done a CFD though
 
Why? If you answer the call with the CFD and it manages it's own queue (not a 3CX queue) then if the call is abandoned it will use the error handler flow to handle failed/dropped or discconect call handler calls to branch off.
It;s been a while since Ive done a CFD though
While this sounds good, when you try to achieve it you realize that there is no way to do it....

A CFD app handles a single call. It can't speak with other CFD apps handling other calls, to keep users waiting in order, play music on hold while they wait, etc. Synchronizing all this is not possible. So you can't replicate the queue logic from a CFD app.
 
We can help with custom development. We monitor queue calls with our 3CX Queue Notifier tool. We can do whatever you need.
 
  • Like
Reactions: Evolute IT
Connect the inbound DID to a CFD. There, retrieve either the callid or the session.ani, then simply transfer the call to the queue.

In the CFD's Disconnect Handler, implement a loop that monitors the ActiveConnections using either the session.ani or the callid. Once the call no longer appears in the ActiveConnections list, perform whatever action you need and then exit the CFD.

To avoid triggering the script when the customer is connected to an agent, check the call status in ActiveConnections. If the call state changes to ringing (indicating the agent is being alerted) stop the Disconnect Handler loop and exit the CFD.
 
So you can't replicate the queue logic from a CFD app.
It can be done in two (or more - i only know two) different ways. :) All you need is a CFD app, parking slots (or a well-designed audio loop) and depending on the use case, a dialer script. With this approach, you can even implement advanced prioritization mechanisms that go beyond what standard queues can provide.

The only downside is that you'll lose the native queue statistics and some of the built-in queue signaling strategies. However, if you have database or API access and are willing to invest a bit of time, you can recreate many of those strategies, or even implement entirely new ones. Likewise, by using CDR data, you can build custom statistics tailored to these solution.
 
Last edited:
It can be done in two (or more - i only know two) different ways. :) All you need is a CFD app, parking slots (or a well-designed audio loop) and depending on the use case, a dialer script. With this approach, you can even implement advanced prioritization mechanisms that go beyond what standard queues can provide.

The only downside is that you'll lose the native queue statistics and some of the built-in queue signaling strategies. However, if you have database or API access and are willing to invest a bit of time, you can recreate many of those strategies, or even implement entirely new ones. Likewise, by using CDR data, you can build custom statistics tailored to these solution.
Doing this is quite complex, it's not just playing the prompt while the call waits. Synchronizing many calls from different CFD apps is complex. Also, the prompt playback can't be interrupted, so the queue waiting time will be longer than needed. There are other approaches which are also complex but provide a better solution, like creating a SIP client and deal with everything from it. I would never implement this with a CFD app...
 
  • Like
Reactions: Evolute IT

Members Online Now

No members online now.

Forum statistics

Threads
111,831
Messages
589,277
Members
164,660
Latest member
RJenkinsROCK