The issues you raise are valid so I’ll try to address them all.
With the proposed “dial contexts” module, you would indeed need to create 5 dial contexts. You’d also need to create a number of outbound routes - but outbound routes can be shared, so it is probably not the case that you would have 10 distinct groups (2 for each dial context), although it certainly is possible.
One problem with effectively having the “outbound groups” screen merged with the “dial contexts” screen (much like this module works), is in the case that you do actually share the same outbound route among multiple contexts, with this module you’d have to edit 5 different screens to change it (very prone to error, especially when you don’t remember that there are 5 sites using it). With the separate dial contexts / outbound routes, you edit the one route, and it is updated for all sites.
There may be UI shortcuts that could help with this: perhaps “add route” and “edit route” buttons, that would do an in-place add/edit for the route, without leaving the dial contexts screen.
As far as editing 30 extensions, yes, you’re right, you would individually need to change them all. But this is a UI issue, and is solved in many ways:
- A select list could be added on each dial context, to allow adding extensions to that context (obviously it would have to indicate if they’re already in another context). This would do the same thing as going into the extension and changing a dial context drop-down, it’s just another way to access it.
- a “mass changes” UI could be created (I think there are some people already looking for this) where you can edit properties of multiple extensions at the same time, on one screen.
The biggest problem I see with using a regex range to select the extensions is suddenly extension numbers have meaning. If someone moves to another office, they have to get a new extension number. There is currently no reason technically why this would have to happen.
Another issue is tying to extension numbers and not devices. For example (in deviceanduser mode), a user may have extension 201, with device 201001 in New York, and device 201002 in Toronto. If someone dials 911 on either of those phones, obviously it needs to call 911 on a local PSTN line. This isn’t possible when matching based on the extension number. Likewise, the local calling areas are different, so you likely want different routes for local numbers.
Greg MacLellan - Core freePBX Developer
http//freepbx.org - irc.freenode.net #freepbx