Outbound blocking by extension

Status
Not open for further replies.

karjune

Silver Partner
Advanced Certified
Joined
Dec 19, 2022
Messages
15
Reaction score
0
Trying to block certain numbers from being dialed from internal extensions. I know this can be done via a cfd.
Essentially I have a DB with the extension and their allowed-to-call numbers.
Cfd queries this database and returns a scalar which is then condition checked 1 allows the call, 0 drops the call

Since it's blocking based on extension number, where can thus variable be found to create the sql statement?

Thanks
 
Nowhere.

The CFD cannot intercept an outbound call made by an extension.

Users would need to dial the CFD app first, then in that call, be requested for the number.
 
  • Like
Reactions: edossantos
Nowhere.

The CFD cannot intercept an outbound call made by an extension.

Users would need to dial the CFD app first, then in that call, be requested for the number.
Alright. So they call the app via the apps extension, it prompts for an input (outbound calling number) and checks the database. Now, the database has 3 fields, ID, Ext and Number. If my statement is

Select count(*) from DB where ext = var.ext & number=var.number
Where is the var.ext found? Since ext 1 can call group A and ext 2 can call group B but not vice versa.
 
Alright. So they call the app via the apps extension, it prompts for an input (outbound calling number) and checks the database. Now, the database has 3 fields, ID, Ext and Number. If my statement is

Select count(*) from DB where ext = var.ext & number=var.number
Where is the var.ext found? Since ext 1 can call group A and ext 2 can call group B but not vice versa.
In your case, session.ani (caller id)
 
I'll try this and update you.
As we're on the topic of update, how does one use the increment variable to update a sql field. Let's say we want to log number of calls made to that outbound number, I know call log can do this, since we have a database set up, it would be about to handle much more data and analyse cleaner.

4th column
ID | Ext | Number | NumOfAttempts

Every time the dialer destination matches var.number, it adds 1 to NumOfAttempts.
 
I'll try this and update you.
As we're on the topic of update, how does one use the increment variable to update a sql field. Let's say we want to log number of calls made to that outbound number, I know call log can do this, since we have a database set up, it would be about to handle much more data and analyse cleaner.

4th column
ID | Ext | Number | NumOfAttempts

Every time the dialer destination matches var.number, it adds 1 to NumOfAttempts.
Use something like "UPDATE numbers SET call_count = call_count + 1 where id = [yourIdVariable]" or use anything else to WHERE it.
 
Use something like "UPDATE numbers SET call_count = call_count + 1 where id = [yourIdVariable]" or use anything else to WHERE it.
Thanks! I'll try both session.ani and update statement and let you know how it went.
 
We took a different approach with our 3CX Do Not Call tool. Our tool monitors all numbers dialed and if the number is in the DNC list, we drop the call. The biggest challenge we had with this tool was looking up the number fast enough to ensure the external phone never rang. We have customers with 20+ Million numbers so the lookup had to be ultra fast.

In your case, you could block direct outbound calls from specific extensions using outbound rules and an unpublished prefix. Then ,the only way a person could make an external call is via the CFD. The user calls the CFD extension and it prompts for the desired number. The CFD then looks up the number in a list and if permitted, the caller is transferred to the requested number (with the secret prepended digits). We did exactly this with our 3CX Enhanced Billing Codes
 
We took a different approach with our 3CX Do Not Call tool. Our tool monitors all numbers dialed and if the number is in the DNC list, we drop the call. The biggest challenge we had with this tool was looking up the number fast enough to ensure the external phone never rang. We have customers with 20+ Million numbers so the lookup had to be ultra fast.

In your case, you could block direct outbound calls from specific extensions using outbound rules and an unpublished prefix. Then ,the only way a person could make an external call is via the CFD. The user calls the CFD extension and it prompts for the desired number. The CFD then looks up the number in a list and if permitted, the caller is transferred to the requested number (with the secret prepended digits). We did exactly this with our 3CX Enhanced Billing Codes
I just read your restrict call feature from the Enhance Billing Codes. Just to clarify, it uses account code (maybe a secret code per extension) verifies it against the database of numbers the account can call, runs the logic to determine If the call can be made or not. Am I correct or am I misunderstanding?
 
Let me see if I can explain the intended purpose of 3CX Enhanced Billing Codes (EBC), and then we can discuss whether it would work for you.

Take the example of a law firm that bills for their time. Before they make an outbound call, they must first enter the account code associated with a client. Then EBC monitors the length of the call and records it in a database. At the end of the month, a report is run that lists all the calls (grouped by account code) and a cost is calculated for the customer. We do enable you to put some restrictions on the account code. For example, you could block international phone calls when using a specific account code.

Let us consider another example. Suppose you work for a large governmental organization where each department has their own budget for phone calls. You could require the caller to put in their account code (department) before making an outbound call. Then you put general restrictions on the department.

What EBC does not do, is associate a list of numbers blocked/permitted by account code.

In contrast, 3CX Do Not Call (DNC) is intended to protect an organization from call center agents inadvertently calling someone on a national Do Not Call list. You can apply the restriction to specific groups and enter exceptions to the rules, but the list of blocked numbers is essentially the same for everyone. Also, with DNC you do not have to call a CFD and enter the phone number, rather, you simply dial the number and DNC rejects the number automatically.

If you want something different than both EBC and DNC, we can discuss a custom solution.
 
Let me see if I can explain the intended purpose of 3CX Enhanced Billing Codes (EBC), and then we can discuss whether it would work for you.

Take the example of a law firm that bills for their time. Before they make an outbound call, they must first enter the account code associated with a client. Then EBC monitors the length of the call and records it in a database. At the end of the month, a report is run that lists all the calls (grouped by account code) and a cost is calculated for the customer. We do enable you to put some restrictions on the account code. For example, you could block international phone calls when using a specific account code.

Let us consider another example. Suppose you work for a large governmental organization where each department has their own budget for phone calls. You could require the caller to put in their account code (department) before making an outbound call. Then you put general restrictions on the department.

What EBC does not do, is associate a list of numbers blocked/permitted by account code.

In contrast, 3CX Do Not Call (DNC) is intended to protect an organization from call center agents inadvertently calling someone on a national Do Not Call list. You can apply the restriction to specific groups and enter exceptions to the rules, but the list of blocked numbers is essentially the same for everyone. Also, with DNC you do not have to call a CFD and enter the phone number, rather, you simply dial the number and DNC rejects the number automatically.

If you want something different than both EBC and DNC, we can discuss a custom solution.
DNC comes close to what we're looking at but we need it per extension/agent bases and not global.
 
You have my contact information. I will be available Monday.
 
Status
Not open for further replies.

Forum statistics

Threads
111,973
Messages
590,078
Members
164,896
Latest member
sameage