ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX

    IT Discussion
    5
    34
    2.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 3
      360col
      last edited by

      I want to steer this thread back to my original question. That is how would one setup a system that provides those features starting from a clean slate. Please ignore I ever mention about the current system. That part is done and dusted! This is purely for my learning and for other who may have the same questions as I am now.

      Let say I will get SIP trunks from a provider and then setup myself a system that does the rest.

      From what I've learned so far from this and the other thread is that. FreePBX & FusionPBX are 2 potential options.

      FreePBX: not true multi tenant with many limitations (for this screnario)

      FusionPBX: True multi tenant. However not as well know used. Documentation are not good.

      What other options are out there that wold have those features?

      1 Reply Last reply Reply Quote 0
      • scottalanmillerS
        scottalanmiller
        last edited by

        So beyond the scenes, FreePBX is Asterisk. Abd FusionPBX is FreeSwitch. Each is the leader for that specific platform

        There arent many other open kernels to work from. So most other options are very similar to these.

        So these tend to be the big options as anyone else will be a near clone of these.

        1 Reply Last reply Reply Quote 0
        • A
          alimrahimi
          last edited by

          Hi Scott and Mark,

          I have couple customer looking for about 800 VoIP extension in California, I need some recommendation good infrastructure setup, I really appreciate for your suggestion and recommendation.

          Q1. Hosting Provider recommendation
          1 .AWS
          2. vultr
          3. Digital ocean
          4- Dedicated server( colocation)
          Note: of course everyone agreed to pay less as long as have minimum downtime for better call quality

          Q2.Fusion Server infrastructure option

          1.Separate database Server
          server 1 - Fusion application
          Seever 2 - postscript database

          0_1539493459926_Screen Shot 2018-10-13 at 22.01.01.png

          NOTE: Of course I should have a good bandwidth between two server

          1. Load Balancer option
            Load Balancer point to Server 1- App1 and Server 2- App 2 and these two app server point to a Database server(postscript database)

          0_1539493600118_Screen Shot 2018-10-13 at 22.05.56.png

          Note: The load balancer is a single point of failure; if it goes down, your whole service can go down. A high availability (HA) setup is an infrastructure without a single point of failure. To learn how to implement an HA setup, you can read this section of How To Use Floating IPs.

          1. Master-Slave Database Replication

          0_1539494206864_Screen Shot 2018-10-13 at 22.16.34.png

          Note: The application accessing the database must have a mechanism to determine which database nodes it should send an update and read requests to Updates to slaves are asynchronous, so there is a chance that their contents could be out of date If the master fails, no updates can be performed on the database until the issue is corrected and does not have built-in failover in case of failure of a master node

          1. load balance the caching servers, in addition to the application servers, and use database replication in a single environment.
            0_1539494461404_Screen Shot 2018-10-13 at 22.19.23.png

          Note:This environment still has two single points of failure (load balancer and master database server), but it provides the all of the other reliability and performance benefits that were described in each section above.

          1. IF you recommned any other setup to start for two new customer and of cource i can scale it later.

          Q3. Do i need to setup kamailio or opensips and what is the advantage to have it now?

          Thank you so much in advance for you help and support.

          scottalanmillerS 8 Replies Last reply Reply Quote 0
          • scottalanmillerS
            scottalanmiller @alimrahimi
            last edited by

            @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

            Q1. Hosting Provider recommendation
            1 .AWS
            2. vultr
            3. Digital ocean
            4- Dedicated server( colocation)
            Note: of course everyone agreed to pay less as long as have minimum downtime for better call quality

            Dedicated server would not make sense. High cost and no benefit, given the size, unless you already have it for other reasons. At 800 extensions, you can run this on less than $20/mo on a cloud provider, likely only $10. And then you have things ready to spin up a spare instance when needed.

            Vultr has consistently been the "go to" player here. AWS doesn't allow ISO uploads and is overly expensive. DO traditionally doesn't allow ISO uploads, and doesn't perform up to par with Vultr. Vultr is your best value, performance, and features.

            1 Reply Last reply Reply Quote 0
            • scottalanmillerS
              scottalanmiller @alimrahimi
              last edited by

              @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

              Q2.Fusion Server infrastructure option

              1.Separate database Server
              server 1 - Fusion application
              Seever 2 - postscript database

              0_1539493459926_Screen Shot 2018-10-13 at 22.01.01.png

              NOTE: Of course I should have a good bandwidth between two server

              You typically do separate app and database servers when you are mixing apps and/or going to large scale. This is not large scale at all. You are well within the range of any tiny PBX. Adding this will likely just hurt performance, add risk, add complexity, and add cost. At this small scale, I don't see any benefits to the separation.

              1 Reply Last reply Reply Quote 0
              • scottalanmillerS
                scottalanmiller @alimrahimi
                last edited by

                @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                1. Load Balancer option
                  Load Balancer point to Server 1- App1 and Server 2- App 2 and these two app server point to a Database server(postscript database)

                0_1539493600118_Screen Shot 2018-10-13 at 22.05.56.png

                Note: The load balancer is a single point of failure; if it goes down, your whole service can go down. A high availability (HA) setup is an infrastructure without a single point of failure. To learn how to implement an HA setup, you can read this section of How To Use Floating IPs.

                HA doesn't mean you have or don't have a single point of failure. HA is exactly what it sounds like "availability rates that are significantly higher than standard." HA is determined by how many "nines" you get of availability, how that is achieved is not a factor in whether something is HA or not. In fact, many "fully redundant" solutions are actually the opposite, "low availability", because many redundancy mechanisms add risk rather than removing it.

                Load balancing is not an appropriate mechanism for voice calls and does not make sense here.

                It looks like you are taking diagrams from web applications, not PBX servers. These designs are not appropriate approaches for a PBX.

                1 Reply Last reply Reply Quote 0
                • scottalanmillerS
                  scottalanmiller @alimrahimi
                  last edited by

                  @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                  1. Master-Slave Database Replication

                  0_1539494206864_Screen Shot 2018-10-13 at 22.16.34.png

                  Note: The application accessing the database must have a mechanism to determine which database nodes it should send an update and read requests to Updates to slaves are asynchronous, so there is a chance that their contents could be out of date If the master fails, no updates can be performed on the database until the issue is corrected and does not have built-in failover in case of failure of a master node

                  This doesn't really make sense. The deeper we go, the more it looks like you are dealing with architectural diagrams from something other than a phone system. If we were talking about a high availability web app, sure, this makes total sense and is a standard design. For a PBX, this would buy you effectively nothing. All of this complexity would put you at greater risk, rather than protecting you.

                  1 Reply Last reply Reply Quote 0
                  • scottalanmillerS
                    scottalanmiller @alimrahimi
                    last edited by

                    @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                    1. load balance the caching servers, in addition to the application servers, and use database replication in a single environment.
                      0_1539494461404_Screen Shot 2018-10-13 at 22.19.23.png

                    This doesn't work at all. You can't cache PBX traffic. So this is simply impossible. Whatever source you are using for this information is specific to web apps, and doesn't apply to your needs.

                    1 Reply Last reply Reply Quote 0
                    • scottalanmillerS
                      scottalanmiller @alimrahimi
                      last edited by

                      @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                      Note:This environment still has two single points of failure (load balancer and master database server), but it provides the all of the other reliability and performance benefits that were described in each section above.

                      Sort of. Enterprise load balancers are clustered, not individual units. So this isn't a risk in that type of architecture. Bad idea for your phone system, doesn't make sense here, but is not a single point of failure when talking about this architecture.

                      If this was a real enterprise web app, we wouldn't put the database in master/slave but in master/master or active/passive modes so this would not be a single point of failure, either. What's the purpose of the slave node if it was believed it would be useless, anyway? In any normal database setup for HA, you have two (or three, or many) nodes that are all load balanced and any can take over.

                      But again, this isn't how PBXs work, so doesn't matter.

                      1 Reply Last reply Reply Quote 0
                      • scottalanmillerS
                        scottalanmiller @alimrahimi
                        last edited by

                        @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                        1. IF you recommned any other setup to start for two new customer and of cource i can scale it later.

                        Worrying about PBX scaling will get you into big trouble. A single small PBX can handle thousands and thousands of extensions, no problem.

                        All you need for 800 extensions is a single VM that runs your PBX, that's it. Add anything more to that, and you are just adding more things to fail, more things to misconfigure, more cost. One VM, nothing more. Keep it "normal".

                        If you want HA, you don't need anything really, just a backup that you can restore in seconds. PBX are nearly stateless, you don't need live replication to keep them for HA purposes. If you have extreme needs way beyond industry norms (like way beyond) then you could run two PBX VMs, one replicated to the other, so that failover is a few seconds faster. That's it, that's all that you need. That way you can have the IP of the second VM registered with your trunk provider ahead of time.

                        It's that simple. Anything "more complicated" is just making things worse, not better.

                        1 Reply Last reply Reply Quote 0
                        • scottalanmillerS
                          scottalanmiller @alimrahimi
                          last edited by

                          @alimrahimi said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                          Q3. Do i need to setup kamailio or opensips and what is the advantage to have it now?

                          No, you don't need it.

                          1 Reply Last reply Reply Quote 0
                          • scottalanmillerS
                            scottalanmiller
                            last edited by

                            At such a small scale, you could even use SQLite instead of PostgreSQL to make VM to VM replication easier and system management easier, and to reduce risk. SQLite is a database, not an RDBMS, so has no service to fail, unlike MySQL, PostgreSQL, SQL Server, etc. There is nothing to "go down", it's just a file. So backups and restores, and uptime are a breeze.

                            1 Reply Last reply Reply Quote 0
                            • 3
                              360col
                              last edited by

                              @scottalanmiller said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                              At such a small scale, you could even use SQLite instead of PostgreSQL

                              At what size would you stop using SQLite?

                              scottalanmillerS 1 Reply Last reply Reply Quote 0
                              • scottalanmillerS
                                scottalanmiller @360col
                                last edited by

                                @360col said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                                @scottalanmiller said in Best architecture / recommendation for multi sites (separate business) Cloud VOIP PBX:

                                At such a small scale, you could even use SQLite instead of PostgreSQL

                                At what size would you stop using SQLite?

                                Maybe a few thousand, or with multi-tenancy. PostgreSQL lets you go to a full live/live model, but that would be for things like 911 call centers.

                                1 Reply Last reply Reply Quote 0
                                • 1
                                • 2
                                • 2 / 2
                                • First post
                                  Last post