Which one to choose for Scalable VoIP Deployment? OpenSIPS or FreeSWITCH or Both
Setting up just one media server such as FreeSWITCH is not much difficult particularly if you don't have high volume incoming and outgoing calls. But just one server is not enough once incoming and outgoing call volume touches four figures (over 1000). So what we do? Should we move to another media server? What if the other media server also has the same bottleneck? Can OpenSIPS solve this issue? Is OpenSIPS the replacement of FreeSWITCH? In this article, we try to answer similar questions.
First thing is to understand what FreeSWTICH and OpenSIPS are. Then we will see what problems they solve.
What is OpenSIPS
OpenSIPS is an extremely stable, flexible SIP proxy that allows to set up a load balanced SIP, solves advanced NAT scenarios, deals with SIP signalling and registrations. OpenSIPS is used particularly for handling large volumes requests and responses as in case of SIP signals and registrations. It actually can handle all types of requests and responses. This also makes it useful to translate between two incompatible versions of SIP servers.
What is FreeSWITCH
FreeSWITCH, on the other hand, is a media server by design to offer services such as voice call, fax, voicemail, conferencing, text-to-speech and others. FreeSWITCH is very stable and popular soft switch that allows to handle thousands of simultaneous phone calls with good call quality.
Clearly no comparison. So what's the fuss is all about!
This clearly suggests that OpenSIPS and FreeSWITCH actually serve two different purposes. OpenSIPS can act as a load balancer for high volume signals. It can direct traffic along the path on the network. You can view it as a traffic cop on the highway that directs traffic to different paths from one side of the road to the other side of the road. In this scenario, you can view FreeSWITCH as a stadium or shopping mall where that traffic is headed to. This means that OpenSIPS can direct incoming traffic to different FreeSWITCH nodes. OpenSIPS also does really good job with NAT traversal which is easy to configure and allows optimization of the media between the endpoints.
This doesn’t make any sense comparing or choosing between the two. Focus of the FreeSWITCH is to provide a lot of communications features such as voice, fax, voicemail, conferencing, IVR and TTS while OpenSIPS has a simple architecture that provides better performance and stability.
What we understand
OpenSIPS handles the simultaneous SIP registrations, new calls, and call hangups at a time. Where as FreeSWITCH only handles simultaneous calls that are in progress at a given time. As soon as the call ends, FreeSWITCH removes its thread from memory for that call.
When to use whom
In situations where PBX functionality is needed and volume of incoming calls is high, it is better to deploy a cluster of FreeSWITCH that is load balanced by OpenSIPS. For very large scale deployments, assign more and more responsibilities to OpenSIPS with its helper modules such as billing, dialplan translations, and SIP registrations. Involve FreeSWITCH only for its unified communications features.