Overview
I wanted to share my general notes on what I have working so far, and how, to achieve a full load-sharing FusionPBX cluster. I am hoping that we can collaborate in this thread to work up a document showing what's possible and what's not.
My goal is to have a PBX cluster with separated data layer and service layer so that any number of FreeSWITCH nodes (service layer) can be joined in and the configs and live data will all exist in the database, which does not necessarily have to coexist with FreeSWITCH. That said, there's value in having a local DB on every FS machine to reduce latency between the DB and the things that are accessing it (FS, lua scripts, FusionPBX web interface). So what I had in mind is just to do a full install of FusionPBX on every node and link the databases.
I'm not too comfortable with BDR yet so at this point in my experiments I have two nodes and both of them pointing to a single node for their shared fusionpbx and freeswitch databases. I believe the effective result is the same as if we were doing BDR and each FusionPBX accessed its local clustered DB instance.
The FS nodes should be able to service any endpoints or incoming calls routed from a provider. By way of the shared freeswitch database they should be able to route internal calls between nodes in order to do extension-to-extension calling, call park and retrieval, conferencing, queues, etc.
Of course, this should work with the multi-tenant domain model.
I'll add posts to the thread to write about some of the specifics.
NOTE! There are likely errors in my ideas and methods so please point them out. Ultimately I would like a refined and accurate how-to guide to come out of this.
I wanted to share my general notes on what I have working so far, and how, to achieve a full load-sharing FusionPBX cluster. I am hoping that we can collaborate in this thread to work up a document showing what's possible and what's not.
My goal is to have a PBX cluster with separated data layer and service layer so that any number of FreeSWITCH nodes (service layer) can be joined in and the configs and live data will all exist in the database, which does not necessarily have to coexist with FreeSWITCH. That said, there's value in having a local DB on every FS machine to reduce latency between the DB and the things that are accessing it (FS, lua scripts, FusionPBX web interface). So what I had in mind is just to do a full install of FusionPBX on every node and link the databases.
I'm not too comfortable with BDR yet so at this point in my experiments I have two nodes and both of them pointing to a single node for their shared fusionpbx and freeswitch databases. I believe the effective result is the same as if we were doing BDR and each FusionPBX accessed its local clustered DB instance.
The FS nodes should be able to service any endpoints or incoming calls routed from a provider. By way of the shared freeswitch database they should be able to route internal calls between nodes in order to do extension-to-extension calling, call park and retrieval, conferencing, queues, etc.
Of course, this should work with the multi-tenant domain model.
I'll add posts to the thread to write about some of the specifics.
NOTE! There are likely errors in my ideas and methods so please point them out. Ultimately I would like a refined and accurate how-to guide to come out of this.
Last edited: