What is OpenSIPS?
A lot of IP telephone solutions are built with open source applications. The nature of open source projects allows for continuous development and new features, without a huge additional investment of cash. This is the reason it’s being used across multiple leading providers today.
At the core, OpenSIPS is a free open source SIP proxy/server for any voice, video, IM, online games, or any other SIP extensions. It has a very large selection of features and uses, which we profile below.
Below we take look at what OpenSIPS is, how it started, some common features, and what kind of situations and circumstances it’s best applied. If you’ve been using a leading VoIP provider, then chances are you’ve been using OpenSIPS or another similar provider.
What is OpenSIPS?
OpenSIPS is an open source SIP proxy that runs on Linux. SIP is an application protocol that allows devices to communicate with one another. This allows you to easily set up real-time audio and video sessions between two devices, like phones, or other devices. It doesn’t actually carry the data, but instead is a signaling protocol that sets up the two endpoints. It’s quite a simple solution that packs a lot of features, which is why it’s become so widespread.
OpenSIPS is a large-scale development project that has tons of useful features and is very high performing. In recent years it’s become quite feature-heavy and offers a very robust solution.
If you’re looking for more information about the documentation of the project, you can find that here.
History of OpenSIPS
OpenSIPS began back in 2001 with the start of the SIP Express Router. This original company was bought and moved in 2004. However, that original company seemed to stall, so some of the team from this original project started the OpenSER project which continued to advance where the original project stopped.
In 2008, the project split and went in two different directions, Kamailio and OpenSIPS, which leads us to present day. Overall, it’s still not as well known as Asterisk but is still used by a lot of leading companies in the VoIP space.
What Does OpenSIPS Do?
Any SIP proxy server will receive SIP requests, classify them and check for errors, then transit that original request to the desired destination. Beyond simply receiving and directing incoming requests it can also modify requests, and intercept unwanted requests. OpenSIPS can also direct an incoming request to multiple different destinations, either at a delayed or instantaneous time interval.
It also has several other features that can be activated via certain modules. Some of the other common uses for OpenSIPS are highlighted below.
Can Act as a Registrar Server
OpenSIPS can also be used as a registrar server. It can accept any incoming register requests that are sent by any remote device. It can use these requests to update the location database and any existing contact details.
It stores this information and can look up any relevant location details whenever it receives a request from a registered device.
Typically Acts as a Background Service
OpenSIPS will typically run in the background and monitor any incoming SIP requests. Exactly how it interprets, reads, and directs requests will be determined by its configuration script. When OpenSIPS is installed it comes with a default script file, however, you can edit this file and fully customize how it handles requests.
Since its control script can be so heavily modified it’s incredibly flexible. It’s also equipped with hundreds of core functions and variables, so you can accomplish a wide variety of SIP related tasks.
Can Link Into MySQL Databases
OpenSIPS is typically linked to a MySQL database. This allows the OpenSIPS script to reference any existing data or information stored in the database. This can make it so when any call is transferred it can arrive equipped with any pre-existing information. So, instead of receiving just a phone number you can have access to things like your users account information, location, contact information, and more.
As you can see, OpenSIPS is an incredibly versatile SIP engine. Its widespread use can attest to its flexibility and power.
Common Features of OpenSIPS
OpenSIPS has continually added to its list of features over time. It originally began with an emphasis on performance, but today it’s continuous development has added a wide range of modules and features. This has increased the flexibility of which this tool can be used and has also grown in its application.
Below we explore a few of the main modules of OpenSIPS. Note that not every module is highlighted below, just enough to give you a taste of the power of this program.
This module allows OpenSIPS to both retrieve data and write into an existing MySQL database. It can be placed on the same server as the database, or via network access.
This module can create specific groups for registered devices. It can create constraints for each group and that can specify the services each group can access.
This is one of the core modules that need to be in place for OpenSIPS to function. It essentially opens it up for call proxying and enables other features like, limiting simultaneous calls, call tracking options, categorizing calls, call duration, and much more.
This allows for table create for device registration based upon specific location data.
This creates an easy to use web interface that can be used to view any existing data tables and call information.
Call Data Records
This module will show any related call information like, time and date of the call, the call number, and any other relevant call information that needs to be tracked.
This will help to balance loads between different calls and distribute them effectively. You can even add the option to ping a server beforehand to test for resource availability.
This is an advanced module that can help to handle both inbound and outbound calls. It can control the direction of calls based upon data variables like time, caller groups, the priority of the call, and much more. This is a must have for any robust call processing and forwarding system.
Of course, the modules above aren’t the only ones available. You can explore the entire list of OpenSIPS module’s here.
Who Uses OpenSIPS?
OpenSIPS is a great choice for any existing SIPS scenario. Some of its most common uses are:
- Offering flexible routing and integration, along with custom routing logics, and the ability to interface with several existing APIs
- A very high throughput comprised of thousands of CPS, which allows for thousands of simultaneous calls
- The ability to build applications. It contains over 120 different modules for SIP handling, routing logics, and backend operations
OpenSIPS is an incredibly versatile program that’s used by a ton of leading VoIP and calling center software providers. Its open source nature makes it free to use and modify as you see fit. Expect the feature set of OpenSIPS to grow into the future and continue to provide value to leading VoIP providers everywhere.