Name
Mateus Augusto Bellomo Agrello Ruivo
Contact/Email/IRC nick
mateusbellomo@gmail.com https://github.com/MateusBellomo
Background
I study computer engineering at UNICAMP (Brazil). I don’t have experience working with global scale software but I’m motivated to learn and help the free software community. I've contributed with a Python tool in my undergrad scientific project (https://github.com/galaxyproteomics/tools-galaxyp/commits/master/tools/maxquant) that creates an xml for a proteomic software (?MaxQuant). I most worked with C++ and have never worked with network programming so this will be a great opportunity for me to acquire new skills.
Project title
Web Client and Connection Manager for reSIProcate
Project details
I will make a good effort at making the chat messaging and buddy list work in telepathy-resiprocate. I’ve already read the resip/dum/test/* files to learn some API examples and checked the link at (https://project.freertc.org/projects/development/issues) and choose the following extra issues to work with:
- Move certificate common name mappings to database
- Ganglia monitoring support
- Support for WebRTC client to make conference calls
- Connection Manager for reSIProcate
I'm also willing to work on any another task from project.freertc.org involving C or C++.
Benefits to Debian
The reSIProcate project maintain a complete usable implementation of SIP and a few related projects so it can be used for communication software.
Something that really bothers about proprietary software is how they gather personal information. When we are using proprietary software (mostly for personal communication) we never know if our information is being used for another purposes.
In that way, develop and maintain a free protocol that enables free communication tools (as RTC) work properly is fundamental for our privacy.
Deliverables
Working functionalities for chat messaging and buddy list for telepathy-resiprocate, move certificate common name mappings to database, Ganglia monitoring support, support for WebRTC client to make conference calls, Connection Manager for reSIProcate.
Project schedule
I can begin to work on April. From April-June I could work 8-12 hours a week because I have class until end June. In July I could work 56 hours a week and in August I go back to 8-12 hours a week.
Week 1
- support for initializing roster / buddy list
- support for adding contacts
- support for removing contacts
Week 2
- support for contact status changes
- sending local user's status
Week 3
- sending text messages to contacts
- receiving text messages from contacts
Week 4
- review the following code:
- telepathy-snom connection manager
- apps/sipdial in reSIProcate
- make a connection manager for click-to-dial using generic SIP REFER and other techniques from apps/sipdial
Week 5
- making a connection manager for sending click-to-dial events to some other device using Bluetooth
- making a connection manager for sending click-to-dial events to some other device using OpenDHT
Week 6-7
- review apps/ichat-gw code from reSIProcate, make it compile with latest libgloox from debian sid
- test ichat-gw code with Prosody XMPP server and repro SIP proxy
- update ichat-gw code to handle text messages between any arbitrary SIP and XMPP users
Week 8 and beyond
Move ?CommonNameMappings text file to database and make it accessible through web admin UI (https://project.freertc.org/issues/26)
Use the ?StatisticsManager API and pass the statistics to gmetric API (https://project.freertc.org/issues/30) and Support calls to and from WebRTC clients (https://project.freertc.org/issues/28)
Develop Connection Manager for reSIProcate (https://project.freertc.org/issues/37)
- Testing Connection Manager for reSIProcate
Work on another tasks from (https://project.freertc.org/) recommended by my menthor
Exams and other commitments
I'll have some exams during SoC period but I don't have the dates yet since my University don't do a week of exams (each professor choose his own schedule). I will notify my menthor about my exams.
Why Debian?
Because for the past 5 years I'm using a Debian based system and I think it's fantastic and I will be very pleasant to make part of this.
Are you applying for other projects in SoC? I'm not applying for another project
GSoC coding test
Steps to install reSIProcate
System used
Debian GNU/Linux 8.3 (jessie)
Telepathy-Qt
First you have to configure the telepathy-qt library properly to be able to install reSIProcate. It's important to notice that you shouldn't install telepathy-qt from apt-get because in this way it wont have the telepathy-qt4-service shared library.
$ mkdir ~/telepathy-qt-stuff $ cd ~/telepathy-qt-stuff $ git clone https://github.com/dpocock/telepathy-qt-debian $ cd telepathy-qt-debian $ git checkout jessie-build-all-shared $ cd ..
Then you should download the tar http://http.debian.net/debian/pool/main/t/telepathy-qt/telepathy-qt_0.9.6.1.orig.tar.gz in the telepathy-qt-stuff folder and continue:
$ tar xzf telepathy-qt_0.9.6.1.orig.tar.gz $ cd telepathy-qt_0.9.6.1 $ [ -d debian ] && echo "warning: debian/ already exists!" $ cp -r ../telepathy-qt-debian/debian . $ dpkg-buildpackage -rfakeroot -i.* -j13 -us -uc $ cd .. $ ls *.deb
Now you should see a list of libtelepathy-qt* and telepathy-qt* .deb packages. You just have to install a few more packages:
$ dpkg -i libtelepathy-qt4-2_0.9.6.1-2_amd64.deb libtelepathy-qt4-dev_0.9.6.1-2_amd64.deb libtelepathy-qt4-farstream2_0.9.6.1-2_amd64.deb
After that you have the necessary packages to install reSIProcate.
$ dpkg -l | grep telepathy-qt
Should return you something like this:
ii |
libtelepathy-qt4-2:amd64 |
0.9.6.1-2 |
amd64 |
Telepathy framework - Qt 4 library |
ii |
libtelepathy-qt4-dev |
0.9.6.1-2 |
amd64 |
Qt 4 Telepathy library (headers and static library) |
ii |
libtelepathy-qt4-farstream2:amd64 |
0.9.6.1-2 |
amd64 |
Telepathy/Farsight integration - Qt 4 library |
reSIProcate
After installing telepathy-qt properly you would be able to configure reSIProcate.
$ git clone https://github.com/resiprocate/resiprocate $ cd resiprocate $ ./build/debian.sh $ make
And then you are done!