What are the limitations of the EPM module? Do I need a separate license for each PBX, or can I use it to configure all of the phones from multiple PBXs?
You need a license for each PBX for all commercial modules.
But that is beside the point. What are you actually trying to do here? An endpoint (deskphone) can only be provisioned by one provisioning server. I know of zero units that are otherwise.
Said provisioning has (technically) nothing to do with what PBX the endpoint is registering to.
It is typical, and thus the default behaviour, for the endpoint to register to the same system that it gets provisioned from.
I would like to have the ability to configure phones at remote locations from a centralized server/location.
So I can change the name of an extension, change button configurations, roll out firmware upgrades.
So if I have 10 PBX servers, and locations all over the country, I can manage those phones from my home office. The pbx servers are in a colo.
Why ten PBX systems? Why not just one?
Each branch operates on a separate server. They run under virtual servers on the same box. At the time it was implemented, that was their choice.
My question is, what software package can I use to manage all of the phones, or am I limited to one EPM per PBX box? Or is there a better tool?
This is why i asked the questions I asked.
IMO, your best solution would be to manage them yourself then. Attempting to manage everything through a single EPM GUI would be a disaster (but is possible).
I use private git repositories for this, one for each PBX, and I have a cron on each PBX that runs a git pull every hour.
Then I have all the repositories checked out in a logical folder structure on my desktop. I open the root folder in VSCode and win.
Since MAC addresses are hard to relate, I intentionally set the DHCP hostname to
extXXX so I can easily do a find (in VSCode) or grep and get the right file to change.
I commit locally, then push, and sometime in the next hour, it will be live on the PBX. After that, the phone will get the new config at check-in time overnight.
Obviously, I could ssh into the PBX and git pull and them send a sip notify to force a check-sync immediately also.
Perhaps I’m looking for the wrong thing.
Would a provisioning server do what I want?
Every FreePBX install is also a provisioning server. Since you had things separated, my suggestion was to keep them separated, but manage them locally on your system.
If you want a GUI, just buy EPM for all the systems. No one makes a GUI based provisioning setup that is worth it for more than their own devices. EPM is good, but has limitations for anything outside of what Sangoma defines as normal. That normal does handle many use cases though, so it is probably a pretty decent baseline.