Dynamic Call Routing

Status
Not open for further replies.

Tomshi

Silver Partner
Joined
Jan 20, 2023
Messages
5
Reaction score
0
Hello,

I am having trouble figuring out how to configure dynamic call routing. Here's the scenario:

A call is placed from extension 10 to external number 123456789. When 123456789 calls back, the call goes straight to extension 10, ignoring other inbound rules.

My idea was to somehow store all outbound calls. Then, before applying any inbound rules, create another CFD to search that file for the external number that's calling. If it is found, route the call to the corresponding extension.

Or maybe I'm trying to complicate it too much and there is a simpler solution ?
 
You could export your CDR records to a server which could do the processing of the calls. Then divert all your DIDs to the CFD which will check if an outgoing call was placed, and by whom. Then the CFD would do the routing based on the response.

IF the CFD search does not respond with a valid response, then you could have a separate table saying where to divert each call.
 
You mean to make some cron job to export CDR records to other server (can you clarify processing the calls here ?) Then check that cdr file if there is corresponding extension. If yes route to him if no exit cdr and route to "normal" route to 3cx ?
To clarify my scenario it should store that outbound call for 6 hours then clear them.
 
You can export the CDR records directly from within 3CX

V20:

1712309303025.png

This will connect to your CDR server and send the calls to it for processing. How you handle these records is up to you from that point forward.

Your scenario is correct as you mentioned above. However, you can only have each DID assigned once, so as that will be going to the CFD, then you would need to define within the CFD where each DID will route if it doesnt get a hit from your database.
 
Each extension has its own DID, but for outbound routes, they use just the main trunk number. So everyone in the outbound route is presented with the same number. If I understand correctly, I will only need 1 rule in CFD if the route does not match a record in my database case. I want to make that rule only for my main number.

And one more question (I'm new to CFD). How can I handle that processed file in CFD? Should I send it back to the server where 3CX is located?
 
Each extension has its own DID, but for outbound routes, they use just the main trunk number. So everyone in the outbound route is presented with the same number. If I understand correctly, I will only need 1 rule in CFD if the route does not match a record in my database case. I want to make that rule only for my main number.

And one more question (I'm new to CFD). How can I handle that processed file in CFD? Should I send it back to the server where 3CX is located?

Then you have a very clean scenario. It will make it a lot easier to process that one incoming number.

The CFD should be configured to do a query based on the caller's Caller ID to the external server. You would not need to send it back to 3CX.

So if the CFD shows an outgoing call, you should formulate your query to process the caller ID to this table. This could be for example a database query.
 
  • Like
Reactions: Evolute IT
If you decide building this CFD is more complicated than you want to tackle yourself, we can help.
 
  • Like
Reactions: Evolute IT
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
111,953
Messages
589,915
Members
164,851
Latest member
DrunkeMeister