All,
I am chair of a standards body developing a standard for allowing
devices to maintain their presence on the network while in a low power
state. Here is more detail on what we are looking to accomplish.
http://www.ecma-international.org/memento/TC32-TG21.htm
http://www.ecma-international.org/memento/TC32-TG21-M.htm
I am looking for some information on XMPP/Jabber and how it behaves in
certain circumstances. I have read through the RFCs and
http://xmpp.org/protocols/ but couldn't find the specific answer to my
question so I figured I would ask here. Most of the info I found
pertained to layers above layer 3/4 and it is the behavior of XMPP @
layer 3/4 that is most interesting for us right now.
So here goes:
Assuming for a moment this IM/presence scenario and keeping in mind that
IM can be replaced by any service/resource provided by an XMPP extension
and the use case should remain valid. I also understand XMPP to
implement a SIP like protocol.
Use case: Julie has her IM client up on client A. Client A is connected
to server B. Jim is on client Z connected to Server X.
In todays world, if client A goes to sleep/standby after a period of
inactivity, her connection to Server B is severed. If Jim sends her a
chat request or other message, that message is either terminated @
server B or held in lieu of Julie bringing the system back into a
working S0 state. Lets say for a hypothetical, that when Julie's system
went to sleep, it no longer dropped off of the network (ie; it
maintained it's IP, etc). Julie is waiting for directions for the
restaraunt where she will be meeting Joe. Julie is off reading a book
and is to leave once she gets word from Joe with the location. Yeah,
there will be better ways to get this info to Julie but lets assume cell
phones with SMS haven't been invented yet. :-) After 20 minutes her
system (client A) enters sleep and the IM client drops its connection to
the server (Q.1 Is there a connection to drop?). There will now be a
delay between when the information arrives on Server B and when Julie
gets it because Julie needs to wake up client A in order for the IM
client to check in and retrieve the cache of backlogged messages in the
queue on server B. Q2. Does XMPP have a facility for Server B to send a
message to client A when all are on public IPs? Q3. When client A is
behind a NAT (ie; does XMPPs version of SIP have nat traversal)? So if
the message is truly pushed to client A from Server B, client A simply
needs to wake up to gather/respond the incoming message and the PC
sitting next to the reading Julie will alert her within a short timespan
that Joe has sent his message to her. Since client A never left the
network, IP routing is still possible and the TCP SYN is routable to the
waiting client (assume a route was available to redirect from the router
to the PC in the case of a NAT scenario).
Q5. The client and server communicate via SOAP or a SOAP like XML based
transactional protocol over TCP, correct?
Thanks in advance for any help you can provide in helping us understand
the mechanics of the protocols comprising XMPP.
Thanks,
Tom