#language en * '''Name''' Mateus Augusto Bellomo Agrello Ruivo * '''Location''' Campinas - Brazil: [[https://en.wikipedia.org/wiki/Campinas|Wikipedia]]<
> [[http://www.openstreetmap.org/relation/298227|OpenStreetMap]] * '''University''' Universidade Estadual de Campinas [[http://www.unicamp.br/unicamp/|Unicamp]]<
> Computer Engineering course [[http://www.ic.unicamp.br/|IC]]<
> University of Campinas [[https://en.wikipedia.org/wiki/University_of_Campinas|Wikipedia]]<
> * '''Contact/Email/IRC nick''' mateusbellomo@gmail.com <
> https://github.com/MateusBellomo <
> IRC nick: mateusbellomo <
> blog: [[https://mateusbellomo.wordpress.com/|MateusBellomo]] * '''Mailing lists''' [[https://lists.fsfe.org/mailman/listinfo/free-rtc|Free RTC]]<
> [[https://lists.freedesktop.org/mailman/listinfo/telepathy|Telepathy]]<
> [[https://lists.debian.org/debian-rtc/|Debian-RTC]]<
> [[http://lists.debconf.org/mailman/listinfo/debconf-discuss|debconf-discuss]]<
> [[https://lists.debian.org/debian-outreach/|debian-outreach]]<
> [[https://lists.debian.org/debian-announce/|debian-announce]]<
> [[https://lists.debian.org/debian-devel-announce/|debian-devel-announce]]<
> [[http://lists.debconf.org/mailman/listinfo/debconf-announce|debconf-announce]]<
> [[http://list.resiprocate.org/mailman/listinfo/resiprocate-devel|reSIProcate-devel]]<
> [[http://list.resiprocate.org/mailman/listinfo/resiprocate-announce|reSIProcate-announce]] * '''Key people''' Juliana Louback [[http://julianalouback.com/|Website]] - Juliana was a successful GSoC project and is helping me in the first steps of my own project. * '''Local free software comunity''' There is a Debian comunity located in Brazil ([[http://wiki.debianbrasil.org/|Debian-Brasil]]). They also have some mailing lists ([[http://wiki.debianbrasil.org/Listas|mailing lists]]) * '''Events''' Events that I could attend: [[https://wiki.debian.org/DebianEvents/br/2016/MiniDebconfFISL|FISL-MiniDebConf]] or [[https://debconf16.debconf.org/|DebConf]] * '''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. * '''My computer''' 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. * '''Development tools''' 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. * '''Build tools''' To my project I will have to use Git. I would also need to use CMake. * '''Bonding period''' 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. * '''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: 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++. * '''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. Following the specification of [[https://telepathy.freedesktop.org/spec/index.html|telepathy]] and reading [[https://github.com/TelepathyQt/telepathy-morse|telepathy-morse]] and [[https://github.com/TelepathyQt/telepathy-nonsense/|telepathy-nonsense]] I could implement the telepathy-resiprocate. ==== 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 ==== * DebConf conference * Move !CommonNameMappings text file to database and make it accessible through web admin UI [[https://project.freertc.org/issues/26|FreeRTC - Issue 26]] * Use the !StatisticsManager API and pass the statistics to gmetric API [[https://project.freertc.org/issues/30|FreeRTC- Issue 30]] and Support calls to and from WebRTC clients [[https://project.freertc.org/issues/28|FreeRTC - Issue 28]] * Develop Connection Manager for reSIProcate [[https://project.freertc.org/issues/37|FreeRTC - Issue 37]] * Testing Connection Manager for reSIProcate * Work on another tasks from [[​https://project.freertc.org|FreeRTC]] recommended by my menthor * '''Links with work done''' ==== All the branches created for GSoC ==== * https://github.com/MateusBellomo/resiprocate/branches/yours ==== Pull requests merged ==== * https://github.com/resiprocate/resiprocate/pull/41 (added config.h in reTurn/* when needed #41) * https://github.com/resiprocate/resiprocate/pull/50 (bug fix for methods overriding onSubscriptionNotify of UserAgent #50) * https://github.com/resiprocate/resiprocate/pull/52 (send presence mechanism through PUBLICATION message #52) * https://github.com/resiprocate/resiprocate/pull/53 (send/receive text message mechanism through MESSAGE message #53) * https://github.com/resiprocate/resiprocate/pull/55 (pass the IM object to UserAgent making application responsible for creating it #55) * https://github.com/resiprocate/resiprocate/pull/56 (load/save buddies list, send/receive presence, send/receive text messages #56) * https://github.com/resiprocate/resiprocate/pull/59 (fixed some telepathy bugs recommended by Alexandr) * https://github.com/resiprocate/resiprocate/pull/61 (fixed PUBLISH pidf order and attributes #61) ==== Pull requests not merged ==== * https://github.com/resiprocate/resiprocate/pull/42 (added some executables, .cxx, .h and Makefile to gitignore #42) * https://github.com/resiprocate/resiprocate/pull/62 (added instructions to compile resip/recon API at Windows #62) ==== Pull requests closed ==== * https://github.com/resiprocate/resiprocate/pull/45 (buddy list and presence #45) * https://github.com/resiprocate/resiprocate/pull/46 (buddy list contact status clean #46) * '''Week reports''' * [[https://lists.debian.org/debian-outreach/2016/06/msg00002.html | GSoC 2016 Week 1: CM for reSIProcate ]] - Jun 02 * [[https://lists.debian.org/debian-outreach/2016/06/msg00017.html | GSoC week 2 and 3: CM for reSIProcate ]] - Jun 11 * [[https://lists.debian.org/debian-outreach/2016/06/msg00036.html | GSoC week 4: CM for reSIProcate ]] - Jun 19 * [[https://lists.debian.org/debian-outreach/2016/06/msg00067.html | GSoC week 5: CM for reSIProcate ]] - Jun 28 * [[https://lists.debian.org/debian-outreach/2016/07/msg00009.html | GSoC week 6: CM for reSIProcate ]] - Jul 05 * [[https://lists.debian.org/debian-outreach/2016/07/msg00017.html | GSoC week 7: CM for reSIProcate]] - Jul 12 * [[https://lists.debian.org/debian-outreach/2016/07/msg00044.html | GSoC week 8: CM for reSIProcate ]] - Jul 20 * [[https://lists.debian.org/debian-outreach/2016/07/msg00060.html | GSoC week 9: CM for reSIProcate ]] - Jul 26 * [[https://lists.debian.org/debian-outreach/2016/08/msg00003.html | GSoC week 10: CM for reSIProcate ]] - Aug 02 * [[https://lists.debian.org/debian-outreach/2016/08/msg00012.html | GSoC week 11-12: CM for reSIProcate ]] - Aug 13 * [[https://lists.debian.org/debian-outreach/2016/08/msg00046.html | GSoC week 13: CM for reSIProcate ]] - Aug 22 * '''SIP Messages generated by telepathy-resiprocate after GSoC project''' {{{ PUBLISH sip:mateus1@test.sip5060.net SIP/2.0 Via: SIP/2.0/ ;branch=z9hG4bK-524287-1---59de1e233ee8ee6c;rport Max-Forwards: 70 Contact: ;reg-id=1;+sip.instance="6c6849c1-7e6b-4668-ad6f-aa6bdf5647c4" To: From: "mateus1";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 open Online sip:mateus1@test.sip5060.net }}} {{{ SUBSCRIBE sip:mateus2@test.sip5060.net SIP/2.0 Via: SIP/2.0/ ;branch=z9hG4bK-524287-1---50356e66fb962b4e;rport Max-Forwards: 70 Contact: ;reg-id=1;+sip.instance="6c6849c1-7e6b-4668-ad6f-aa6bdf5647c4" To: From: "mateus1";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 }}} * '''Empathy status''' ==== away ==== {{attachment:status_Away.png}} ==== busy ==== {{attachment:status_Busy (DND).png}} ==== in a meeting ==== {{attachment:status_In a meeting.png}} ==== offline ==== {{attachment:status_Offline.png}} ==== online ==== {{attachment:status_Online.png}} ==== unknown ==== {{attachment:status_Unknown.png}} * '''Text message exchange between Empathy using telepathy-resiprocate and Jitsi''' {{attachment:textChannel_Empathy.png}} {{attachment:textChannel_Jitsi.png}} * '''Exams and other commitments''' 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. * '''Project risks''' 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. * '''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''' [[attachment:coding_test.patch]] * '''Steps to install reSIProcate''' ==== System used ==== * Debian GNU/Linux 8.3 (jessie) * Ubuntu 14.04.4 LTS (trusty) ==== 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 [[http://backports.debian.org|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!