[jdev] sending presence to specific transport

Chris Chen ckchris at echomine.com
Mon May 21 11:37:10 CDT 2007


See below for comments:

> Then I request registration information
> <iq to="icq.my.domain.com" from="ds at my.domain.com/Feridian"
> id="icq1" type="get"><query xmlns="jabber:iq:register"/></iq>
> <iq from='icq.my.domain.com' to='ds at my.domain.com/Feridian'
> id='icq1' type='result'><query  
> xmlns='jabber:iq:register'><instructions>Please
> type your ICQ user id number into the username field and your
> password.</instructions><username>123456789</username><password/ 
> ><registered/></query></iq>

This shows that your transport account has the necessary registration  
information.  Double check to make sure that the account username and  
password that you stored is correct.

> And finally I'm trying to send presence (login into) transport:
> <presence to="icq.my.domain.com" from="ds at my.domain.com/Feridian"
> id="icq1"><status>Online</status></presence>
> but I don't get any response!
> In case if I send broadcast presence packet, transport responds  
> with online
> status.
> What do I miss here?

This is how I think XMPP transports work:

XMPP Presence                         Transport Presence
Online                                           Online
Offline                                           Offline
Away                                             Away
......                                                 ........

When you set your global presence (ie. sending "available" presence  
for your xmpp account), xmpp server will normally log you into all  
the registered transports.  From what I remember, the gateways'  
presence statuses are in sync with your xmpp account.  I don't  
believe that gateway transports can have statuses that are different  
from your XMPP account status.  However, I am not quite so sure about  

It's quite possible that gateway components might add support to  
respond to direct queries such as the one you sent above.  But given  
that you didn't get any acknowledgements, I take it that the ICQ  
transport component didn't understand your query and silently ignored  
it.  If you want, maybe you can take a look at the transport's source  
code to see if status change queries are supported.


More information about the JDev mailing list