Module allowing extensions to be grouped & aliased. Like the schmooze directory but with aliasing support

Imagine a multi-homed server hosting 10 different businesses. Each business is given 100 extensions. So, business Alpha has extensions 100-199, business Bravo has extensions 200-299, etc.

Each business has an IVR and a Schmooze directory grouping all their extensions to allow for easy dial-by-extension. So, business Alpha has Directory Alpha containing extensions 100-199, business Beta has Directory Beta containing extensions 200-299, etc. Now when a caller hits the Bravo IVR they can dial 209 and get transferred to extension 209.

Here is the problem. I don’t want business Bravo to be stuck with forcing callers to use extensions 200-299. I would like to alias the Bravo extensions to be 100-199 instead of 200-299. So a caller can call the Bravo DID, get dumped into the Bravo IVR, and then dial 109 which would then transfer them to extension 209. If they dialed extension 101, they would get transferred to extension 201.

I know I can do this by manually adding all the aliases to the IVR. However, imagine nested IVRs. I would have to re-add all those aliases manually over and over.

The Schmooze directory lets me group a bunch of extensions and then add that entire group to an IVR with one click. The only problem is the Schmooze directory does not support extension aliasing and therefore the callers need to use the actual extension numbers.

I would like to tell each business they get to have extensions 101-199 and not have to tell some unlucky soul “hey buddy your extensions are 1400-1499”. I know I can manually do all the mapping in the IVR but I would think there has to be an easier way (module) to do this?