Integrating IM applications - OFI

Matt Rogers 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
> http://ofi.hakore.com/ofi-0.1.tar.gz
>
> Cheers,
> THrull

Your proposal is interesting. Some comments:

General 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:

RETURN: 
	    (DBUS_TYPE_BOOLEAN success = TRUE,
             DBUS_TYPE_STRING ofiPresence,
	     DBUS_TYPE_STRING description,
	     DBUS_TYPE_STRING icon_path)
    OR 
	    (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 
'Hidden'

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.

Thanks,
Matt



More information about the xdg mailing list