Bug 64918 - Inconsistant behavior for messaging offline contacts on protocols that do not support it
Summary: Inconsistant behavior for messaging offline contacts on protocols that do not...
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-09-25 12:55 UTC by Casey Allen Shobe
Modified: 2003-11-02 10:46 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Casey Allen Shobe 2003-09-25 12:55:22 UTC
Version:           20030923 (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 3.3.1 
OS:          Linux

AIM does not allow you to open a chat window, giving a popup saying "This user is not reachable at the moment. Please try a protocol that supports offline sending, or wait until this user goes online.", but when you yourself are offline, it does not give any such error (also if you're stuck in connecting...).

Jabber allows you to open a chat window and try to send a message but then says "Please connect first." when you try to send.  If you are online and the remote party is not, you just get a message in the chat window saying "Your message could not be delivered: \"<message>\"".

MSN lets you send a message, but animates the Kopete icon indefinitely when you yourself are not online.  When you are online, but the remote party is not, a chat window will still open, but you also get a popup saying "The user <account> is currently not signed in. Messages will not be delivered.", and then it prints "<account> has left the chat (user disconnected).".

Yahoo allows you to send a message without error, whether you yourself are offline or online.

I can't test Gadu, and my IRC plugin is broken at the moment, but I'd imagine they're also wildly different.  These behaviours are all over the map!!  However Kopete strives to be consistant across protocols, so something should be done to remedy this (not to mention it would probably reduce lines of code.


I believe that for all protocols not supporting offline messaging, you should get a popup telling you a standard error message if either you or the remote party is offline (like AIM's behaviour if you're online).  There should also be a fallback to respond via a message in the chat window (like Jabber's behavior) in case the user has a chat window open from previous to either party being offline (no need for a popup in this case).
Comment 1 Stefan Gehn 2003-10-10 11:51:48 UTC
I think I already fixed a few cases: 
- opening chats only works if the account is online 
- icq always returns true on isReachable() so you can always message icq 
contacts 
- aim only returns true for isReachable() if the contact is online, that's a 
bit problematic for people that are online but don't show online but I don't 
want to work around bugs. 
Comment 2 rmedina 2003-10-28 02:36:57 UTC
I think Kopete controls the opening/closing of chat windows too much.

I would rather be allowed to open a chat even if the user is offline.  Sometimes I set my status as away so I can work on something without being bothered, but I want to know when a particular person logs on.  Having an open chat makes it easier because it shows a message in the chat when the contact logs on.

The other day I received a message from a friend-of-a-friend that I wanted to add as a contact.  I right-clicked on the tab and chose Add Contact from somewhere in the menu.  It didn't ask me what group to put the contact in and just made two entries on the root of my contact list.  Because I didn't need two of them I right-clicked one and chose Remove Contact, and it removed both contacts AND closed the chat.  That sucked.  If it had left my chat window alone I could have played with it some more, but since it was closed I don't know the person's screen name now.

In short, I think Kopete should allow the creation of a chat for anyone, and never force a chat to be closed, which is the behavior of the official AIM client (I only use the AIM protocol).
Comment 3 Jason Keirstead 2003-10-28 03:12:00 UTC
Subject: Re: [Kopete-devel]  Inconsistant behavior for messaging offline contacts on protocols that do not support it

> I would rather be allowed to open a chat even if the user is offline. 
> Sometimes I set my status as away so I can work on something without being
> bothered, but I want to know when a particular person logs on.  Having an
> open chat makes it easier because it shows a message in the chat when the
> contact logs on.

If the user was offline, then they wouldn't be a member of the chat. And so it would
not show in the chat window when they logged on, the only messages shown in there
are when people enter and leave the conversation. So I don't know what you mean by this.

PS: The functionality you are looking for can be gotten by going into Configure Sounds & Events
and clicking "More Options" at the bottom and checking "Popup" and "Passive Popup" for
the "User is Online" notification. This will pop up a nice little pop-up window when someone
comes online, without inturrupting your work.

> The other day I received a message from a friend-of-a-friend that I wanted
> to add as a contact.  I right-clicked on the tab and chose Add Contact from
> somewhere in the menu.  It didn't ask me what group to put the contact in
> and just made two entries on the root of my contact list. 

This would be a bug, it should only make one. But I think this has been fixed
already in CVS.

> Because I didn't need two of them I right-clicked one and chose Remove Contact, and it
> removed both contacts AND closed the chat.  

This is weird behavior. Even related to the above bug, I don't see why deleting a contact
should ever close a chat with them.

What protocol was it?


Comment 4 rmedina 2003-10-28 05:24:18 UTC
> If the user was offline, then they wouldn't be a member of the chat. And so it would 
> not show in the chat window when they logged on, the only messages shown in there 
> are when people enter and leave the conversation. So I don't know what you mean by this. 
>
> PS: The functionality you are looking for can be gotten by going into Configure Sounds & Events

When I'm chatting with someone and they sign off it says in the conversation "So-and-so changed status to offline" and if the sign back on while I still have that window open it says "So-and-so changed status to online"

I know about the popups, but I also have sounds associated with signons and signoffs so I disable events while away.  If I could only disable sounds while away, but not the other events I'd actually like that.

> This is weird behavior. Even related to the above bug, I don't see why deleting a contact 
> should ever close a chat with them. 
> 
> What protocol was it?

I only use AIM,  maybe it was something that was fixed already, but I don't have time to check it right now ( Working on a paper that's due tomorrow :( ).  If it still does it next time I have time to compile from cvs I'll submit a separate bug report.
Comment 5 Jason Keirstead 2003-10-28 05:34:23 UTC
Subject: Re: [Kopete-devel]  Inconsistant behavior for messaging offline contacts on protocols that do not support it

On October 28, 2003 12:24 am, rmedina@rochester.rr.com wrote:

> When I'm chatting with someone and they sign off it says in the
> conversation "So-and-so changed status to offline" and if the sign back on
> while I still have that window open it says "So-and-so changed status to
> online"

That's kind of unusual. It may work with OSCAR but I am not sure it
would with other protocols.

> I know about the popups, but I also have sounds associated with signons and
> signoffs so I disable events while away.  If I could only disable sounds
> while away, but not the other events I'd actually like that.

This isn't really possible with the current KNotify event structure, to do this we'd need
to pretty much make "Away Copies" of all the events and fire those when away.

> > This is weird behavior. Even related to the above bug, I don't see why
> > deleting a contact should ever close a chat with them.

> I only use AIM,  maybe it was something that was fixed already, but I don't
> have time to check it right now ( Working on a paper that's due tomorrow :(
> ).  If it still does it next time I have time to compile from cvs I'll
> submit a separate bug report.

Actually I just discovered this is a duplicate of bug #66577, and you can go
there to see my other comments.

Comment 6 Casey Allen Shobe 2003-10-28 06:25:10 UTC
Subject: Re: [Kopete-devel]  Inconsistant behavior for messaging offline contacts on protocols that do not support it

> > I know about the popups, but I also have sounds associated with signons
> > and signoffs so I disable events while away.  If I could only disable
> > sounds while away, but not the other events I'd actually like that.

I totally agree.  A sound or passive popup can be missed while up, and a popup 
is just damned annoying and can cause problems stealing focus and that mess.

> That's kind of unusual. It may work with OSCAR but I am not sure it
> would with other protocols.

It does.  OSCAR, Yahoo, MSN, ... All protocols should, except for things like 
SMS.

> > I only use AIM,  maybe it was something that was fixed already, but I
> > don't have time to check it right now ( Working on a paper that's due
> > tomorrow :( ).  If it still does it next time I have time to compile from
> > cvs I'll submit a separate bug report.

I can confirm that this is still a problem in CVS.  All protocols AFAIK.  At 
least OSCAR.

Comment 7 Stefan Gehn 2003-10-28 08:08:31 UTC
You guys should really rephrase what you want, these comments are all highly unreadable and most of the initial bugreport has been fixed anyway.
Comment 8 Martijn Klingens 2003-10-28 10:05:54 UTC
Subject: Re: [Kopete-devel]  Inconsistant behavior for messaging offline contacts on protocols that do not support it

On Tuesday 28 October 2003 03:12, Jason Keirstead wrote:
> This is weird behavior. Even related to the above bug, I don't see why
> deleting a contact should ever close a chat with them.

... because the KopeteContact is deleted :)

What should be done instead is move the contact to the temporary group until 
the chat closes. Ideally we add a special flag that simply hides the contact 
from the contact list if it holds this flag but still keeps the actual object 
around.

Comment 9 Stefan Gehn 2003-10-28 12:25:56 UTC
eewww, flags tend to be wrong at times ;)
Comment 10 Matt Rogers 2003-10-28 18:16:39 UTC
I fixed the yahoo case. 

IMO, all of this inconsistency seems to come from the fact that all the protocols don't seem to implement isReachable() correctly. (please note that i haven't looked at the code for all the protocols)
Comment 11 Casey Allen Shobe 2003-10-28 19:59:09 UTC
The other problem is that all of the protocols have their own error message, instead of calling centralized error codes which would reduce code and improve consistancy.  But I don't think this can be worked on until post-3.2 because of the string freeze.
Comment 12 Stefan Gehn 2003-10-28 19:59:38 UTC
isReachable() is prefectly fine for both AIM and ICQ as long as the contacts status is correct (that's a different bug though so this is the wrong place to discuss it).
Comment 13 Stefan Gehn 2003-10-28 20:00:51 UTC
> The other problem is that all of the protocols have their own error message,
> instead of calling centralized error codes
Not being able to open a chatwindow makes ugly messageboxes useless.
Comment 14 Casey Allen Shobe 2003-10-28 20:14:28 UTC
Subject: Re: [Kopete-devel]  Inconsistant behavior for messaging offline contacts on protocols that do not support it

On Tue, October 28 2003 14:00, Stefan Gehn wrote:
> > The other problem is that all of the protocols have their own error
> > message,
 instead of calling centralized error codes
>
> Not being able to open a chatwindow makes ugly messageboxes useless.

What does that have to do with it?

Comment 15 Stefan Gehn 2003-10-28 20:26:30 UTC
Easy, we don't NEED them ("useless" was the wrong word) if we disable the actions as long as you cannot chat to the contact anyway.
Comment 16 Casey Allen Shobe 2003-10-28 20:40:26 UTC
Subject: Re: [Kopete-devel]  Inconsistant behavior for messaging offline contacts on protocols that do not support it

On Tue, October 28 2003 14:26, Stefan Gehn wrote:
> Easy, we don't NEED them ("useless" was the wrong word) if we disable the
> actions as long as you cannot chat to the contact anyway.

I agree.

Comment 17 Matt Rogers 2003-11-02 07:05:29 UTC
Fix bug 64918. Here's the whole scoop:

When clicking on a metacontact, the isReachable function is called, and the
same error message that is given in oscar should now be given in all 
protocols. There is a catch however. If you have multiple protocol contacts
in a meta contact (i.e. for one meta contact you have a yahoo contact, an msn
contact, etc.) and you click on the little protocol icon to message them using
a certain protocol, isReachable() doesn't appear to be called and you still get
the same behavior.  This is a bug in libkopete and I will file a new bug report
for that shortly.

I consider this bug fixed. _Please_ do not reopen this bug unless I missed one.
(i.e. you have one contact per metacontact and don't get the appropriate error
message box). And if I missed one, I expect to be screamed and shouted at. :)


  M +4 -1      gadu/gaducontact.cpp   1.53
  M +2 -1      jabber/jabbercontact.cpp   1.159
  M +2 -2      jabber/jabbercontact.h   1.89
  M +8 -0      msn/msncontact.cpp   1.156
  M +1 -1      msn/msncontact.h   1.102
  M +8 -0      sms/smscontact.cpp   1.47
Comment 18 Olivier Goffart 2003-11-02 10:46:26 UTC
*personaly*  I still like to open chatwindow for offline people.
this might be usefulll for: -quickly see the last history message
-on MSN, to be sure this user didn't blocked us
-on MSN, to see his picture if it has been downloaded

anyway, i'm maybe too geek for kopete :-)
but that's just my feeling.