FreePBX | Register | Issues | Wiki | Portal | Support

DID Routing outside of 'Inbound Routes'


Hey there. Using latest sangoma os distribution.

I’m trying to add some call flow using inbound routes, time conditions, and ring groups. The client would like me to route calls to the same destination (a time condition), using the same feature code to override the time condition (so there’s only one button to press to set the system to ‘night mode’), but have different final destinations based on the number that was called. So if the number comes into 7100, it goes to the time condition, ring group x (controlled by that feature code), and if nobody answers, it goes to voicemail box a. If the number comes into 7500, it hits that same time condition (controlled via feature code for matching), hits ring group x, and if nobody answers goes to vmb b.

So both calls are controlled by the time condition and go to a ring group based on that time condition, but it’s the same ring group for both, based on which way that condition matches.

Is there some way to route calls, beyond “inbound routes”, based on DID later in the call flow? How would you solve this issue?

Right now, I can’t see how to do it without adding another button/time condition and basing the call flow on that, since I route based on the DID of the call from my ring group.


I found Routing decision based on DID which asks the same question, but for IVR recordings, and he’s more worried about how the result scales with lots of different DIDs. I’ll only have a finite number of these possibilities and it won’t change very often. There seems to be a lot of custom dialplan suggestions, which is probably where I’ll end up, but I’m not very good with the dial plan at this point.

(Dave Burgess) #3

There’s no easy way to do this “after the split”. Normally, you would have a single route for each DID (which gives you different Time Condition sets).

You want to set up a “redirector” context that you can use after the ring group to send the call based on DID. This is very unusual and no one (I’m thinking) has ever bothered to submit one after they finished it. Maybe you can change that trend. As an alternative, you could submit your code and we could all look at it…

(Michael Thomson) #4

Interesting - I have a very similar situation.
We provide call-handling services to a variety of client organisations, who all want a personalised service to their end customers. With the advent of GDPR regulations we would ideally want all callers to be asked (via IVR) to explicitly grant consent for call recording, but interleaved between a custom greeting (easy) and delivery to a custom ring group to maintain the different prompt sets.
For small numbers of client organisations, managing multiple IVRs is not much more trouble than the multiple ring groups we have today, but if both applications could somehow be parameterised, (identical logic, the only differences are the announcements played to the caller and to the call handling agents) that would be a huge help. Reducing the needle-in-haystack problem of finding a misconfiguration in a sea (OK, only around 20 today) instances of each application would be really reassuring.

(Michael Thomson) #5

Hmmm - If I assign a custom language to each client’s calls (and avoid encountering any default announcements in those languages) then can I achieve what I need by placing my (staunchly British) recordings the all of the appropriate places?

(Dave Burgess) #6

As a reminder - FreePBX is not well suited to multi-tenant operations. This is one problem area. Others include parking lot problems, IVRs, inter-company extension calling, time-condition management, and other things that people want to do to save a few cents on implementation of an already free solution. This lack of facility for multi-tenant operations often leads to consequences like …

You can certainly do what you want to do, but it’s outside the scope of a typical installation and isn’t particularly transparent or simple.

(Michael Thomson) #7

Understood, Dave, but the company is a single organisation, the complexity is the clients we deal with wanting a customised experience for their end users. The same agents take the same calls in the same way regardless of origin.

I’ve now realised (facepalm!) that creating my own custom languages is likely to be an even better fit for our situation - I’ll report back.

(Michael Thomson) #8

Well, I think I’ve cracked my version of this problem, at least.

In Admin / Sound Languages I created a custom “language” for each of my different client organisations.

In System Recordings I created a client welcome and recorded a version for each client in the appropriate custom “language”.

In Applications / Languages I created an entry for each organisation to set the “language” with its destination set to the single Announcement playing the appropriate welcome message for that client.

The Announcement is followed by a single IVR, where the announcements are all generic.

The IVR routes calls to a Ring Group and here again the Announcements are in multiple versions per client.

Inbound routes for each client have destinations set to the appropriate client in Languages.

FreePBX has once again blown me away with its flexibility and power!