Subject: Presence Type from two different clients
Hi,
I started using agsxmpp about a year back. Now when I revisit the code I wrote,I have a peculiar problem. So here is the situation ...
I log in using my client based on agxmpp, where MyFriend has already logged in from two different clients : ClientA with Showtype "Available" and ClientB with Showtype "Away"
here is what I mean : (from ClientA)
(from ClientB)
Now The roster will update the Friend's status as well as the Showtype twice, and will show the later one on the form as the "actual" status to me. Now for example if MyFriend logs out from ClientB (presence type unavailable), he will be removed from my roster(acc to my chat client's logic). But he is online via ClientA.. What sould be done to contain this problem. This is a headache specially with Google Chat, where they send Presence.unavailable to invisible mode. So if the user gets invisible(which I dont like too), and remains online from another client, he is considered offline!
Hope you understand the situation
Thanks.
I started using agsxmpp about a year back. Now when I revisit the code I wrote,I have a peculiar problem. So here is the situation ...
I log in using my client based on agxmpp, where MyFriend has already logged in from two different clients : ClientA with Showtype "Available" and ClientB with Showtype "Away"
here is what I mean : (from ClientA)
{<presence xmlns="jabber:client" from="abc@xyz.com/ClientA.v1012121" to="me@myserver.com/Myclient"><priority>24</priority><c xmlns="http://jabber.org/protocol/caps" ver="1.0.0.104" node="http://www.xyz.com/xmpp/client/caps" ext="share-v1 voice-v1" /><x xmlns="jabber:x:delay" stamp="20091108T07:11:24" /><status /><x xmlns="vcard-temp:x:update"><photo>246525425245245245245243525245245245</photo></x></presence>}
(from ClientB)
{<presence xmlns="jabber:client" from="abc@xyz.com/ClientB.v301621" to="me@myserver.com/Myclient"><priority>24</priority><c xmlns="http://jabber.org/protocol/caps" ver="1.0.0.104" node="http://www.xyz.com/xmpp/client/caps" ext="share-v1 voice-v1" /><x xmlns="jabber:x:delay" stamp="20091108T07:11:26" /><status /><x xmlns="vcard-temp:x:update"><photo>246525425245245245245243525245245245</photo></x></presence>}
Now The roster will update the Friend's status as well as the Showtype twice, and will show the later one on the form as the "actual" status to me. Now for example if MyFriend logs out from ClientB (presence type unavailable), he will be removed from my roster(acc to my chat client's logic). But he is online via ClientA.. What sould be done to contain this problem. This is a headache specially with Google Chat, where they send Presence.unavailable to invisible mode. So if the user gets invisible(which I dont like too), and remains online from another client, he is considered offline!
Hope you understand the situation

Thanks.