The Module Function Interface Rework in OpenSIPS 3.0

As you begin to write or migrate to OpenSIPS 3.x configuration files, you will notice some major changes in the way module functions are invoked. These changes are part of an ongoing effort to improve the experience of writing opensips.cfg code, and in this article we're going to take a closer look at how this … Continue reading The Module Function Interface Rework in OpenSIPS 3.0

Containing Memory-Related Issues in an Easy Way with OpenSIPS 3.0

OpenSIPS 3.0 includes major changes to the way in which the available memory allocators can be embedded into a build, as well as to the manner in which they can be selected at runtime. The end goal of this rework is to simplify and speed up many existing workflows (debugging, fine tuning, development) by avoiding … Continue reading Containing Memory-Related Issues in an Easy Way with OpenSIPS 3.0

Generic Preprocessor Support in OpenSIPS 3.0

Starting with version 3.0, OpenSIPS will offer script writers full support for piping the opensips.cfg file (including any other files imported by it) to a generic preprocessing command. What's So New About It? Until now, the core problem of templating opensips.cfg was solved using fully externalized solutions such as GNU m4, which grabbed an input configuration file … Continue reading Generic Preprocessor Support in OpenSIPS 3.0

A Better Way of Saying “Thank You!” to OpenSIPS Contributors

As time goes by, code, pull requests and patches for an open-source project will naturally keep arriving in a steady stream.  Depending on the volume of these contributions, some projects end up doing just well with a single maintainer, while others require an entire team of maintainers, each specializing in one of the project's major … Continue reading A Better Way of Saying “Thank You!” to OpenSIPS Contributors

How To Script Advanced FreeSWITCH Integrations with OpenSIPS 2.4

Happy New Year 2018! In this follow-up article, we're going to take a look at a major feature that Santa merged into the OpenSIPS development branch, just about a couple of days before Christmas: a series of advanced FreeSWITCH integration capabilities. It is now possible to fully control FreeSWITCH within the OpenSIPS script. This is … Continue reading How To Script Advanced FreeSWITCH Integrations with OpenSIPS 2.4

Deep Dive into the OpenSIPS Statistics Support

Whether you are a seasoned OpenSIPS administrator or you are still trying to figure out why your ACKs are looping all over your network, one thing is for certain: all of us will sooner or later need to have OpenSIPS produce some numbers which will answer questions such as: how many minutes has my OpenSIPS … Continue reading Deep Dive into the OpenSIPS Statistics Support

How To Use Database “Partitions” in OpenSIPS

Intro Inside the OpenSIPS bubble, the notion of a "partition" was first introduced in OpenSIPS 2.1, roughly around March 2015. But what exactly are they and how do we use them? In short, they allow a single OpenSIPS module to be able to work with data from multiple database sources. In other words, in OpenSIPS terminology, a … Continue reading How To Use Database “Partitions” in OpenSIPS

Hunting Down Complex OpenSIPS Bugs in Production Environments

Three key principles have guided the development of OpenSIPS since its very beginnings: performance, flexibility and modularity. The resulting codebase and feature set all reflect this statement: multiple process management, shared memory, async I/O, module APIs, optimized code, etc. While these are trivial to use and benefit from once everything is nice and working, not … Continue reading Hunting Down Complex OpenSIPS Bugs in Production Environments