Conclusion Google Summer of Code 2016
SmartInfo project with Debian
1. Me
Before getting into the thick of my project, let me present myself:
I am Olivier Grégoire (Gasuleg), and I study IT engineering at École de Technologie supérieure in Montreal.
I am a technician in electronics, and I began object-oriented programming just last year.
I applied to GSoC because I loved the concept of the project that I would work on and I really wanted to be part of it. I also wanted to discover the word of the free software.
2. My Project
During this GSoC, I worked on the Ring project.
“Ring is a free software for communication that allows its users to make audio or video calls, in pairs or groups, and to send messages, safely and freely, in confidence.
Savoir-faire Linux and a community of contributors worldwide develop Ring. It is available on GNU/Linux, Windows, Mac OSX and Android. It can be associated with a conventional phone service or integrated with any connected object.
Under this very easy to use software, there is a combination of technologies and innovations opening all kinds of perspectives to its users and developers.
Ring is a free software whose code is open. Therefore, it is not the software that controls you.
With Ring, you take control of your communication!
Ring is an open source software under the GPL v3 license. Everyone can verify the codes and propose new ones to improve the software’s performace. It is a guarantee of transparency and freedom for everyone!”
Source: ring.cx
The problem is about the typical user of Ring, the one who don’t use the terminal to launch Ring. He has no information about what has happened in the system. My goal is to create a tool that display statistics of Ring.
3. Quick Explanation of What My Program Can Do
The Code
Here are the links to the code I was working on all throughout the Google Summer of Code (You can see what I have done after the GSoC by clicking on the newest patchs):
Patch | Status |
---|---|
Daemon | Merged |
Lib Ring Client (LRC) | On Review |
Gnome client | On Review |
Remove unused code | Merged |
What Can Be Displayed?
This is the final list of information I can display and some ideas on what information we could display in the future:
Information | Details | Done? |
---|---|---|
Call ID | The identification number of the call | Yes |
Resolution | Local and remote | Yes |
Framerate | Local and remote | Yes |
Codec | Audio and video in local and remote | Yes |
Bandwidth | Download and upload | No |
Performance use | CPU, GPU, RAM | No |
Security level | In SIP call | No |
Connection time | No | |
Packets lost | No |
To launch it you need to right click on the call and click on “Show advanced information”.
To stop it, same thing: right click on the call and click on “Hide advanced information”.
4. More Details About My Project
My program needs to retrieve information from the daemon (LibRing) and then display it in gnome client. So, I needed to create a patch for the daemon, the D-Bus layer (in the daemon patch), LibRingClient and the GNU/Linux (Gnome) client.
This is what the architecture of the project looks like.
source: ring.cx
And this is how I implemented my project.
5. Future of the Project
- Add background on the gnome client
- Implement the API smartInfoHub in all the other clients
- Gather more information, such as bandwidth, resource consumption, security level, connection time, number of packets lost and anything else that could be deemed interesting
- Display information for every participant in a conference call. I began to implement it for the daemon on patch set 25 .
Weekly report link
Thanks
I would like to thank the following:
- The Google Summer of Code organisation, for this wonderful experience.
- Debian, for accepting my project proposal and letting me embark on this fantastic adventure.
- My mentor, Mr Guillaume Roguez, and all his team, for being there to help me.