Call Screening attempt

Milos Boksan

Gold Partner
Advanced Certified
Joined
Jun 26, 2024
Messages
42
Reaction score
17
Dear all,

We are trying to create functionality for a customer that involves call screening, where they can decide if they want to accept the call or not based on a premade recording.

The originally envisioned flow might look something like this:
1. Call comes in to the PBX
2. The caller is prompted with a audio message to state name, info, whatever, which is recorded
3. The caller is put on hold with music
4. A Queue (or Ring Group) is called
5. When an agent picks up the recording made by the caller is played
6. They can press 1 to accept the call, or press 2 to decline the call
7. If 1 is pressed the original caller and the agent are connected together
8. If 2 is pressed the agents call hangs up, but the callers call keeps on playing onhold music until the caller hangs up

I've tried many iterations of this in the Web UI and in CFD, the main issue I have is that there is no "native" hold function in the CFD.
I've tried using AI for this as well, but its missing the choice componnent.

Any suggestions?

Thanks
 
@VoIPTools probably could do something for this.
 
Extensions have this option which is pretty much what you need:
1778757891944.png
 
  • Like
Reactions: KyriacosS_3CX
I've tried using this option, and its exactly what I need.

My flow is as follows (for anyones future reference if they need the same functionality):

1. Inbound call comes in to an introduction IVR (prompt: Welcome to company!)

2. IVR forwards call after 1s to Dummy Extension
- This extension is where I've set the forwarding rules to forward external and internal calls to "My Mobile" when the extension is Busy or not registered. I've also set the "My Mobile" to be a second DID that routes to a queue of agents
- Does anyone know of a way to route this to a second 3CX extension instead of a mobile number? If I put anything else other than a Mobile Number it doesnt give me the "Rebound" option.
- This is where I get the prompt "Pronounce your name after the signal, and then press any button." I've tried changing the "CONF_NAME - SpeakYourName.wav" in the System -> System Prompts menu. But no matter what I set the language to be (either for the department where the DUMMY EXTENSION is located or the default system language) this stays the same. I've tried restarting 3CX services to get this to apply, no luck.

2a. Once the info is recorded and any number is pressed I get a message "Please wait while we try to locate ONE ONE ONE ONE (1111 - the extension of the DUMMY EXTENSION in use). I would like to change this also to Dutch.
- I've tried changing "PLSWAITLOCATE plswait_locate.wav" but again it stays in English.

3. The second DID routes to a Queue, it rings for all agents.

4. When an agent picks up it seems like part of the message has already been played. It seems when you route it to a queue it consideres the call "Answered" by the queue and starts playing immediatelly.
- Any thoughts on how to get this to play only when an agent answers?

5. When a call is declined it routes to the voicemail of the DUMMY EXTENSION which I can set to use a custom prompt in the extension options for the voicemail prompts.

Any thoughts and suggestions on how to get this to work as we want it to?
 
@edossantos_sipcaller I tried working with the option you suggested, but as I stated in my original post:

4. A Queue (or Ring Group) is called

So I would like a "group" solution, instead of a single suer solution :)
 
So I would like a "group" solution, instead of a single suer solution :)
Doing this with a CFD app is not possible, because you can't put a call on hold, initiate a second call, and finally merge both calls. There are no components that let you do that. Maybe by creating a service using the Call Control API you could achieve something like this, quite a challenging project....
 
  • Like
Reactions: Evolute IT
Indeed it is challenging.

I tested with 2 CFDs an "Initiator" and an "Approval" CFD.

The Initiator CFD gets the call, records a message, saves the path to a Custom Parameter [Recording_Path], and then does a loop where it checks if the Approval CFD has changed a second Custom parameter [Accepted] to forward the call. When it has, it forwards the call to the person that accepted it.

The Approval CFD calls the group, whoever picks up it plays the recording, and if they accept the call it edits a Custom Parameter [Accepted], and ends the call to free up the person for the forward.

But couldn't figure out a way to make it work if there are simultaneous calls. I guess I just need many Custom Parameters like: Recording_Path_1, Recording_Path_2, Recording_Path_3, etc.

I tried transferring the call data via the "Attach/Get Attached Call Data" components to dynamically transfer the data, but I couldn't find a way to get the confirmation data back to the original CFD.

Thanks to all for inputs.

Any comment is still welcome :D
 
Yes, synchronizing this for multiple calls is challenging. Also, you can't be sure that the person who accepted the call will receive it, because you're not merging both legs, you're finishing one call, and transferring the other, so any agent might get this call when it's transferred...
 
  • Like
Reactions: Evolute IT

Members Online Now

Forum statistics

Threads
111,832
Messages
589,282
Members
164,662
Latest member
DejanMDS