Mateus Augusto Bellomo Agrello Ruivo

Campinas - Brazil: Wikipedia
OpenStreetMap

Universidade Estadual de Campinas Unicamp
Computer Engineering course IC
University of Campinas Wikipedia

mateusbellomo@gmail.com
https://github.com/MateusBellomo
IRC nick: mateusbellomo
blog: MateusBellomo

Free RTC
Telepathy
Debian-RTC
debconf-discuss
debian-outreach
debian-announce
debian-devel-announce
debconf-announce
reSIProcate-devel
reSIProcate-announce

Juliana Louback Website - Juliana was a successful GSoC project and is helping me in the first steps of my own project.

There is a Debian comunity located in Brazil (Debian-Brasil). They also have some mailing lists (mailing lists)

Events that I could attend: FISL-MiniDebConf or DebConf

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.

Lenovo notebook - 1366x768 pixels screen with internal webcam running Debian GNU/Linux 8.3 (jessie)
My internet connection is not filtered nor restricted and I don't use a proxy server. I also don't have IPv6.

To code C++ I've never used an IDE. I'm used to use Emacs and debug with gdb when I need. Since I never worked with a big project before, I've never needed to use an IDE but I think it could be helpful at this project.

To my project I will have to use Git. I would also need to use CMake.

In this period I will have to get more practice using Git. I already use it but I'm used to commit changes in my own repository. I don't have a PGP key.

Web Client and Connection Manager for reSIProcate

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:

  1. Move certificate common name mappings to database
  2. Ganglia monitoring support
  3. Support for WebRTC client to make conference calls
  4. Connection Manager for reSIProcate

I'm also willing to work on any another task from project.freertc.org involving C or C++.

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.

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.

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.

Following the specification of telepathy and reading telepathy-morse and telepathy-nonsense I could implement the telepathy-resiprocate.

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6-7

Week 8 and beyond

All the branches created for GSoC

Pull requests merged

Pull requests not merged

Pull requests closed

PUBLISH sip:mateus1@test.sip5060.net SIP/2.0
Via: SIP/2.0/ ;branch=z9hG4bK-524287-1---59de1e233ee8ee6c;rport
Max-Forwards: 70
Contact: <sip:mateus1>;reg-id=1;+sip.instance="6c6849c1-7e6b-4668-ad6f-aa6bdf5647c4"
To: <sip:mateus1@test.sip5060.net>
From: "mateus1"<sip:mateus1@test.sip5060.net>;tag=162be630
Call-ID: M_sPaeaf0CYRIvXgiCUdxQ..
CSeq: 1 PUBLISH
Expires: 3600
Accept-Language: en
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, SUBSCRIBE, UPDATE, PRACK, INFO, MESSAGE
Content-Type: application/pidf+xml
Supported: replaces, timer, norefersub, answermode, tdialog
User-Agent: telepathy-resiprocate
Event: presence
Content-Length: 517

<?xml version="1.0" encoding="UTF-8"?>
<presence xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid"
          xmlns="urn:ietf:params:xml:ns:pidf"
          xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
        entity="sip:mateus1@test.sip5060.net">
  <dm:person id="dd374b">
    <rpid:activities/>
  </dm:person>
  <tuple id="a523aa">
    <status>
      <basic>open</basic>
    </status>
    <note>Online</note>
    <contact priority="1.0">sip:mateus1@test.sip5060.net</contact>
  </tuple>
</presence>

SUBSCRIBE sip:mateus2@test.sip5060.net SIP/2.0
Via: SIP/2.0/ ;branch=z9hG4bK-524287-1---50356e66fb962b4e;rport
Max-Forwards: 70
Contact: <sip:mateus1>;reg-id=1;+sip.instance="6c6849c1-7e6b-4668-ad6f-aa6bdf5647c4"
To: <sip:mateus2@test.sip5060.net>
From: "mateus1"<sip:mateus1@test.sip5060.net>;tag=e170b16e
Call-ID: 4SFPL2CLWqMBWN8UciIImg..
CSeq: 1 SUBSCRIBE
Expires: 3600
Accept-Language: en
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, SUBSCRIBE, UPDATE, PRACK, INFO, MESSAGE
Supported: replaces, timer, norefersub, answermode, tdialog
User-Agent: telepathy-resiprocate
Event: presence
Content-Length: 0

away

busy

in a meeting

offline

online

unknown

I'll have some exams during GSoC 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.

I will maintain a branch in Git with all my work so I could recover from a disk failure pretty quickly. If I loose my laptop I could continue work at my University until I recover my laptop. I could also use my university internet if my internet fails. Electricity failure is very rare where I live.

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.

coding_test.patch

System used

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.

Make sure you have added backports to your /etc/apt/sources.list file

$ git clone https://github.com/resiprocate/resiprocate
$ cd resiprocate
$ apt-get install libpq-dev dh-autoreconf
$ apt-get build-dep resiprocate
$ apt-get install -t jessie-backports libradcli-dev
$ ./build/debian.sh
$ make

And then you are done!