Name : Chandrika Parimoo
Contact/Email: chandrika3437@gmail.com
IRC nick : b1n4ry (on Freenode)
Background:
- I am a second year IT undergraduate at Pune Institute of Computer Technology,Pune. I have been programming in C/C++ for the past three years. I started programming out of interest and have worked on several school and college projects,mostly in C/C++ and Python. I have also written BASH scripts for automating daily tasks such as switching proxies between college and home,etc. Relevant subjects that I am enrolled with the university include Data Communication, Data Structures,Engineering Mathematics and Computer Organization.
I am a Joint Secretary for Women in Engineering Section of IEEE Student Branch at my college. Also, I am a part of the IEEE Programming team at my college for which I worked on a project which is on my github. (Link : https://github.com/MirrorZ/Clash) I also got through to the Asia Regionals for ACM ICPC 2012 , in which the primary languages that I used were C/C++. Undergoing preparation for ICPC has also strengthened my knowledge about Data Strucures especially in C++ . I started out with Ubuntu as my first open source OS and have tried several flavours of Linux since then, finally settling for a dual boot system between Debian and Ubuntu. I am uniquely suited for this project as I've always had an inclination towards Data Communication and Networking. This project being in C++ also puts me at a vantage point as it has been the primary language I use. I like to learn and work with new things and as a result have developed an ability to understand how things work at the core, and adapt to new tools and libraries which may be required for completing the task at hand. I feel strongly for open source at a personal level and want to make the available software more usable for people who might not have ample technical skills.
Project title
Enabling free multimedia real-time communications (RTC) with Debian
Project details:
- This project aims to provide packages for Debian in order to provide free real time communication(RTC).
This project focuses on providing an SIP Conferencing package for debian which is currently missing. Since softphone clients which are already packaged for Debian have inbuilt SIP support (such as Empathy), they can be used alongside a server such as recon (http://www.resiprocate.org/Recon_Overview) to enable VoIP conferences with support for both audio and data transfer. It will also make use of reTURN servers for enabling communication with NAT enabled peers. The authentication for an repro SIP proxy server as well as a reTURN Server authentication will be integrated with Debian LDAP. Seamless support for client connections will be achieved by enabling TLS support so that certificates using the client's Debian email address and potentially their GPG key from the Debian keyring can be deemed authentic. To enable true RTC in Debian, all the user databases which currently use different registration mechanisms need to be used as a reference point together and provide a single entry point for validating user accounts. Some Debian users currently use Mumble for conferencing,but it has had codec problems which have been discussed widely in bug #682010 (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682010). The new solution aims to provide a convenient alternative and also add support for WebRTC and NAT traversal. The project will enable Debian users to use VoIP conferencing using their existing GDP IDs with support for join invitations via email using their email addresses. The server will also have the ability to be remotely controlled for modifying call routing and conference participation. The project's completion will result in code made available in Debian packages ready to run on the core Debian infrastructure or for download
and use by any Debian user.
Synopsis:
- My project aims to implement a VoIP conferencing server using reSIProcate which will act as a Back to Back User Agent (B2BUA) for simultaneous connections between multiple clients for audio and data stream transfers. The server can be remotely accessed and configured for multipeer conversations. The server then has the full authority to kick/ban users, modify user lists, add change user privilege levels on the server. It will also have in built support for the database of users registered at ldap.debian.org, which can be linked in real-time, by certificate authentication or by a user list exported to MySQL. Using repro, TLS Client Authentication can be achieved. This project continuously aims to improve the libraries that the code will be making use of along with the development of the server . The end result of the project will be a package for debian containing a multipeer conference server with full fledged VoIP which can be mass deployed.
Benefits to Debian :
- Users and Developers of Debian will be able to setup VoIP ,WebRTC and conferences using a Debian package with met dependencies , also packaged for Debian. The use case will demonstrate the implementation of RTC in Debian and might motivate other open source operating systems to adapt a similar approach , thereby improving the overall standards of open RTC implementations.
Deliverables:
- Debian Package for SIP Conferencing.
- Integrated single point access for querying multiple databases such as Debian.org / alioth.
- Enable RTC in Debian by using VoIP conferencing as the use case.
Project schedule:
Community Bonding Period :
- Read Documentation about various protocols involved such as TLS, SIP. Read Documentation for reSIProcate and get familiar with the codebase. Learn about Debian packaging and testing frameworks, get familiar with coding style. Write some test cases to exercise those parts of the code that are important to Debian's implementation.
2.5 Weeks : Implement recon server to operate as a B2BUA.
Implementation of the recon server which is at the heart of the VoIP Conferencing project with support for letting multiple users connect to it, bidirectionally transfer audio and data streams using the testUA (https://svn.resiprocate.org/viewsvn/resiprocate/main/resip/recon/test/testua_readme.txt?view=markup)and the legacy B2BUA (https://svn.resiprocate.org/viewsvn/resiprocate/main/apps/basicB2BUA/)code as a model.
2 .5Weeks : Integrate database lookup into the server for multiple databases.
- Since different servers need to be queried such as Debian.org/ Alioth, these two weeks focus on implementing support for validating the genuinity of an incoming user connection using their email ID. The C++ asio library (already packaged for Debian and linked with reTurn) will be used to do the lookups without blocking the server while waiting for LDAP.
2.5 weeks : Integrate reTurnServer authentication and repro SIP proxy authentication with Debian LDAP.
- Since the reTurnServer and repro proxy needs to authenticate the users it will be serving, it needs to have a means to tell if user accounts are valid
2.5 weeks: Adapt repro client TLS support.
- This will allow access-control lists based on the email addresses in client certificates to enable seamless authentication for registered clients. Also will look at ways to support GPG users as well as conventional X.509 certificates.
1 week: Package SIP Conferencing and requirements for Debian.
- Make a Debian package for sip-conferencing based on reSIProcate and also package any missing dependencies.
1 week : Testing the package.
- Test the package in different environments and fix any bugs that might have crept in and modify accordingly. I also wish to maintain the project after it is finished , so that the project can adapt to changing trends along with time. And hence contribute my part to the Debian community.
Other summer plans:
- I will have regular college starting mid July. I will be able to contribute at least 42 hours a week for GSoC for duly finishing the project well in time. Other than this, I have no other commitments set aside for this Summer.
Why Debian?: Why are you choosing Debian? What attracts you about Debian?
- The fundamental stable nature of Debian compared to other GNU/Linux based distros has always come off as an inviting feature. Since Debian has a very active community , the project is most likely to make a greater impact and noticed for the overall betterment of Debian and other distros. Being an Ubuntu user for a while, which is again Debian based, I have always been using Debian somewhere before making the full fledged switch to Debian as my primary OS.
Are you applying for other projects in SoC?
- This is the only project I am applying for under GSOC '13.