Life in a shell

bash$ tiagosh

Replacing python-telepathy with telepathy-qt on Ubuntu-touch

So, this is a long story so I will try to keep it short.

  • The phone-app running on ubuntu touch is a telepathy client.
  • phone-app uses telepathy-qt to talk to telepathy.
  • telepathy-ofono is a bridge between ofono and telepathy.

So far so good. The problem comes now:

  • telepathy-ofono was initially developed in python and python-telepathy
  • python-telepathy is deprecated in favor of pygobject

This means that we will eventually need to drop python-telepathy,
and this is why we are porting the current telepathy-ofono from python-telepathy
to telepathy-qt. Phone-app highly depends on telepathy-qt already, so this move
seems to be pretty reasonable.

But we have one more problem to solve: telepathy-qt does not provide full support
for connection managers, which is currently a big blocker.
Fortunately an initial (and working) support for telepathy connection managers was
added by Matthias Gehre. [1]
He implemented many telepathy service side interfaces and they seem to work fine.

Based on his implementation I’ve started to develop a new telepathy-ofono [2] a few weeks ago.
Using the same idea of the existing interfaces, I added support for some other interfaces
needed by phone-app, like the call channel interface (Channel.Type.Call1), call content (Call1.Content),
mute (Call.Interface.Mute) and hold (Channel.Interface.Hold). [3]

There are some other missing interfaces that I will be adding support in the next
few days, like DTMF (Call1.Content.Interface.DTMF).
I hope I can finish implementing everything soon so I can submit a merge proposal upstream later next

Ok, looks like we are good telepathy wise, but we still need to talk to ofono. Fortunately there is a project called ofono-qt [4]
that helps doing this job.
Nothing is perfect and looks like it is a bit outdated. The ofono api changed a bit since the last
commit to the project, so I updated some methods and I also intend to propose a merge upstream soon. [5]

That’s it. The new telepathy-ofono based on telepathy-qt is on its way.

I will finish this post with a small TODO list so it’s easier to understand what’s still missing
and what will be done next.

– Fix eventual crashes when clients close call channels
– Check why objects paths are still exposed on dbus even after the channel is closed
– Implement DTMF interface

– implement DTMF support
– implement custom voicemail properties
– implement online status support




April 23, 2013 Posted by | Uncategorized | , , , | 2 Comments

GSoC final report

GSoC is about to end. The good news is that I was able to finish my project, and the bad news is that I would like to have more time to implement more features than I proposed.
All the patches are committed to kopete svn (and libmsn) and trunk (crazy) users can already test them.

As I did not have time to blog (aka ‘I’m lazy to do so’), I am going to report all the status at once in only one post.

Ink support:
The goal was to add a small box where the user could draw something. The ink support will only be compiled if you have libgif. Some people cannot receive inks because they are using old MSN protocols, so the ink button will only be shown if the user is able to receive it correctly.


Voice Clips Support:
It was added to kopete a new action, so it is possible to play and save received and sent voice clips directly from the chat window.



Proxy Support:
The account properties window received new entries, and now it is possible to use a HTTP or a Socks5 proxy.


Emoticons Support:
Three new options were added to better control the emoticons behavior.
1 – Do not send custom emoticons to other contacts.
2 – Do not show custom emoticons from other contacts.
3 – Block emoticons from a certain contact. (this one is in the last screenshot)
Contact List Improvements:

It is now possible to see contacts that deleted us from their lists. A red ‘x’ will be shown on the contact status icon.
Another improvement is that it is possible to refresh the avatar from any contact manually.

deleted usermenu

So that’s it. I would like to thank Google for the opportunity and specially my mentor Gustavo Boiko, who helped me a lot on my project. It was really amazing to be part of this program and I hope that my work can be useful to others.


August 19, 2009 Posted by | gsoc, kopete, libmsn, Uncategorized | 11 Comments