Difference between revisions of "ECF/SIP VoIP"

From Eclipsepedia

< ECF
Jump to: navigation, search
(Summary)
(Details)
Line 11: Line 11:
 
== Details ==
 
== Details ==
  
The project consists of 3 major tasks:
+
There are 3 distinct stages in the project
# Studying the protocol
+
# Research about the protocol and Studying it
# Implementing the protocol
+
# Protocol Implementation
# Implementing the ECF provider
+
# SIP Provider Implementation
  
The first task, studying the protocol can be challenging. To accomplish this, there are a few methods available<nowiki>:</nowiki>
+
The research on the protocol is planned to be carried out using the following methods
# Reading online articles/blogs which describe the protocol
+
<nowiki>:</nowiki>
# Black-Box testing – this can be done by doing various activities (Login, Logout, Sending instant messages etc) and observing the underlying requests made and responses arrived. For observing requests and responses, a network protocol analyzer can be used. There are several such open source protocol analyzers available at the moment.
+
# Online Material referring - In this  forums posts, blogs and other documents such as RFC will be studied.
# Examining the existing open source Yahoo protocol implementations.
+
# Study the SIP messages - This task can be easily done using open source network protocol analyzers and packet analyzers as SIP is a text based protocol syntaxes such as HTTP. In this step SIP requests and reply messages will be examined.
 +
# Studying existing SIP implementations - There are existing Java SIP implementations which are distributed under GNU GPL.  
  
In addition to these methods, some other controversial methods like reverse engineering the code of the client/ assembly level debugging are also available. I do not intend to use such methods for this project.
+
As all these are successful methods of studying the protocol, I'm planing to use them as necessary.  
  
Out of the above 3 methods, I plan to use (1) and (2) as appropriate for studying the protocol. Also, there is a possibility of using (3) if there are BSD-style licensed implementations available. However, the most popular ones are under GPL, so I plan to study the protocol without depending on this method.
+
First, i will read the RFC and other online documents which describes about SIP protocol and its specifications. In this process i will be able to get a good idea about the protocol. So the next step will be examining the SIP messages which are been transfered between server and clients. This will be done by writing small simulators which are able to send requests and the reply will be examined using network protocol analyzers and packet analyzers.  
  
First step will be to read online articles and get an overall idea of the protocol. Then for each activity supported by the protocol (i.e. Login, IM, Add/Remove contacts etc), I will study the underlying requests responses closely by reading the articles. Then validity of what I study needs to be recognized by using either black-box testing or writing a simple program to do the request. In case when information I’ve collected are out-of-date or invalid, black-box testing will be used for observing several requests/responses. Using these observations, protocol can be studied. This procedure will repeatedly apply to study all portions of the protocol I’ll be implementing.
+
As SIP protocol is quite complex, the protocol implementation will be carried out while studying the protocol. So the implementation will follow rapid development model.
  
My plan is to carry out both the tasks , studying and implementing the protocol, simultaneously as appropriate, rather than two sequential separate tasks.
+
Based on these observations i will be able to get an idea about protocol implementation. While developing I'm planing to simulate the requests using the simulators i have implemented to validate my implementations. So it will be easy to fix the bugs in my implementation as it is in the first phase.
  
After testing the implementation, ECF provider will be implemented. For this task, one of the existing provider implementations such as XMPP or MSN can be taken as a reference.
+
 
 +
After validating and verifying the implementation, i will start developing the SIP provider for ECF. In this task i'm planning to take existing provider as a model and to proceed in developing the SIP provider.

Revision as of 12:44, 3 April 2009

SIP protocol & Provider Implementation for ECF under Eclipse Public License

This page contains the project proposal created by [Harshana Martin] for the GSoC idea taken from [GSoC 2009 Ideas list]. Comments from the viewers are welcome.


Summary

Eclipse Communication Framework is consists of several messaging protocol such as XMPP, MSN, Yahoo & IRC. There are providers plugged in to the Eclipse for these protocols at the moment. But there is no successfully working SIP Provider for ECF yet. So the aim of this project is to integrate a successful SIP provider to ECF. During the project SIP protocol will be implemented under Eclipse public License as most of the existing SIP implementations are under GNU GPL or Commercial License which are incompatible with EPL.


Details

There are 3 distinct stages in the project

  1. Research about the protocol and Studying it
  2. Protocol Implementation
  3. SIP Provider Implementation

The research on the protocol is planned to be carried out using the following methods :

  1. Online Material referring - In this forums posts, blogs and other documents such as RFC will be studied.
  2. Study the SIP messages - This task can be easily done using open source network protocol analyzers and packet analyzers as SIP is a text based protocol syntaxes such as HTTP. In this step SIP requests and reply messages will be examined.
  3. Studying existing SIP implementations - There are existing Java SIP implementations which are distributed under GNU GPL.

As all these are successful methods of studying the protocol, I'm planing to use them as necessary.

First, i will read the RFC and other online documents which describes about SIP protocol and its specifications. In this process i will be able to get a good idea about the protocol. So the next step will be examining the SIP messages which are been transfered between server and clients. This will be done by writing small simulators which are able to send requests and the reply will be examined using network protocol analyzers and packet analyzers.

As SIP protocol is quite complex, the protocol implementation will be carried out while studying the protocol. So the implementation will follow rapid development model.

Based on these observations i will be able to get an idea about protocol implementation. While developing I'm planing to simulate the requests using the simulators i have implemented to validate my implementations. So it will be easy to fix the bugs in my implementation as it is in the first phase.


After validating and verifying the implementation, i will start developing the SIP provider for ECF. In this task i'm planning to take existing provider as a model and to proceed in developing the SIP provider.