OpenSIPS Security Audit, fully disclosed

If almost one year ago we were releasing the first results of the security audit performed by of Enable Security over the OpenSIPS 3.2 code, now is the right time for the full disclosure. What was missing? As per the initial post, we hold back all the information about how to reproduce the crashes. Why? … Continue reading OpenSIPS Security Audit, fully disclosed

How To Generate Self-Signed STIR/SHAKEN Certificates

After having received some positive feedback on our presentation on the topic at hand at ClueCon '22, let's go through a more detailed run-down of all steps required, from a cryptographic point of view, in order to first become a fictive STIR/SHAKEN CA (Certification Authority), then to begin issuing signed certificates for various (also fictive) … Continue reading How To Generate Self-Signed STIR/SHAKEN Certificates

Using the Diameter Client Capability of OpenSIPS 3.3

In the previous iteration, OpenSIPS 3.2 introduced a first version of the support for Diameter protocol peering by leveraging the freeDiameter project and its excellent C libraries. Building on top of this, OpenSIPS 3.3 now offers a way of building and sending arbitrary Diameter protocol requests, from the opensips.cfg script. This brief post will teach … Continue reading Using the Diameter Client Capability of OpenSIPS 3.3

Fine-Grained TCP Configuration Using the “tcp_mgm” Module

OpenSIPS 3.3 introduces a new module which offers full control over the configuration of individual TCP connections. From filtering by the employed TCP-based protocol (e.g. BIN, TLS, MSRP, SMPP, etc.), all the way down to specific combinations of remote and local IPv4 or IPv6 addresses, OpenSIPS platform developers now have the ability to cherry-pick and … Continue reading Fine-Grained TCP Configuration Using the “tcp_mgm” Module

Managing RCS Capabilities with OpenSIPS

At its core, RCS (Rich Communication Services) is a suite of specifications from OMA[1] and GSMA[2] aimed at replacing SMS messages with a richer messaging system equipped with added services such as group chat, message read receipts, file and file thumbnail transfers, download pausing and resuming, geo-location push, to name a few. But what extensions … Continue reading Managing RCS Capabilities with OpenSIPS

Running MI commands from script in OpenSIPS 3.2

During this year's annually OpenSIPS Feature Survey, the poll results for the new OpenSIPS 3.2 reflected an emergent need for people to be able to run MI alike commands directly from the script. Initially, we were a bit reluctant from developing this feature due to the fact that (historically speaking), OpenSIPS's Management Interface has been … Continue reading Running MI commands from script in OpenSIPS 3.2

Getting Started With Diameter In OpenSIPS 3.2

This blog post will briefly talk about how RADIUS and Diameter work, how we managed to incorporate Diameter into OpenSIPS 3.2 and what we have built on top of it so far. Short Protocol Intro The RADIUS spec first appeared in 1997 and was revised in 2000. Its purpose is to offer Authentication (Are the … Continue reading Getting Started With Diameter In OpenSIPS 3.2

Media high availability/re-anchoring using OpenSIPS 3.2

Using a media relay server (such as RTPProxy, RTPEngine or MediaProxy) in your VoIP system is a rather common requirement due to various reasons: NATted clients media handling, legal compliance (recording) requirements or for offering enhanced services, etc. Thus, in order to provide high availability for your services, you also need to consider it for … Continue reading Media high availability/re-anchoring using OpenSIPS 3.2

Monitoring OpenSIPS using Prometheus and Grafana

Monitoring real time statistics is a great tool to assess the performance of your services, as well as for detecting, and possibly preventing, unfortunate events. And visualizing the monitored statistics in a graph or chart can definitely improve your DevOps team experience, as well as reduce the troubleshooting time of possible failure events. In a … Continue reading Monitoring OpenSIPS using Prometheus and Grafana