Advanced SIP scenarios with Event-based-Routing

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

How to Use the Enhanced MongoDB Module in OpenSIPS 2.3

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

Troubleshooting missing ACK in SIP

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

Migrating registrations to OpenSIPS 2.2

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

Understanding and dimensioning memory in OpenSIPS

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

CANCEL request and Reason header

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

How to avoid plaintext passwords ?

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 ?