Server requirements on a VPS server running Asterix/Free PBX?


#1

Hello!
I been searching high and low on the internet for information about the server requirements and specifications on installing Asterix (Free PBX) on a cloud hosted VPS server?
I have found loads of information about hardware requirements for real physical servers, but there is extremely little information provided about VPS servers and what is needed in terms of number of cores, memory, disk space etc.So I hope I could have this conundrum solved.
We are also planning to record all conversions as part of compliance requirements of our business so how much disk space does and general phone call conversation take up in space? How much space is needed in theory? Lets say a call is in general between 10-15 minutes, maybe 25 minutes in some cases.

Thanks a bunch in advance for the help.
Kind regards
AngryWarrior.


(Richard Smith) #2

I would recommend the same resources are allocated on a VPS as you would have on a physical appliance.

So at a minimum I would suggest 1 Core, 2GB RAM and 20GB storage.


#3

Thank you @rsmithuk for your reply and answer.

So if I setup a VPS server with 3 cores, 6 GB memory and 70 GB Disk space how many phone lines/employees/ calls inbound/outbound would it be able to a handle smoothly do you think?

Kind regards
AngryWarrior


(Richard Smith) #4

So this is what we provide for our clients:

Small (1-15 Extensions) 1 Core, 2GB RAM and 25GB SSD
Medium (1-30 Extensions) 1 Core, 4GB RAM and 75GB SSD
Large (1-75 Extensions)2 Cores, 6GB RAM and 150GB SSD
Extra Large (1-200 Extensions) 2 Cores, 8GB RAM and 250GB SSD

The number of concurrent calls will depend on the codec, how many of those calls are being recorded etc.


#5

Depends on the recording format. Assuming most calls are g711a/u, uncompressed wav (.wav) is about 1MB/minute, wav49 (.WAV) or gsm will be about 100K per minute.

Hard to qualify as VPS providers can vary greatly. If the provider offers an easy path to upscale in place start small and increase as needed.

I hate over-provisioning, no need to pay for what you don’t need. I set up FreePBX inside a fat container, so moving to another host is at most a simple rsync and dns update.

But I don’t use the distro.


#6

Thanks a lot both of you @jerrm and @rsmithuk.
That is indeed really helpful information and very appreciated. :+1:

Well I need to record everything - every single call both for compliance reasons and because our customers should be able to listen to agent calls for quality purposes.
Is there by the way some module available already that would allow customers to login and listen to calls -OR- is it something I need to have custom developed?

Thanks again guys! :smiley:

Kind regards
AngryWarrior


(Richard Smith) #7

Do you mean internal or external users and as the call is happening or the recordings?


#8

What’s the expected concurrent load? Some testing I did years ago suggested saving uncompressed recordings was less CPU intensive. I’d be curious if that really holds up.

Fact or fiction, that has been my operating assumption. I record in uncompressed wav and then have an after hours cron job to convert to wav49. Could just as easily convert to mp3 or other higher compression format.


#9

From the asterisk cli :-

core show translation

will show the ‘cost’ of translation, so saving as the default ‘wav’ (adpcm) is pretty cheap on CPU, translating later to mp3, ogg or wav49 are the ‘cheaper’ when it comes to storage.

As to dimensioning, best thing is to run a 1G $5 cloud instance up the pole, and “top” it under load,


#10

Hmm well it would be interesting if you could login to active call to listen of course. But I think I was more thinking in terms of you have customer XYZ that you give a user/password so they could login just to listen to the recordings of a agent that is working on their project (we’re are sales and marketing lead generation agency). So that is the main goal. But from a staff education perspective (but also quality reassurance) it could of course be interesting to be able to login and listen to active live calls and allowing the customers to do that too? But that is of course not my primary main goal or intent which was just to record the calls, you kinda give me this additional idea which isn’t a bad one at all. :smirk:

Well we’re young company, but we’re expecting to expand fast and employ loads of agents/sales people. Right now not so many just few few, but as things progress we could easily end up with 30 agents or more.

So if I understand what you’re saying is that is to record in .waw. and then later have the server automatically convert those file to .mp3?

Doesn’t that put additionally unnecessary load of the server cpu etc having it doing the extra work of converting also?

Thanks a bunch.

Kind regards
AngryWarrior


#11

Absolutely , but generally the server is under less load at 2am , cron is your friend here. rsyncing the monitor files off-site and deleting local files after a certain mtime is also space saving and a good ‘belt and braces’ policy.


#12

Right.Noted.

Thank you very much for your kind feedback.

Kind regards
AngryWarrior


#13

Although the FreePBX interface doesn’t support the kind of filtering by agent/DID/whatever, you can easily run a post monitoring scripts that could symbolically re-link the files more rationally for your use case into a directory structure that reflects such ‘use case’ then add a custom front end to allow logging in and browsing ‘allowed/filtered’ files. (The symbolic links add minimal load to your server.)


(Jared Busch) #14

As @dicko said, just buy a $5 instance on Vultr. It will more than handle your immediate needs.

It should likely handle your needs at 30 people also.

I have sites on that instance with ~ 200 extensions and an average concurrent call level of 15.

No recording though.


#15

Depending on your deployment, consider adding a swapfile to $5 DO or Vultr , if you are rsyncing lots of stuff, it has helped me reduce OOM events at 2.00am


#16

Thanks a lot for the suggestion about Vultr but we have already our own servers/VPS.

I guess the only way then is custom dev/coding to get that done. I was guessing that it would be the route. Thank you for confirming it. :smiley::+1:

Kind regards
AngryWarrior