Recommendations for 30 offices & 500 users

Hi Paul,

It really depends what they are doing on the PBX. Concurrent calls, Queues, BLFs are the main factors.

For example, a queue that has a ringall strategy with 20 agents and you have another 40 different endpoints that monitor each of these 20 extensions, a single incoming queue call will show a notable difference when you monitor CPU/RAM as asterisk will send 20 INVITEs and 800 NOTIFYs in less then a second. I’m kinda exaggerating here, since I have never seen a scenario where 40 endpoints were subscribed to monitor the same extension… I just want you to get the idea of what I am referring to.

With the right amount of hardware resources you can host 500+ endpoints, but again, it boils down to the actual operations done on the PBX.

With that being said, since this healthcare company has 30 offices, I doubt that they are all in the same geographical area. So I would split the setup to two PBXs in different regions and set up an intra company trunk between them. PBX1 would have extensions 100-399, PBX2 would have extensions 400-799 that way you can easily configure your routes between the PBXs without causing a loop.
The cool thing is, that with PJSIP, you can have BLF monitoring an extension on the remote PBX.

There are a couple of ways you can design the trunks. However, extension to extension calls should always be routed through the IntraCompany Trunk.

  1. Get a Trunk for each PBX from your provider.
    image

  2. Get a single Trunk from your provider and use something like dSIP Router to set up a Trunk to each PBX.
    image

  3. Get a single Trunk and point it to PBX1, then route the calls that need to be on PBX2, either though the IntraCompany Trunk or another Trunk dedicated for “external calls”. With PJSIP you can have multiple Trunks between the same set of PBXs as you an specify different listening ports. The reason why you would want to have different Trunks, is because IntraCompany Trunks are usually configured to use the from-internal context VS standard incoming calls use the from-pstn context.
    image


If you want to use a super advanced route. Here’s what I would do:

  • Set up the entire PBX on PBX1, then configure PBX2 to replicate using warm spare backup.
  • In EPM, for extensions 100-399 set the primary SIP server as PBX1 and the secondary as PBX2. For extensions 400-799 PBX2 as the primary and PBX1 as the secondary.
  • Write a custom dialplan, probably in the predial hook, to check if the device is online, if not, try to reach the device via the IntraCompany route. And obviously implement some loop detection process.
  • Setup the trunks with the above mentioned option 2 (or option 1 if you carrier allows you to do the following). Set the DIDs for PBX1 to use PBX1 and fail over to PBX2 and same for the DIDs for PBX2 to fail over to PBX1.

This way, you have them split between both PBXs AND if one of them dies, the other one will now have all extensions registered and process calls normally.

I hope that makes sense…

1 Like