Jump to: navigation, search

Difference between revisions of "ECF/SIP VoIP"

< ECF
(Summary)
(References)
 
(14 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
== Summary ==
 
== Summary ==
  
Eclipse Communication Framework is consists of several messaging protocol and providers such as XMPP, MSN, Yahoo & IRC. These are plugged in to the Eclipse as Providers at the moment.I have done some research on existing SIP implementations and found out that most of them are under GNU GPL or Commercial License. My plan is to integrate SIP(which is another popular protocol) protocol implementation to ECF and develop a provider for SIP under Eclipse public License.  
+
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 ==
  
Eclipse Communication Framework supports several messaging protocols at the moment, including Yahoo, MSN and XMPP, which are plugged in as providers. However, the current Yahoo provider is based on a third party Yahoo protocol implementation (jYMSG) which is distributed under GNU GPL. This is problematic for the ECF due to the incompatibility between licenses - EPL and GPL. This project aims to implement the Yahoo protocol and a provider under EPL.
+
There are 3 distinct stages in the project
 +
# Research about the protocol and Studying it
 +
# Protocol Implementation
 +
# SIP Provider Implementation
 +
 
 +
The research on the protocol is planned to be carried out using the following methods
 +
<nowiki>:</nowiki>
 +
# Online Material referring - In this  forums posts, blogs and other documents such as RFC will be studied.
 +
# 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.
 +
 
 +
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.
 +
 
 +
== Project Scope ==
 +
 
 +
'''Proposed implementations:'''
 +
*SIP protocol implementation in Java
 +
*SIP Provider for ECF
 +
 
 +
<nowiki>*</nowiki>The implementations will be extended to use TCP tunneling as well.
 +
<br>
 +
<nowiki>*</nowiki>All the implementations will be consist of Appropriate Documentations.
 +
 
 +
 
 +
== Deliverables ==
 +
 
 +
*SIP Protocol Implementation under EPL
 +
*SIP Provider for ECF
 +
*Relevant Documentations and User Guides.
 +
 
 +
 
 +
== Challenges ==
 +
 
 +
The key challenge is to implement the SIP protocol and the SIP provider to support all its specified features in an any environment such as directly connected,from behind a proxy, from behind a Firewall. Usually Media packets are transported using UDP and Firewalls block them. To avoid this i have to use TCP tunneling. In this case i have to tunnel the UDP media packets with in TCP or HTTP/ HTTPS packets and send them.
 +
 
 +
==References==
 +
#<nowiki>Wikipedia  [http://en.wikipedia.org/wiki/Session_Initiation_Protocol]</nowiki>
 +
#<nowiki>ECF source and documentation  [http://eclipse.org/ecf]</nowiki>
 +
#<nowiki>EPL definitions and FAQ page [http://www.eclipse.org/legal]</nowiki>
 +
#<nowiki>ECF mailing list</nowiki>
 +
#<nowiki>BSD Vs GPL [http://www.matusiak.eu/numerodix/blog/index.php/2007/12/15/gpl-vs-bsd-a-matter-of-sustainability/]</nowiki>

Latest revision as of 13:00, 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.

Project Scope

Proposed implementations:

  • SIP protocol implementation in Java
  • SIP Provider for ECF

*The implementations will be extended to use TCP tunneling as well.
*All the implementations will be consist of Appropriate Documentations.


Deliverables

  • SIP Protocol Implementation under EPL
  • SIP Provider for ECF
  • Relevant Documentations and User Guides.


Challenges

The key challenge is to implement the SIP protocol and the SIP provider to support all its specified features in an any environment such as directly connected,from behind a proxy, from behind a Firewall. Usually Media packets are transported using UDP and Firewalls block them. To avoid this i have to use TCP tunneling. In this case i have to tunnel the UDP media packets with in TCP or HTTP/ HTTPS packets and send them.

References

  1. Wikipedia [http://en.wikipedia.org/wiki/Session_Initiation_Protocol]
  2. ECF source and documentation [http://eclipse.org/ecf]
  3. EPL definitions and FAQ page [http://www.eclipse.org/legal]
  4. ECF mailing list
  5. BSD Vs GPL [http://www.matusiak.eu/numerodix/blog/index.php/2007/12/15/gpl-vs-bsd-a-matter-of-sustainability/]