We have 2 sites, each with a FreePBX install and one offsite cloud install.
Site 1 extensions are 1XXX and site 2 extensions are 2XXX.
We have an IVR on the cloud install that needs to allow direct dial (“please dial the extension of the party you are trying to reach”) to either of the two sites. When the function is enabled in IVR settings, it doesn’t work, presumably because the extensions are not local to the IVR.
Set up an Intracompany Route as an Outbound Route to each local site. Point them at the local servers. Set up the local servers to accept the extension numbers as the “DID” entries for an inbound route that points to ‘from-internal’ on each.
I haven’t tried it, but it should be interesting, at least.
Assuming already have working routes to dial between systems, you only need to create a phone directory of all extensions that you want IVR callers to be able to reach, including the local extensions. Then edit the IVR direct dial option to use this directory.
I have a similar setup but the numbers on the remote pbx are constantly changing, so to avoid having to update directories, I am using a bit of custom dial plan.
The IVRs you create from the GUI have contexts that are named sequentially. So the FreePBX generated dial plan for the first IVR is in [ivr-2], the second one in [ivr-3], etc.
So you can add to those contexts by adding this to extensions_custom.conf.