[Pidgin] #11819: XMPP presence and chatstatus with bare JIDs

Pidgin trac at pidgin.im
Mon May 10 11:23:17 EDT 2010


#11819: XMPP presence and chatstatus with bare JIDs
-------------------------------------------------------+--------------------
 Reporter:  dimakcgs                                   |     Owner:  deryni
     Type:  defect                                     |    Status:  new   
Component:  XMPP                                       |   Version:  2.6.6 
 Keywords:  XMPP presence aggregation JID CommuniGate  |  
-------------------------------------------------------+--------------------
 When the Pidgin client starts an IM chat to a client connected to
 CommuniGate Pro server, it sends out "typing" messages (<composing/>,
 <paused />, etc. in the "http://jabber.org/protocol/chatstates"
 namespace). But as soon as the client connected via CommuniGate Pro sends
 any <message> stanza back, Pidgin stops sending out these "chatstates"
 messages, EVEN if the received <message /> stanza contains some
 "chatstates" data, indicating the remote client support for this protocol.

 CommuniGate Pro developers believe that the reason for this may be
 following: the libpurlpe  library keeps the "capability" information about
 remote contact account, and its resources
 (clients currently connected  to that remote contact account). It builds a
 new element in its internal storage, and updates it when needed. For
 example, if it receives a message stanza with
 "http://jabber.org/protocol/chatstates" data from some remote resource, it
 marks the resource element internally
 as supporting this "chatstates" feature.

 When a remote client is connected via CommuniGate Pro, it does not send
 its presence information outside. Instead, the CommuniGate Pro server
 aggregates all that information from all clients,
 and sends it out in the aggregated form. As a result, Pidgin gets all the
 <presence > stanza with a bare JID (without a resource specification)
 from="user at domain" attribute, not from="user at domain/client-resource"
 attribute.

 It looks like in this case, libpurple does not build the internal
 "resource" elements in its database, and thus it cannot process such
 clients correctly. In this case - stops sending the "chatstate" messages
 altogether.

 It would be excellent if Pidgin/libpurple is prepared to handle this
 situation.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/11819>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list