07-05-2011, 12:23 PM
Project Team Members
Dattatreya Dixit 1SJ06IS012
Sri Harsha C 1SJ05IS053
Suraj R 1SJ06IS052
Vinayaka G 1SJ06IS059
[attachment=13398][attachment=13400][attachment=13401][attachment=13402][attachment=13403][attachment=13404][attachment=13405][attachment=13412][attachment=13411][attachment=13409][attachment=13408][attachment=13407]
ABSTRACT
The Session Initiation Protocol (SIP) is a signalling protocol, widely used for setting up and tearing down multimedia communication sessions such as voice and video calls over the Internet. Other feasible application examples include video conferencing, streaming multimedia distribution, instant messaging, presence information and online games. The protocol can be used for creating, modifying and terminating two-party (unicast) or multiparty (multicast) sessions consisting of one or several media streams.
In this project we are going to develop applications such as text transfer, file transfer, voice conference and video conference using SIP with proxy server. SIP signaling follows the server-client paradigm as used widely in the Internet by protocols like HTTP or SMTP. An Internet phone and softphone are the two things which are required in this project. An Internet Phone uses the Session Initiation Protocol (SIP) or Media Gateway Control Protocol (MeGaCo). A VoIP phone based on SIP is called a SIP phone. A softphone is a software that runs on a general purpose computer instead of a dedicated device. It simulates the experience of a normal phone with the aid of a headset or a USB device. These use different implementation techniques.
Hardware Requirements
• 2 Personal Computers
• 512 MB RAM
• CPU with 2.2 GHz or above
• LAN connection
Software Requirements
1. Operating System
• Linux 2.6 kernel
2. Software
• C
• gcc compiler
• gdb debugging tool
Design and Implementation of SIP for Multistreaming Applications
The Session Initiation Protocol (SIP) is a signalling protocol, widely used for setting up and tearing down multimedia communication sessions such as voice and video calls over the Internet. Other feasible application examples include video conferencing, streaming multimedia distribution, instant messaging, presence information and online games. The protocol can be used for creating, modifying and terminating two-party (unicast) or multiparty (multicast) sessions consisting of one or several media streams.
In this project we are going to develop applications such as text transfer, file transfer, voice conference and video conference using SIP with proxy server. SIP signaling follows the server-client paradigm as used widely in the Internet by protocols like HTTP or SMTP. An Internet phone and softphone are the two things which are required in this project. An Internet Phone uses the Session Initiation Protocol (SIP) or Media Gateway Control Protocol (MeGaCo). A VoIP phone based on SIP is called a SIP phone. A softphone is a software that runs on a general purpose computer instead of a dedicated device. It simulates the experience of a normal phone with the aid of a headset or a USB device. These use different implementation techniques.
Functions of SIP:
1. SIP allows for the establishment of user location (i.e. translating from a user's name to their current network address).
2. SIP provides for feature negotiation so that all of the participants in a session can agree on the features to be supported among them.
3. SIP is a mechanism for call management - for example adding, dropping, or transferring participants.
4. SIP allows for changing features of a session while it is in progress.
5. User capability, availability.
Request message format
Method SP Request-URI SP SIP-Version CRLF [SP = single-space & CRLF=Carriage Return + Line Feed (i.e. the character inserted when you press the "Enter" or "Return" key of your computer)]
Response message format
SIP-Version SP Status-Code SP Reason-Phrase CRLF [SP = single-space & CRLF=Carriage Return + Line Feed (i.e. the character inserted when you press the "Enter" or "Return" key of your computer)]
Methods to be performed for Communication:
1. INVITE :Invites a user to a call
2. ACK : Acknowledgement is used to facilitate reliable message exchange for INVITEs.
3. BYE :Terminates a connection between users
4. CANCEL :Terminates a request, or search, for a user. It is used if a client sends an INVITE and then changes its decision to call the recipient.
5. OPTIONS :Solicits information about a server's capabilities.
6. REGISTER :Registers a user's current location
7. INFO :Used for mid-session signaling
SIP (Session Initiation Protocol) is a signaling protocol used to create, manage and terminate sessions in an IP based network. There is a typical example below which shows the session initiation between two users with proxy servers. User 1 uses his softphone to reach the SIP phone of user2. Server1 and server2 help to setup the session on behalf of the users. This common arrangement of the proxies and the end-users is called "SIP Trapezoid" as depicted by the dotted line. The messages appear vertically in the order they appear i.e. the message on top (INVITE M1) comes first followed by others. The direction of arrows shows the sender and recipient of each message. Each message contains a 3-digit-number followed by a name and each one is labeled by 'M' and a serial number. The 3-digit-number is the numerical code of the associated message comprehended easily by machines. Human users use the name to identify the message.
INTRODUCTION
1.1 Overview
During the past few years, internet telephony has evolved from a toy for the technically savvy to a technology. The term internet telephony has evolved to infer a range of different services. In general, it refers to the transport of real-time media such as text, voice and video over the internet to provide interactive communications among internet users. The parties involved may access the internet via a PC, a stand-alone Internet Protocol (IP)-enabled device, or even by dialing up to a gateway from the handset of a traditional Public Switched Telephone Network (PSTN).
The advantages of IP telephony are quite sweeping. It offers high-quality voice, improved multiplexing gains, rich computer telephony integration, advanced services, an open market for providers, and reduced cost. Supporting the widespread use of Internet telephony requires a host of standardized protocols to ensure quality of service (QoS), transport text, voice and video data, provide directory services, and enable signaling. Signaling protocols are of particular interest because they are the basis for advanced services such as mobility, universal numbers, multiparty conferencing, voice mail, and automatic call distribution.
Two signaling protocols have emerged to fill this need, the H.323 suite of protocols and Session Initiation Protocol (SIP), developed by the Internet Engineering Task Force (IETF). We examine how SIP is used in Internet telephony and present an overview of the protocol and its architecture, and describe how it can be used to provide a number of advanced services. Our discussion of some of SIP’s strengths—its simplicity, scalability, extensibility, and modularity analyzes why these are critical components for an IP telephony signaling protocol. SIP will prove to be a valuable tool, not just for end-to-end IP services, but also for controlling existing phone services.
1.2 Objective
There are many applications of the internet that require the creation and management of a session, where a session is considered an exchange of data between an association of participants. The implementation of these applications is complicated by the practices of participants, users may move between endpoints, they may be addressable by multiple names, and they may communicate in several different media - sometimes simultaneously. Numerous protocols have been authored that carry various forms of real-time multimedia session data such as voice, video, or text messages.
The Session Initiation Protocol (SIP) works in concert with these protocols by enabling internet endpoints (called user agents) to discover one another and to agree on a characterization of a session they would like to share. For locating prospective session participants, and for other functions, SIP enables the creation of an infrastructure of network hosts (called proxy servers) to which user agents can send registrations, invitations to sessions, and other requests. SIP is an agile, general-purpose tool for creating, modifying, and terminating sessions that works independently of underlying transport protocols and without dependency on the type of session that is being established.
1.3 Problem Statement
The problem addressed here is creating, modifying, and terminating sessions with one or more participants. These sessions include internet telephone calls, multimedia distribution, and multimedia conferences.
1.4 Project Scope
The scope of applications for this project includes applications with the following characteristics: Instant messaging, Voice chat, Voice conferencing.
1.5 Report Organization
Chapter 2 describes the hardware and software requirements and also describes analysis part in the existing and proposed systems.
Chapter 3 describes designing part in that we are discussing system architecture and design constraints.
Chapter 4 describes the implementation part of our project.
Chapter 5 describes the testing, types of testing and evaluation of the different modules.
Chapter 6 describes the performance analysis.
Chapter 7 describes future enhancement of the project.
Chapter 8 describes conclusion of the project.
ANALYSIS AND SPECIFICATION
2.1 Analysis
2.1.1 Existing System
H.323 provides for call connection, call management, and call termination, in a VoIP session. It is a signaling protocol recommended by the International Telecommunications Union (ITU). The ITU describes and defines its own set of protocols that differ from those of the Internet Engineering Task Force (IETF). While H.323 provided an all-in-one solution, it is not flexible enough to provide for voice services. It has to be redefined to move onto something better.
2.1.2 Proposed System
SIP provides a degree of simplicity that many feel is superior to the complexities found in H.323. SIP is a very important signaling protocol, which was designed for internet telephony. It provides the necessary tools for location services, call establishment, call management, and call termination. SIP does not classify the type of session that is set up, so it could just as easily set up an audio call with or without other data. SIP is similar in syntax to Hypertext Transfer Protocol (HTTP). A SIP request contains a header field that gives details about the call, and a main body which describes the media being used.
2.2 Requirement Analysis
Requirements analysis encompasses all of the tasks that go into the instigation, scoping and definition of a new or altered system. Requirements analysis is an important part of the design process, where we identify the needs or requirements. Once the requirements have been identified, the solution for the requirements can be designed.
2.2.1 Functional Requirements
Functional requirements define the internal working of the software, that is, the technical details, data manipulation and processing and other specific functionality that show how the use cases are to be satisfied. They are supported by non-functional requirements, which impose constraints on the design or implementation.
Following are the functional requirements:
Establishment of user location (i.e. translating from a user's name to their current network address).
Provide feature negotiation so that all of the participants in a session can agree on the features to be supported among them.
Provide a mechanism for call management - for example adding, dropping, or transferring participants.
Changing features of a session while it is in progress.
User capability, availability.
2.2.2 Non-functional Requirements
Non-functional requirements are requirements which specify criteria that can be used to judge the operation of a system, rather than specific behaviors. This should be contrasted with functional requirements that specify specific behavior or functions.
Millions of clients and servers operating simultaneously.
An individual server may need to support thousands of simultaneous sessions.
An individual client may need to support a handful of simultaneous sessions.
2.3 Hardware and Software Requirements:
The hardware interface involves defining the characteristics of hardware on which the software that is being built under any project will execute.
2.3.1 Machine Configuration
Processor: Pentium –IV processor and above.
RAM : Minimum 512 MB / 1 GB RAM.
Hard Disk: 20GB Hard disk and above.
2.3.2 Peripheral Specification
Monitor : At least 15 B/W\COL Monitor.
Mouse : Standard 2/3 Button.
Keyboard: Standard US 104 Keys.
2.3.3 Software for Development and Deployment
Operating System: Linux 2.6 kernel
Programming language: C
Compiler: gcc compiler