A Complete Guide on OpenSIPs

Complete Guide on OpenSIPs
Spread the love

Building robust IP telephony solutions requires strong infrastructure. OpenSIPS is one such open-source platform that is widely used by telecommunication service providers. Though not as popular as Asterisk, OpenSIPs solution development is widely recognized as a core part of telecom infrastructure given its capacity, robustness, and speed.

In this post:

  • What is OpenSIPS
  • OpenSIPS history
  • OpenSIPS features
  • OpenSIPS benefits
  • OpenSIPS function

Understanding OpenSIPS

In layman’s terms, OpenSIPS (Open SIP Server) is an open-source platform for telecommunication software building. All the calls which you make from point A to point B go through a server and one of the most used servers is OpenSIP or Kamailio. We will come to Kamailio later. However, to understand OpenSIPS we will first need to understand SIP.

SIP: can be understood as a signaling protocol for IP-based telephony applications and a control layer for communications like the establishment and release of a voice call. SIP does more than connect agents to clients, it enables users to manage and modulate every call that enters their system and is content-agnostic. Though designed for voice communication, SIP is now also used for establishing sessions for video conferencing, instant messaging, SMS, file transfers, and more.

OpenSIPs: A mature open source from a SIP server, OpenSIPS includes application-level functionalities. Today OpenSIPS is one of the core components of any SIP-based VoIP solution. It has a flexible and customizable routing engine. OpenSIPS solutions development unifies voice, video, IM, and presence services in an efficient manner, given its scalable design. OpenSIPs software development brings to the table reliable, high-performance, and one of the fastest SIP servers. It is a suitable development solution for both enterprise and carrier-grade class communication solutions.

Note: OpenSIPS is available for free as downloadable source code at www.opensips.org and is licensed under the GNU General Public License (GPL). 

OpenSIPS History

2001: The OpenSIPS project took off as an SER (SIP Express Router)

2004: The copyrights and team were moved to iptel.org

2005: TEKELEC took the ownership rights of the iptel SER project. The iptel SER project website very much exists till today, however, the feature set on the website is now outdated. A few members of the original core SER development team set up the OpenSER project picking up from where SER was at that time. OpenSER developers made significant underlying structural improvements to enable better performance and easy ongoing development.

2008: Some irreconcilable differences within the OpenSER development team led to the split of the company into two – Kamailio and OpenSIPS

OpenSIPS: Features

SER and OpenSER originally had a very limited feature set. Though these features were adequate and competent, their scope was very limited. Initially, the focus was on performance rather than a wide range of features. The OpenSIPS software development has come a long way since and its new avatar comes packed with a wide range of optional modules. The extensive range of features available through the optional modules has made OpenSIPS a strong contender as an alternative to the SBCs (Session Border Controllers).

Today, OpenSIPS offers a plethora of interesting features which, not to mention are important too for building a robust communication system. I have classified the features as basic required ‘core modules’, popular additional modules, and advanced complex modules.

Basic “core modules”

  • DB_MySQL: Enables OpenSIPS to retrieve data from a MySQL database and also write records to the database
  • Dialog: A prerequisite for many other modules, it makes OpenSIP state aware of proxying calls
  • Group: Enables allocation of groups off registered devices
  • Permissions: Categorizes requests based on source IP address
  • Domain: Matches user device and SIP requests to predefined SIP domains
  • Usrloc and Registrar: Core component for device registration
  • Textops: Enables basic string manipulation, testing, search, replacement within text and variables
  • TM: Handles SIP requests
  • URI: Checks whether a device is correctly authenticated or not
  • SL: Send replies to SIP requests
  • RR: Add Record-Route headers

Popular additional modules/features

  • Control Panel
  • Call data records
  • SIP Trace
  • Alias DB
  • Pike
  • Load balancer
  • Dispatcher
  • Options
  • Parallel forking
  • SST module
  • ENUM module
  • NAT helper
  • Media proxy

Advanced features

  • Dynamic routing
  • Presence
  • Exec
  • SNMP stats
  • Radius

OpenSIP: Benefits

  • Proven Performance

Over the years several tests have been conducted. The outcome is a rich repository of databases to prove the performance of OpenSIPS. The available data has successfully established OpenSIPS as a reliable, high-performance, and one of the fastest SIP proxies available in the market.

  • Easy to deploy

OpenSIP is fairly easy to deploy, thanks to the OpenSIPS manual which has all the steps needed for installation, configuration, and OpenSIPS scripting mentioned in detail. There also exists a recorded webinar series on the OpenSIPS website. These webinars cover everything from basics like compiling and installing OpenSIPS, and also advanced topics like SIP routing and OpenSIPS scripting.

  • Flexibility

OpenSIP has a flexible custom scripting language with similar syntax and modular architecture such as the C language. It can therefore be easily used in a myriad of scenarios. Custom OpenSIP development is as easy as plug and play. The developer plugs in the required modules for the desired functionalities and builds on top of it using OpenSIPS’s scripting language.

  • Monitor and Control

The MI interface, Event Interface, and Statistics interface make monitoring and controlling OpenSIPS software development possible. MI interface when combined with Statistics Interface, enables an administrator to pull various live stats such as consumed memory, UDP queue size, overall load, number of ongoing calls, and more. This way the administrator is able to monitor the status of an OpenSIPS box. The Event Interface enables OpenSIPS to notify the administrator of events that get triggered on the proxy side that might impact the communication performance. These events could be slow DB access, gateways down, full- memory etc. These notifications enable the administrator to take prompt action and ensure everything is functioning smoothly.

  • WEB Interface

OpenSIPS comes with a Web Control Panel Application. The interface displays important monitoring statistics and is also used for provisioning OpenSIPS.

Uses of OpenSIP

OpenSIP is a multi-purpose, multi-functional signaling SIP server that can be used as a SIP switch or router, application server, load balancer, session border controller, and a lot more. Most telecom carriers and ITSPs now use OpenSIP for effective application building. However, for a developer to install and run OpenSIPS will require basic Linux knowledge. Being a SIP proxy basic SIP knowledge is also good to have in order to deploy OpenSIPS in some more advanced scenarios. Since we are talking about apps and software here, it goes without saying that some basic programming logic knowledge is desirable too.

OpenSIPS is much more than a basic SIP proxy server. It is scalable, flexible, and is loaded with features for effective app building. The full potential of OpenSIPS still remains largely untapped. One can expect many exciting developments in this space. Do let me know your thoughts.