[GSoC 2012][Collaboration] status, ideas

Matúš Kukan matus.kukan at gmail.com
Sat Jul 14 10:49:29 PDT 2012

Hello Eike, Michael, anybody interested,

This may be a little longer because it's still not clear how the
telepathy framework should work.

First, I've finally read something about telepathy[1] [2], so I now
understand some basics. That's great :-)
I came into it just by accident.

I've pushed 10 more patches, all because I wanted to do the last one -
inviting people into MUC.
What's new:
- Registering client handlers is executed with Listen button in
Collaborate dialog.
Then current document can accept new channel and receive files. (was

- ScDocFuncSend owns TeleConference (the channel) instead of
TeleManager and can directly communicate.
Thus each document can collaborate with different contact.

- Inviting contacts is possible.
This seem to work. I also played with .service and .client files
mentioned in tubes/README.
And it works! I was able to invite a contact and after accepting in VM
in empathy, Channel Dispatcher has executed .../soffice --calc as told
in org.freedesktop.Telepathy.Client.LibreOffice.service.
I was thinking that it could run .../soffice --accept-tube, so we know
why Libreoffice is started and do something clever ;-)
But this needs more work and ideas as mentioned later below.

Note: that by pressing Collaborate button we are now starting MUC
session. 'saveme' (sending a file) for example does not work then.
You can change that in contacts.cxx [3]. Maybe I should add another button but..
Also, what's not intuitive is that, when you select a contact and
press Collaborate, the account to which the contact belongs to is
connecting to liboroom at conference.jabber.org.
So not the contact you see in the dialog. Check in terminal.

What's wrong:
- TeleManager is never destroyed.
Because I don't know where.
And also where we want the code which is called after signaling from
tubes/ (when we receive a file or a new channel) ?
Or more importantly: what should happen ?
  - when someone wants to start a session with us, he sends us file
and then we can start collaborating on it ?
    There is no other case when someone sends us file ?
    I am not sure how to do this. Some class alive as the whole
./soffice is running could help.
    But still, after receiving new channel [4], I need to accept it,
receive the file and then bind the channel to that file ?
I guess I need to take a rest and think again later.

- I broke INTERCEPT=demo mode.

- Also unit test is broken

Should I start working on side-bar widget we can dock ? Any hints?
But I think that we need to improve receiving channels and files,
handle TeleManager properly and everything related.

Hope you can parse this, I am loosing myself,


[1] http://www.aosabook.org/en/telepathy.html
[2] http://telepathy.freedesktop.org/doc/book/
[3] http://cgit.freedesktop.org/libreoffice/core/tree/sc/source/ui/collab/contacts.cxx?h=feature/tubes#n253
[4] http://cgit.freedesktop.org/libreoffice/core/tree/tubes/source/manager.cxx?h=feature/tubes#n129

More information about the LibreOffice mailing list