Introduction into SIP Telephony. Comparison of Libraries for SIP VOIP Development

Marina Astapchik
Digital Content Manager
December 27, 2012

SIP technology overview

The Session Initiation Protocol (SIP) is an IETF-defined signaling protocol widely used for controlling communication sessions such as voice and video calls over Internet Protocol (IP).This protocol can be used for creating, modifying and terminating two-party (unicast) or multiparty (multicast) sessions. Sessions may consist of one or several media streams. Other SIP applications include video conferencing, streaming multimedia distribution, instant messaging, presence information, file transfer and online games.

The SIP protocol is an Application Layer protocol designed to be independent of the underlying Transport Layer. It can run on Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or Stream Control Transmission Protocol (SCTP). It is a text-based protocol, incorporating many elements of the Hypertext Transfer Protocol (HTTP) and the Simple Mail Transfer Protocol (SMTP).

Supported platforms description

Development of both client and server SIP applications is possible under different operating systems, using different programming languages. In this article we will mostly compare libraries for desktop server part development under the Windows operating system using .NET, Java and Python. We will also briefly go over the possibilities of *NIX and mobile (WM7, iOS and Android) platforms.

Comparison matrices


Table 1. Comparison of .NET C# SIP libraries


Table 2. Comparison of Java libraries


Table 3. Comparison of Python libraries

Conclusion

Each language has platform-specific libraries, but it is PJSIP which is presented in all three matrices. Due to native C++ implantation and a wide range of wrappers available, PJSIP could be used on different mobile and desktop platforms. Together with good functionality, documentation and community support, PJSIP appears to be the best choice. So we recommend it both for commercial or open source development. A detailed description of its architecture and usage is given in a separate blog article.

Industries and Technology Areas:

Industries: telecommunications

Technology Areas: SIP/VOIP telephony, software development, Windows, Linux, Java, .NET, Python, iOS, Android

LATEST ARTICLES

How Serverless Architectures Make Chatbot Development Profitable

Over past decades, a lot of IT technologies have been focused on innovations that have nothing to do with infrastructure, servers and all physical machines that your code runs on. Building data centres with a large number of servers requires tons of physical resources and is associated with large energy...
READ ARTICLE

Modular Web Design – The Way Modern Websites Are Built

Introduction  Web content management systems, such as Wordpress, or Drupal, don’t aim for controlling your content. They control web pages. In other words, they are ”template management systems” used primarily (and in most cases solely) for web page management. Content, in its turn, comes in various forms: this can be...
READ ARTICLE

A Comprehensive Look at Post-Coronavirus Business Landscape: Healthcare

The COVID-19 pandemic has shed a light on the heroism and fortitude of healthcare workers around the world.  It has also highlighted the importance of having the right technology to reduce the strain on those frontline workers and support them in their day-to-day operations, regardless of the pandemic presence or...
READ ARTICLE