[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