A Session Initiation Protocol (SIP) proxy is the central component of most VoIP and unified communications (UC) deployments. It routes signaling messages, enforces policies, and can provide loadbalancing, NAT traversal, and security services. Proper capacity planning is essential to guarantee call quality, low latency, and high availability. This page explains how to calculate the CPU, memory, storage, and network resources required for a SIP proxy based on realistic traffic patterns.
Every calculation begins with a few core traffic figures:
The CPU load is driven primarily by the number of SIP messages that need to be parsed, processed, and forwarded. A common approach is to derive the Message Processing Cost (MPC) in CPU cycles per message.
PMR = (CSR MR) + (CC / ACD MR)The first term covers new call setups; the second term represents ongoing traffic from existing calls (e.g., keepalives, reINVITEs).
CyclesPerSec = PMR MPC
RequiredCores = (CyclesPerSec / 2000000000) SafetyFactor
Example: A call centre expects a peak CSR of 120CPS, an ACD of 180seconds, and an MR of 10 messages per call. Using MPC=3,500 cycles/message and a safety factor of 1.7:
PMR = (120 10) + ( (120 180) / 180 10 ) = 1,200 + 1,200 = 2,400 msgs/sCyclesPerSec = 2,400 3,500 = 8,400,000 cycles/sRequiredCores = (8.4M / 2B) 1.7 0.0071 cores
Even with a generous safety factor the load is low, suggesting that a single lowpower virtual CPU can handle the traffic. However, realworld deployments also need to consider cryptographic work, NAT handling, and background tasks, so a 1core allocation is a realistic baseline.
Memory consumption consists of three major parts:
Most SIP proxies allocate between 200bytes and 1KB per active dialog. For a conservative estimate, use 800bytes.
MemoryForCalls = CC 800bytes
Configuration, modules, and OS footprint typically require 128MB to 256MB. Add an additional 10% headroom for caching.
With 2,500 concurrent calls:
MemoryForCalls = 2,500 800B = 2,000,000B 1.9MBStaticMemory 200MBTotal 202MB Round up to 256MB for safety.
The SIP signaling itself is lightweight (usually < 1KB per message). The dominant factor is the media stream (RTP/RTCP) that travels through the proxy if you are using a backtoback user agent (B2BUA) configuration or a media relay.
SignalingBps = PMR AverageMessageSize
Assuming 1KB per SIP message and a PMR of 2,400 msgs/s:
SignalingBps = 2,400 1,024 2.45Mbps
For a typical G.711 call (64kbps) with RTCP overhead (~5kbps), each call consumes ~69kbps. Multiply by the concurrent call count.
MediaBps = CC 69kbps
With 2,500 concurrent calls:
MediaBps = 2,500 69kbps 172.5Mbps
Include a 20% safety margin for jitter buffers and occasional higherbitrate codecs (e.g., Opus). The total network requirement would be roughly 210Mbps, comfortably handled by a 1GbE interface.
Even though a SIP proxy does not store media, it may need persistent storage for:
A rough estimate for CDR storage over 30days:
DailyCalls = CSR 3600s/h 24h = 120 86,400 10.4M callsCDRSize = 10.4M 200B 2GB per month
Adding logs (5GB/month) and database files (1GB), a 20GB SSD gives ample headroom while providing fast write performance.
| Parameter | Value (example) | Result |
|---|---|---|
| Concurrent Calls (CC) | 2,500 | |
| Call Setup Rate (CSR) | 120 CPS | |
| Average Call Duration (ACD) | 180s | |
| Message Ratio (MR) | 10 msgs/call | |
| Message Processing Cost (MPC) | 3,500 cycles/msg (UDP) | |
| Peak Message Rate (PMR) | 2,400 msgs/s | Calculated |
| CPU Cores Needed | Safety factor 1.7 | 0.01 allocate 1 core |
| Memory for Calls | 800B per call | 2MB |
| Total RAM | + 200MB OS/Cache | 256MB (rounded) |
| Signaling Bandwidth | 1KB/message | 2.5Mbps |
| Media Bandwidth (G.711) | 69kbps/call | 172Mbps |
| Total Network (incl. margin) | +20% | 210Mbps |
| Storage (30days CDR + logs) | 7GB | Allocate 20GB SSD |