If you are the proud owner of a FusionPBX load-balanced cluster, you may have some troubles dealing with the call center feature. In short, when you do a change, the FreeSWITCH does not take the change. I will explain why and how to deal with this behavior.
In the past, I have described different approaches about the architecture of a load-balanced FusionPBX cluster: the simplest one with two datacentres and a more distributed one where the web UI is hosted in a separated server.
In this scenario, you have 50% of probability that the web UI of FusionPBX you are accessing is not local to the extension you want.
In this scenario, because there is a dedicated server hosting the web UI (frontend server), you are 100% positive that the server is no local to the extension you want.
So, your next question would be, why does this matter to the call center? The answer is easy. Although the mod_callcenter from FreeSWITCH is able to load its configuration from a database through a DSN string, it only loads its data at configuration time; in other words, when you load the module. All the data, including the queues definition, agent definition and state, and agent assignments is loaded when you load the module.
In a stand-alone scenario, the web UI is local to all the extensions; the FusionPBX code sends a callcenter_config command to the FreeSWITCH through the event socket. This is why it works on simple server deployments.
Sadly, there is no a direct solution to fix this issue. The workaround would be reloading the mod_callcenter each time there was a change. however, there could be a side-effect as if there is an active queue all will be flushed, or if you know the correct callcenter_config command, you could push it.
The other workaround I may suggest is an LUA replacement for mod_callcentre. Maybe, just maybe I could write once.
Good luck!blog comments powered by Disqus