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

2012-12-27 by Marina Astapchik

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

RELATED ARTICLES

Top Questions and Answers about CRM

Growing businesses are looking for a better way to manage customer relations. Understanding that the idea to store their information in note cards or Google documents is a bit old-fashioned, they are wondering, what is CRM, how it works and how it can help their businesses. These questions are hardly...
READ ARTICLE
How to start software development project

The Ultimate Guide to Hiring Developers for Your Project

Sometimes choosing a developer is as simple as asking a fellow business whom they use in their projects. However, other times you have to go through selection routines. Your main objective must be to create your own list of suitable developers, which conforms with your needs, and then reduce this...
READ ARTICLE

QR Code Solution for Mobile Devices

Business Needs High level of competition in business creates needs to provide as much services as possible for less money. Companies try to inform clients as much as possible about the opportunities and competitive advantages. Large spaces of printed surfaces are used to show the content marketing information. The tendency…

READ ARTICLE
Node.js: pros and cons

Bringing Node.js into your project: pros and cons

Introduction “Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.” This is what official Node.js website tells us, and this...
READ ARTICLE
WHO WE ARE

ABOUT ELINEXT

Elinext is a custom software development and consulting company focusing on web, mobile, desktop and embedded software development, QA and testing. Since 1997, we have been bringing digital transformation to mid-sized and large enterprises in Banking and Finance, Insurance, Telecommunications, Healthcare and Retail. Our key domains include enterprise software, e-commerce, BI and Big Data, e-learning and IoT.