Integrating IM applications - OFI
matt at matt.rogers.name
Thu Jan 13 19:00:39 EET 2005
On Thursday 13 January 2005 10:02 am, Igor Popik wrote:
> Hi everyone,
> I would like to present OFI project - org.freedesktop.IM interface
> proposal for Instant Messenging applications which uses D-BUS as a
> communication platform. Everybody knows that *nix has a great number of
> different IM desktop applications with support of different IM protocols
> - but there is lack of integration with other desktop components (web
> browsers, mail apps).
> The goal of OFI is to provide interface standarization not a complex
> solution (however sample implementation and library is provided).
> This only a proposal of interface standard. It is simple, but It is
> working: we managed to to implement it in Gossip, Mozilla and GNOME and
> our IM app GNU Gadu - http://www.gnugadu.org.
> We are aware of Galago project. But in our opinion such integration
> should be done in ligth-weight manner :-)
> Some links:
> http://ofi.hakore.com/ - Project page
> http://ofi.hakore.com/ README.OFI - document describing the thing,
> please read it before you will flame us :-)
> Some code:
> svn co svn://svn.hakore.com/ofi
Your proposal is interesting. Some comments:
You leave out several protocols that the two major IM clients have support
for. Those protocols are Yahoo,MSN, and Groupwise, to name a few. I would
imagine they would be added to the spec like so:
Protocol | URI
Yahoo | yahoo:
MSN | msn:
Groupwise | groupwise:
and we'd probably also have to add more URIs for any additional protocols
that would need to be supported.
Also, in all org.freedesktop.im functions, i feel that the following should
be returned, although i'm not fully aware of how DBUS works, but this seems
better, protocol wise. For example:
(DBUS_TYPE_BOOLEAN success = TRUE,
(DBUS_TYPE_BOOLEAN result) = FALSE
IOW, there should always be a status code that indicates the success of the
operation as the first part of the returned result. Ayways, i could be
completely wrong about this, but it just seems better from a protocol
point of view.
org.freedesktop.im.getPresence( contactURI ):
unless it's planned to get status information for yourself, the 'Hidden'
value in the standard ofi presence strings is pretty pointless since the
client you're getting the information from is not going to know if they're
We should only get one type of status string. While you can be online and
away, it makes no sense to send both. All the statuses are pretty much
mutually exclusive since Away applies that are one is also online.
It's a nice lightweight interface, but i think there's room for things that
can and should be added, such as photos/buddy icons and things of that
nature, but it's a decent start.
More information about the xdg