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

Marina Astapchik
IT Trends Research Specialist
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


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


8 Characteristics Of The Next-Generation Financial Services Websites

When it comes to the face of business, it is important to change it over the time to keep up with the pace of innovation. Digital revolution sets its own rules on the way business is transformed. Brick-and-mortar shops are empowered with online versions, face-to-face payments – with one-click purchases,...

How Can AI Change The State of Cybersecurity

According to Wikipedia, financial crimes are “crimes against property, involving the unlawful conversion of the ownership of property (belonging to one person) to one's own personal use and benefit”. In the Internet age, financial crimes are often associated with cybercrime. Globally, this type of criminal activity is regarded as a...

Smart vs. Ricardian Contracts: What’s the Difference?

We continue to explore the world of the blockchain, and one of the conspicuous notions in this field is called “a smart contract”. In this article, we’re going to find out what the difference between a smart and a Ricardian contract is. However, before diving into the details, let’s answer...
insurance innovation

Insurance And Innovation: How Technology Disrupts Traditional Business

“The threat that inspires” – here’s how insurtech is referred to in media. Indeed, the innovation that comes to the industry has the disruptive nature. Well, it’s very early days for insurtech startups to transform the market but high customer expectations and rough competition encourage industry leaders to weigh the...