Subject: [xmpp] XMPP server2server and IM/presence questions

From: Itai Zapler <[email-masked]>
Date: Sun, 4 Jul 2010 16:27:49 +0300

Hi,

Our gateway is a product which enable conversions between IBM users and XMPP
external users (and others). We are now developing few features and there
are few points I could not find clear answers in the spec. Can anyone please
advise?

1.   Our gateway forms XMPP s2s connections with the external XMPP community
over TCP, authenticated by dialback.

During our gateway startup we create an outgoing TCP connection to an
external server. Does the XMPP external server must/should use this incoming
connection for sending all types of XMPP traffic - a sort of connection
re-use - or does the XMPP external, in some cases, create its own outgoing
s2s connection, ending up with two s2s connections: one incoming and one
outgoing?

2.   Questions about having more than a single s2s TCP connections between
the our gateway domain and the XMPP external domain:

Our gateway cluster can be comprised of multiple XMPP servers. We would like
each of our XMPP servers to open its own outgoing s2s connection to the XMPP
external community. Thus, if there are N servers in the cluster, there will
be N outgoing s2s connection from our domain to XMPP external domain. Each
connection will transfer a portion of the total XMPP traffic (presence, IM).

Is this multiple s2s connections behavior should/must be supported by XMPP
servers?

Is it possible to have more than a single incoming s2s TCP connection from
XMPP server as well?

In case we of using few outgoing connections, does it matter if an activity
between 2 users (like subscription) arriving from specific outgoing
connection, while other activity for same users (like notify or IM) arriving
from another outgoing connection?

3.   If a s2s TCP connection between our gateway and the XMPP external
communities is dropped. What is the expected XMPP external server behavior
with respect to: reconnection attempts, and to the state of in/out IM and
subscriptions from the disconnected our gateway community?

4.   What type of reconnect policy applies (number of attempts and
frequency)? What happens to the incoming and outgoing subscriptions state?
Does the XMPP external server should/must delete the subscriptions state?
For example, if an IBM user subscribed on a XMPP user presence, then the s2s
connection went down for 30 minutes, and then was restored, then if the XMPP
user changes its presence statues, will the XMPP external server send the
appropriate notification on that to the IBM user?

Or If the XMPP external server had deleted the subscription from IBM, is it
now expecting the IBM server to send a fresh subscribe request? What about
subscriptions of XMPP users on IBM users? are they should/must delete as
well after a s2s connection dropout?

5.   Does something should make a subscription to be deleted beside client
logout or user removal? (like a period of time without activity). In case
the connection between servers dropped, are the subscriptions should/must be
removed?

Best Regards,

Itai Zapler
IBM Software Group, Israel