seanegan at gmail.com
Tue May 22 19:11:17 EDT 2007
Richard has added Google Talk as a protocol option, and it doesn't
look like anyone has removed it yet :)
At what point do we draw the line on special casing it? If we are now
offering Google Talk specifically to people who don't realize it uses
XMPP, and aren't likely to care, how closely should we try to map to
Specifically, XMPP defines five presence states: available, away,
extended away, do not distrub, and chatty. Pidgin allows you to set
all of them yourself. XMPP does not offer the concept of 'idle,'
although I think iChat has introduced one.
These presence states are vaguely defined; clients are pretty much
left to decide what to do with them.
Google Talk uses 'away' (defined as "The entity or resource is
temporarily away") as a timeless idle state, like MSNs. We use 'away'
as our "away" state, like AIM's. This is certainly a valid
interpretation of the spec, but differs from what we do.
Google Talk allows you to set only two states: available and busy
(XMPP's do-not-disturb). A Google Talk user, unaware of XMPP, might be
confused when the available statuses are no longer 'available' and
'busy,' but 'available,' 'away', 'do not disturb', 'extended away,'
The user might be similarly confused that it doesn't go 'idle' despite
having his settings set to allow that and that he doesn't see his idle
buddies as idle, but as away.
We can tell what buddies are using the Google Talk client at runtime.
Would it be reasonable to show buddies using that client as 'idle,' as
that's what 'away' means for those clients?
Additionally, it should be possible to define an idle state that only
gets set if you're connected to a Google Talk server. This would make
Google Talk users go 'idle' as other Google Talk users would expect.
I don't think it's possible to tell, at runtime, what statuses a
protocol supports, but if it were possible, would it make sense to
match Google Talk's? Further, if it's not possible at runtime, would
it be too much to add a new prpl to enable it?
More information about the Devel