Setting status to busy in GTalk

Hi all,

I have a strange problem. When I set my status to 'away' Gtalk users see me as 'away'. However, when I set my status to 'Busy' in the same exact way, (by setting the <show> tag to dnd), other Gtalk users see me online instead of busy.

I am using Openfire 3.6.4 and Kraken Plugin 1.1.2

 

Any help would be greatly appreciated.

 

 

Re: Setting status to busy in GTalk

Hi,

I tried to reproduce this, but it works for me. What client are you using? Can you reproduce this with other clients?

Regards,

Sven

Re: Setting status to busy in GTalk

Hi Sven,

Thanks for your reply :)

I am using the Smack API from the client side. Do you suggest any other client?

 

 

Regards

Chris

 

 

Re: Setting status to busy in GTalk

Hi Chris,

I think that you should do some further tests to find out where the problem really is. First you should try to reproduce the problem with another XMPP client. If you write your own client with Smack, the error could be inside your program. If you can reproduce the error with other clients, you know that its not your software.

What I did to check was this:

1. Created a GTalk accout for testing and connected to it with Gajim. Gajim provides an XML view where you can see the raw XMPP messages travelling in and out. Use this to look at the XML data.

2. Activated the GMail Gateway on my Openfire server and created a GTalk registration to my primary GTalk account. Then connected to the Openfire Server with Gajim too and opened the XML view for this account too.

3. Set the status of the connection to the Openfire server to DND. I could see: A 'dnd' presence message beeing sent from the client to the Openfire server, and a 'dnd' message arriving on the test account.

4. Disconnected Gajim from the GTalk test account and logged into the test account with mail.google.com. You can't see the XML messages then, but the google webinterface also showed the 'dnd' status correctly.

The only interesting thing I noticed was that when I tried this first it did not work, switching from Away to DND caused the GMail account to see me as Available again, but this happened only once, I don't know if I had a mistake in my test-setup there, or if the GTalk Server did change the presence message. I tried multiple times to reproduce this behaviour, but every further time I tested this it worked without problems.

Regards,

Sven

Re: Setting status to busy in GTalk

Will take your suggestions and do some further testing.

 

Thanks very much for now ... will let you know the results :)

Re: Setting status to busy in GTalk

Hello again Sven,

Ok, a very fast first testing ...

OpenFire Server name: chris-pc

Account 1 (chris@chris-pc) with an associated gmail handle 'krosmicallef@gmail.com' .

Account 2 (claudio@chris-pc) with an associated gmail handle 'cjmicallef@gmail.com' .

 

Now the scenario ...

Case 1

Account 1 user changes his status from 'Online' to 'Away'

Account 2 logs:

Packet Reader ----
Presence: <presence id="LAdx8-112" to="claudio@chris-pc" from="chris@chris-pc/Smack"><status>Away</status><priority>24</priority><show>away</show></presence>
Packet Reader ----
Presence: <presence to="claudio@chris-pc" from="krosmicallef\40gmail.com@gtalk.chris-pc"><show>away</show></presence>

Case 2

Account 1 user changes his status from 'Away' to 'Busy' (dnd)

Account 2 logs:

Packet Reader ----
Presence: <presence id="LAdx8-114" to="claudio@chris-pc" from="chris@chris-pc/Smack"><status>Do Not Disturb</status><priority>24</priority><show>dnd</show></presence>
Packet Reader ----
Presence: <presence to="claudio@chris-pc" from="krosmicallef\40gmail.com@gtalk.chris-pc"></presence>

Aw you can see, for  the first case, for the gmail account, the status is lost, however, we stil receive the '<show>away</show>' tag which enables me to change the status to 'away'.

For the second case, it is even worst since, a blank presence is received.

 

I will continue trying things ... maybe this might shed some light here ....

 

Re: Setting status to busy in GTalk

Its me once more ...

 

Ok tried a this test and the problem persists ...

1) Pidgin Client

User chris@chris-pc with krosmicallef@gmail.com associated to it.

 

2) Spark Client

User chris@chris-pc with cjmicallef@gmail.com associated to it.

 

Same exact problem when I change the status to 'busy' from both clients. i.e. 'Away' works ...  'Dnd' doesn't.

Perhaps this has something to do with my kraken configuration?

 

 

 

Re: Setting status to busy in GTalk

Ok finally I made some progress ... got it woirking flawlessly for Gtalk. Apparently the bug is in the Smack library after all. It is described in detail here: http://www.igniterealtime.org/community/thread/33278. To put a long story short, it is a bug in handling Gtalk mail notifications that results in the statuses being lost.

Hence, all I had to do is 'disable email notifications' (since I do not need it) for Gtalk from the Kraken Plugin ... and all worked perfectly :-)

However I still have the problem for MSN. (See first post).

 

From my logs I have noticed that whenever I change the status,  for some weird reason two presence messages are sent.


Example:

Presence: <presence to="claudio@chris-pc" from="msn.chris-pc"><status>Do Not Disturb</status><show>dnd</show></presence>
Presence: <presence to="claudio@chris-pc" from="msn.chris-pc"><status>Do Not Disturb</status></presence>

For this reason there is that sort of 'blink' with the correct status being set than going back to 'online'.

 

 

Re: Setting status to busy in GTalk & MSN

Ok, finally I found some time to dig deeper into this problem ....


Download the source of Smack (the client I am using) and started debugging. For MSN, Smack was not the culprit. Infact I have seen that actual XML Strings being sent and received at socket level. Indeed only one message was being sent (and not 3 as the receiver was receiving).

Guess what? I tried the new 1.1.3beta ... and .... IT WORKS! :)

 

So I guess we can close this one too.