Author: John

  • SIP transport protocol transcoding in OpenSIPS

    SIP transport protocol transcoding in OpenSIPS

    Introduction This is the final article in my series about fixing SIP header addresses. It broadly overlaps with the theme of the earlier articles. As a VoIP solutions designer, you may want your proxy server to deliberately transcode between different transport protocols. For example, WebRTC to TCP or TLS to UDP. This is possible with OpenSIPS, but getting every detail correct across a wide range of use-cases is quite difficult. It requires attention to detail in…

    Read more..

  • Fixing SIP header addresses – Contact headers

    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…

    Read more..

  • 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…

    Read more..

  • Fixing SIP header addresses – Introduction

    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

    Read more..

  • Contact and Record-Route headers explained

    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…

    Read more..

  • 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…

    Read more..

  • 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:

    Read more..

  • 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…

    Read more..

  • 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…

    Read more..

  • 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…

    Read more..

Protected By
Shield Security