Abstract:
The Session Initiation Protocol (SIP), is a signaling communication protocol. It is generally used for controlling multimedia communication sessions such as voice and video calls over Internet Protocol (IP) networks. It defines the messages sent between the peers which govern establishment, termination and other essential elements of a call. SIP can also be used for creating, modifying and terminating two-party (unicast) or multiparty (multicast) sessions consisting of one or several media streams. There are many open source implementations are available such as OpenSIPS (Open SIP Server), iDoubs, linPhone, boghe, etc. These SIP clients are implemented as open source and works like a SIP proxy/router as it includes application-level functionalities. OpenSIPS, as a SIP server, is the core component of any SIP-based VoIP solution. As a part of this project, we implemented the SIP protocol and build its clients for most popular mobile platforms such as iPhone, Android, Windows. The project implements two main functional requirements: (1) Core features, and (2) Extended features. The core features are exchange of messages, calls in a local area network, management of local contacts. The extended features include authentication, protection of local contacts and exchange of secure messages between communicating parties. The output product of this activity works in both infrastructure and infrastructure-less so at the same time the user can call using PBX (centralized) on VOIP phones and the user can directly communicate with other users using the concepts of peer-to-peer. We implemented these solutions using Objective C, Java and C# programming languages.