CFD User Input Extension

Status
Not open for further replies.

blncorp

Customer
Joined
Dec 4, 2019
Messages
1
Reaction score
0
Hola, hace algun tiempo logramos hacer este CFD con subcomponente, para opciones de menu para distribucion de llamadas a diversas areas. En la actualidad queremos agregar ademas que el usuario pueda digitar un numero de extension especifico. Como podemos hacerlo?Screenshot 2024-08-08 113316.png
 
It's not straightforward to implement this as there are no pre-existing components to do so.

You will need to code in C# to interact with the CallControlAPI.
https://www.3cx.com/blog/releases/v20-call-control-api/



BUT, The simplest approach is to create a new IVR (not a CallFlow) and set a key to direct the caller to this IVR.

Example:

"Hello and welcome to Banana Express and Hot Coffee. If you know the extension number of the person you wish to reach, press #. For the banana peeling department, press 1... (etc.)"

When the caller presses #, the call is transferred to the IVR. The IVR would have an audio file saying, "Enter the extension number of the person you are trying to reach."




Some might suggest using the "USER INPUT" component (Instead of the MENU component), but it does not verify if the extension exists. Therefore, if your callfow a call to a non-existent extension, the caller will hear an error message and the call will be disconnected or worse, if your outbound rule configuration is not set up correctly, the call could be transferred outside your system, such as to emergency services!
 
Last edited:
Well, the approach changing the Menu to a User Input is still valid, you can use a simple C# script to validate if the extension exists, for example:
return PhoneSystem.Root.GetDNbyNumber(extensionNumber) != null;

This way you can transfer the call to the extension when it's valid, or ask the user to repeat when not.
 
Well, the approach changing the Menu to a User Input is still valid, you can use a simple C# script to validate if the extension exists, for example:
return PhoneSystem.Root.GetDNbyNumber(extensionNumber) != null;

This way you can transfer the call to the extension when it's valid, or ask the user to repeat when not.

It seems like the CallControlAPI holds no secrets for you Ernesto . LOL

I should note that you'll also need to manage cases where the extension is not "Enabled." I'm giving it a try, Ernesto, correct me if I'm wrong . (Just for fun LOL)

C#:
return (PhoneSystem.Root.GetDNByNumber(extensionNumber) as Extension)?.Enabled == true;

I couldn't just let you steal the spotlight without reacting @edossantos_sipcaller LOL! I'm having fun!
 
@Guillaume Bourgeois, you are correct, and with your code you're also checking if the number is an extension and not for example a queue or ring group, so that's an additional point that you're checking. I give up, you're smarter than me xD xD
 
Nobody argues with the oracle which is Ernesto. We sure are glad to have you still with us here in the forums.
 
[...] We sure are glad to have you still with us here in the forums.

Ernesto ? Yeah !
A legend, he's unbeatable!
He tells me I'm "the smarter one between us," but I know the truth—he lets me win to boost my oversized ego, lol. xD
 
I'm blushing guys, haha.
 
Status
Not open for further replies.

Members Online Now

Forum statistics

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