[Telepathy] Abiword's Collab plugin with Telepathy

Alban Crequy alban.crequy at collabora.co.uk
Thu Apr 10 07:47:30 PDT 2008


The Abiword 2.6.x stable releases have a new experimental collaboration
plugin ("Collab"):

> * A new experimental collaboration plugin, allowing users to
> collaboratively work on the same document in real-time. There are
> currently 3 communication backends supported: an XMPP based one (only
> available on Unix systems, and it could use some love), a pure TCP/IP
> based one and one that integrates with the One Laptop Per Child Sugar
> interface. (...)

The Telepathy project is interested to have Collab well integrated with
Telepathy. The advantage for users would be to avoid to register their
IM details in each applications that have collaboration features.
Collab would reuse the Telepathy connection to the server through the
Telepathy D-Bus interface.

I have some use cases to discuss. Please let me know which ones you
think are pertinent or if I miss some point.

1. Alice writes an Abiword document and wants to share it with Bob. She
clicks on the "Share document" checkbox and selects Bob in her contact
list. Bob is online and receives the proposition from Alice in his IM
software. If he accepts, Abiword is started automatically with the
Alice's document.

2. Bob was editing a document with 10 other persons yesterday. He want
to continue now but he does not remember who was hosting the document.
He browses the available documents from his contacts and selects the
right one. Alice receives the request from Bob and accepts it. Abiword
opens the Alice's document.

3. Bob requests the Alice's document but Alice does not have to accept
since she already accepted yesterday that Bob can edit this document.

Telepathy tubes can handle the use case 1.

IFAIK the use case 2 is not possible with the current spec. We
obviously don't want to establish a tube with every contacts just in
case they have a Abiword document to share. We need to publish some
kind of capabilities to mean "this contact supports the Collab protocol"
and some presence information to mean "this contact can share this set
of Abiword documents with you".

There is capabilities in the spec (I don't know how it is implemented)
but there is no way to publish presence information to mean "I can
share this specific document with you".

In XMPP, Telepathy's tubes use this spec: 

The XMPP Collab backend connects itself to the Jabber server and sends
Collab data in <message> stanza encoded in base64 (visible if the other
end uses an jabber client instead of Abiword). So if one contact uses
tubes and the other contact uses the XMPP backend, it will not work.

The Sugar Collab backend (used by OLPC) already uses Telepathy
D-Bus tubes. Abiword connects to the tube D-Bus address given by the
OLPC Write activity in Python:
The tube D-Bus address are given to Abiword with invoke_cmd "joinTube",
"offerTube" or "buddyJoined" from the Write activity. The Sugar Collab
backend itself does not use the Telepathy D-Bus spec.

If needed, Abiword can use Empathy's widgets to display the contact list
with libempathy-gtk. Abiword and the Collab plugins are available under
GPLv2+. Empathy depends on libmissioncontrol which is v2 only.
Correct me if I am wrong, but the Abiword team does not want to depend
on something (L)GPL v2only. But in the future, libmissioncontrol will
not be needed and Empathy will use the new telepathy-glib and
libmcclient that are LGPLv2.1-or-later. Xavier is actively working on

Alban Crequy

More information about the Telepathy mailing list