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

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

What happens if you ignore Scrum components?

Today, agile software development is applied to the most of the projects and in case your team hasn’t used agile process frameworks yet, be ready that one day your client will come to you with an inspired expression on his face and say: “We must use agile!” And, for some...
READ ARTICLE

Top 10 Real Estate Mobile Apps That Are Not Property Listings

One of the top concerns real estate agencies have today is how to bring their businesses to the digital world. While website seems to be a must-have for any respectful company, many are still undetermined about the idea for real estate mobile application and limit themselves to the app with...
READ ARTICLE
top technologies in real estate

5 Cutting Edge Technologies That Will Transform Real Estate Business

New technologies strike like lightning.  The willingness to keep up with the new trends is no longer a prerogative of big companies, with ever more small businesses trying to bring technology to their business models. For real estate industry, this may seem like a challenge, as their workflow hasn't changed...
READ ARTICLE