Many times, during discussion about various OpenSIPS based solutions, I noticed that people make a confusion when comes to the meaning of "load balancing". Whenever they talk about distributing SIP traffic between multiple destinations, the term of "load balancing" is abused in a very very generic way. Such a mis-usage of terms leads to mis-understandings … Continue reading Traffic balancing – load, weights, round robin ??
When building a large, highly-available, distributed VoIP platform, you definitely need to take into account geographically distributing you servers in different locations. And if you want them to be redundant and fail-over in case one of them goes down, you need to share a large amount of data between them. Users' location is a particular sensitive information that … Continue reading Distributed User Location replication using OpenSIPS
There is an increasing need for more complex SIP scenarios, even for the Class 4 Switches. Such scenarios exceed the capabilities of a liner processing - something more powerful and flexible is needed in turns of driving the SIP routing. The 2.1 OpenSIPS version brought a radical change in how the SIP traffic is handled - a … Continue reading Advanced SIP scenarios with Event-based-Routing
Great news for all users of the OpenSIPS "cachedb_mongodb" module! After four successful years since its initial release in Jan 2013, the driver will benefit from a complete revamp in the upcoming OpenSIPS 2.3, and will work on top of the latest libmongoc 1.6.0. The updated module will be compatible with all MongoDB 2.4+ servers. The main reasons … Continue reading How to Use the Enhanced MongoDB Module in OpenSIPS 2.3
We all experienced calls getting self disconnected after 5-10 seconds - usually disconnected by the callee side via a BYE request - but a BYE which was not triggered by the party behind the phone, but by the SIP stack/layer itself. This is one of the most common issues we get in SIP and one … Continue reading Troubleshooting missing ACK in SIP
Starting with OpenSIPS 2.2 the registered SIP contacts (stored the location table) have a new unique ID named contact ID. This new ID is contact specific (computed based on various contact elements) and it replaces the old opaque ID which was a simple DB auto-increment key. But why ? to increase the efficiency of the DB operations, by using a single value … Continue reading Migrating registrations to OpenSIPS 2.2
Running OpenSIPS with the right memory configuration is a very important task when developing and maintaining your VoIP service, because it has a direct effect over the scale of your platform, the customers you support, as well as the services you offer. Setting the limit to a low value might make OpenSIPS run out of memory during high volume … Continue reading Understanding and dimensioning memory in OpenSIPS
Call canceling may look like a trivial mechanism, but it plays an important role in complex scenarios like simultaneous ringing (parallel forking), call pickup, call redirect and many others. So, aside proper routing of CANCEL requests, reporting the right cancelling reason is equally important. How to properly handle CANCEL requests in OpenSIPS? According to RFC 3261, … Continue reading CANCEL request and Reason header
Offering protection and privacy to your SIP subscriber is something you must not overlook. The user passwords for SIP authentication are shared secrets that must be secured on the SIP platforms, in order to protect your subscriber against any data leaking. Usually, when you start building a platform, the subscriber passwords are kept in plain-text format … Continue reading How to avoid plaintext passwords ?