Dear all,
I am experiencing an issue with a VoIP call center setup. I have a FreePBX server with ample resources, and CPU/RAM usage never exceeds 20%. This FreePBX server is connected to a VoIP provider via a trunk, which offers me an Italian number with virtually unlimited channels. In theory, I can receive as many concurrent calls as needed, though I estimate the practical limit to be around 300.
My ring strategy is very basic: all extensions ring simultaneously through a ring group when a call arrives. If everyone is busy or no one answers, the call is routed to a queue, which continues ringing all extensions simultaneously while playing a waiting message to the caller.
I have around 40 extensions on the same network as the FreePBX server, consisting of older Fanvil X4G phones with limited memory. The issue arises when there is high incoming call traffic, let’s say when 30 extensions are talking and 20 client are in the queue. At this point, some phones start lagging, likely due to memory exhaustion. Symptoms include unresponsiveness, frozen displays, and, in some cases, the need for a manual reboot. Occasionally, the phones recover on their own.
I suspect this occurs because each SIP INVITE puts stress on the phones, even if they are already busy or just ringing. FreePBX itself remains stable, so the issue seems to be related to the memory limitations of the extensions.
Reducing the max callers parameter in the queue is not fixing the issue, I assume this does not have an impact since incoming calls do not stop due to the nature of the work, so no matter how much I reduce the queue, calls will keep coming in.
Do you have any suggestions to mitigate this problem without replacing the phones with more powerful models? Could I optimize network traffic in some way? Since company policy requires all phones to ring simultaneously, would it be possible to use multicast for the ringing strategy?
Thank you.