Author: John
-

Fixing SIP header addresses – Contact headers
•
Part 3 of this series of articles focusses on the Contact header. In particular, I examine the use-cases where it is necessary to “fix” (or alter) a received Contact header. Contact headers work in close combination with Record-Route and Route headers in a mechanism known as loose routing. To get the most from this article some prior knowledge is required about loose routing, so if you are not already well acquainted with this subject please head…
-
Fixing SIP header addresses – Via headers
•
In part 2, Via headers are put under the microscope. I examine how the address in the Via header is set by each node in the path; how and why it may differ from the source address. I will look at the functions available in OpenSIPS to detect and handle situations where the address in the received Via differs from the source address of the request. I touch on the options available within OpenSIPS to select…
-

Fixing SIP header addresses – Introduction
•
The main theme I explore in these articles is when and how a SIP Proxy should alter (or “fix”) embedded sender address information – IP and port – in a SIP request that it has received. The headers that are most relevant here are Via, Contact and Record-Route
-

Contact and Record-Route headers explained
•
Diagnosing some problems in the world of VoIP requires close inspection of the SIP messages being exchanged, but there are many occasions where a good understanding of loose routing will be invaluable. The headers that underpin loose routing are Contact, Record-Route and Route. In this post, I explain how they work and provide some insight into the way they interact. Some Acronyms and terminology UAC UAS SIP Proxy URI * Sequential Request User Agent Client (for…
-
Latency caused by UDP fragmentation
•
While testing a WebRTC application recently, I noticed some unexpected delays in the execution of a series of lines in my OpenSIPS control script. For OpenSIPS to behave properly it is essential that the child threads don’t get blocked and that the lines in the script are executed at speed. Seeing a delay of several seconds during handling of a BYE request (i.e. hangup at one end terminating the call) was therefore quite concerning. Initially, I…
-
Using OpenSIPS in Docker
•
In 2019, I presented a paper at the 2019 OpenSIPS Summit entitled ‘Docker, Clustering, Scalability – A case study’ You can watch my presentation on YouTube:
-
WebRTC using OpenSIPS and RTPEngine
•
In this article you will find tips, pointers and code snippets to help you get started with WebRTC using OpenSIPS and RTPEngine. At the end I have provided some notes and URL links that may be useful to anyone wishing to learn more about the media handling. In the initialisation section of opensips.cfg A listen statement is required to make opensips accept websocket connections. The usual port is 443, but you can use a different port…
-
How to spot hacker INVITE requests
•
By inspecting log reports from a number of different SIP Proxy servers, it has been possible to find some common factors across the many hacking attempts that are made against SIP servers.. The information available from these reports gives some insight into the most common SIP requests being sent by hackers to detect and probe your VoIP servers. Here’s some common characteristics of malicious INVITE requests that have been seen recently on various servers. Based on…
-
Using the Clusterer Module for contact replication
•
Summary In this, the second part of a three-part article about the Clusterer Module, I explain how I got on when testing a pair of OpenSIPS Registrar Proxies configured as a highly available cluster. The design, which uses Pacemaker to assign a floating IP to the currently active server, is described in some detail in part 1 (see Scenario 2 for a complete description of the solution). My tests simulated a typical real-world scenario, using a…
