GNOME Bugzilla – Bug 636404
When the user is busy, the status should be enforced
Last modified: 2018-05-22 14:28:47 UTC
This report was originally filled at: https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/668833 There are three main online presence statuses: available, away and busy. The first is obvious, the second should hopefully also be managed automatically by the software, and the third one... The third one is at least a little bit controversial, but i think we can sum its purpose this way: you have for whatever reason your client and connection loaded (it does automatically starts on login or whatever), but you don't want to be bothered Programs should shield the user from having to manage manually these things, so they shouldn't care about the implementation difference in these... Unfortunately, due to technical limitations in the library or political decision from the companies managing the serves, not every service may supply all the relevant statuses... Let's look at the purpose of the statuses: Available: you want to let all the other contacts that may need/want to address you that you're online Away: you want to warn all the contacts that you may not be able to answer because you are right away Busy: you want to let everybody know that you don't want to be contacted right now (except maybe for VERY important reasons, the ones that tipically require that you shouldn't rely on a IM service to deliver), and if you're online shouldn't matter to them. Right now, empathy as a problem concerning the busy status: when the user selects this status, his priority is clearly that of NOT being contacted, but instead, if the service doesn't support a busy status (i'm thinking of facebook right now) he's displayed as available (and he doesn't even know about it, because the GUI doesn't tell you that!) This means that it's instead very likely that he will we contacted, and that's the thing the user didn't want on the first place... To solve this, by giving more importance to the untraceability of the user i think we should change our fallbacks and, when we know that a service won't support a certain presence status (busy in this case) we should fallback to: busy |→invisible ...the others won't be able to contact you... too bad, but that's a lesser evil than the other way around |→→→offline ...if invisible isn't supported either, not being able to see the others that are online is again way less important than displaying yourself as available (another problem is that you'll have to wait 2 seconds to connect again when you'll want to be available again, but this is really an issue of meager importance) Obviously the fallback should act on a per-protocol basis, and if (but i doubt ) it's needed, a config flag in the preferences could be added to revert the behaviour to the old default This may be seen as a limitation of facebook, but originally it made sense: facebook chat was available only on the web site... and if you were "socializing" on the web site, you were expected to be available (or momentarily away) for others... Obviously now, with the xmpp service available to IM client that are always running in the background, this has become an issue, and even if it could be considered a facebook issue, it's still a defect we can fix
I tested this problem myself using one facebook account at facebook.com and another accessing facebook via empathy. When I set the empathy account as available, it appeared available to the user at facebook.com When I set the empathy account as busy, it appeared available to the user at facebook.com When I set the empathy account as invisible, it appeared available to the user at facebook.com When I set the empathy account as away, it appeared available to the user at facebook.com When I set the empathy account as offline, only then did it not appear for the user at facebook.com This shows that the account accessing facebook from facebook.com cannot see any of the effects of the empathy status icons.
Facebook's XMPP server documentation <https://developers.facebook.com/docs/chat/> says: “Setting the user idle using a show element in presence stanzas (there will be a delay before the user appears idle)” I've looked at some protocol logs, and they agree: setting yourself to Away in Empathy should show up on facebook.com as idle, but sometimes it takes a while to appear. The documentation agrees that neither Busy nor Invisible are expected to work. Gabble could have a special case for chat.facebook.com which disable the "busy" (and "chatty" ☺) presences on SimplePresence. It already correctly says that "invisible" is not supported, and MC falls back to "busy" (but see <https://bugs.freedesktop.org/show_bug.cgi?id=38366>). It could do the same trick of falling back from Busy to Away—in fact, I've checked, and it already does. So I think we should put a hack into Gabble: I've filed https://bugs.freedesktop.org/show_bug.cgi?id=39252 for that.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/empathy/issues/305.