Server Capability

Hi,

I have a customer who need a server to handle 2000 concurrent calls, I am actually not sure what server configuration should i suggest him.

Please guide me how I can calculate system utilization of calls and what configuration should i suggest him for that.

Thank you

Sohaib Khan

Benchmark it.

The best you will get is actual configurations that work with the particular usage scenarios of the person reporting. You’ve told us nothing about the factors that could have order of magnitude effects on the system load, like transcoiding, conferencing, channel driver types, etc.

Whilst my only experience is with, small, development rigs, I’ve never seen anyone attempt to give a definitive answer to such questions.

However, 2,000 Erlangs is a heavy load, and you may need to use multiple machines, with load balancing proxies.

Remember that each call requires a process and about half a dozen file descriptors.

Also, although I’m not sure if it is still true, the code that handles parking uses the select system call, which is limited to 1024 file descriptors, so you should check whether than has changed before considering parking calls.

thanks david for you response.

I have already offered him multiple machine scenario, but he insist to give one machine solution, and then he will buy two same machine for redundancy.
We will be using SIP channels with s729 codec. This server will only be used as a Gateway, like call will come in and then it will be sent Telecom Operator’s server. Like a VoIP Termination service.

I know that select system call, we need to increase file limit but the thing is which server can handle such traffic with making any issue like hanging channels, voice distortion.

Or if you can just tel me that one Asterisk (as a soft PBX), how much it can handle calls? is there any limit in Asterisk itself?

Sohaib Khan

I’m not aware of hard limits in Asterisk itself, other than those due to OS resource limits.

G.729 is an expensive codec, so load will depend on whether there is any transcoding (including playing tones, conferencing, monitoring, etc.). Also, for any codec, direct media use can help.

There will be no conferencing, or IVR, just call will land to the server it will sent it to operator end. VoIP Gateway.

What you recommend for such scenario? i mean how many call should i use for one server and how many server should i use for 2000 calls. (leave the customer’s demand for now) just a recommendation for such traffic.

Sohaib Khan

Why not use proper SIP proxy like Kamailio or OpenSIPS for your requirements?
They handle much more concurrent calls than Asterisk does.

–Satish Barot

I need to setup billing server as well along with pbx. is there any billing software available for kamlio? like A2billing?

I think this project is far way too complex for a person without previous experience…And full of variables…
You should have deep knowledge about Sip,Voip,proxy,codec,Asterisk,Kamailio…etc etc…
Sorry But this is what i think…

3 Likes

This is the reason I came here :slight_smile:
I actually don’t want to propose my client anything which will not work. that is why i am asking to Geeks like you :slight_smile:

The scenario is, a service (only work as a Voip gateway, no IVR, no extension dialing) just call comes in and sent it to operator end (like termination). the call traffic is around 2000 concurrent calls. So what you suggest fot such type of service? I need billing service as well, which will be deployed on a separate server (like A2billing).

Any suggestion?

Sohaib Khan

You can use A2Billing in a distribuited system:

  • one server with Mysql/MariaDB
  • one server with Web Server for Adminitration and customer pages
  • one server with OpenSIPs or Kamailio for load balancing calls
  • N Asterisk servers to process 2000 concurrent calls

you can look at https://www.pyfreebilling.com/faqs/ too

1000 concurrent calls with a server

Regards

Thank @annusfictus

One thing i don’t understand, why use openSIPs or Kamalio? i mean how it works with asterisk as a load balancer?

OpenSIPs use load_balancer module to distribute calls between two o more
asterisk PBX.

Take a look at:

http://www.opensips.org/html/docs/modules/2.2.x/load_balancer.html

Regards

The thing about proxies is that they only do SIP, and they only do simple operations, so that can be more efficient than a PBX, particularly if they redirect the media so that it always bypasses them.

The suggestion someone made about just using a proxy was based on the fact that you hadn’t make it clear that you really needed the full power of a PBX.

Thank you @david551 let me look at opensip / kamalio as load balancing with asterisk.

thank you all for you suggestions . :slight_smile:

Sohaib Khan

You have to use a sip proxy to handle authentification and balancing to rtp ptoxy. The 2.0 version of pyfreebilling works like that : a kamailio in front of freeswitch farm.