Nathan Fritz wrote:
On Sep 25, 2009, at 4:33 AM, Paul Witty <[email protected]> wrote:
Is there documented anywhere the rules of how presence information
works with components? e.g. can components subscribe to clients'
presence information, or send presence probes etc. Likewise, can a
component publish presence, and clients subscribe to its presence,
but including things like publishing presence for
component.xmppserver.com, and clients getting that presence for
[email protected]?
A component is just like a server jid. Presence can be routed to and
from, subscriptions can be made. Probes will likely need to be sent
and are likely to be recieved. There is no session management, so
you'll have to implement roster storage yourself or fake it.
And yes, you can send and recieve from any user and resource for your
component's domain.
If you look at a transport component, they do all of these things.
As a bit of background on what I'm trying to do, I'm implementing a SIP
to XMPP/Jingle gateway. The gateway is connected to the XMPP server as
a component (e.g. sipgw.xmppserver.com) and so the Jingle client can
make a call to [email protected], which then routes this to
sip://1.2.3.4. However, in the other direction, a SIP call to
sip://p...@sipgw can be routed by the SIP gateway to the JID
[email protected], but without presence information this is
insufficient to make a Jingle call.
The two solutions to this I can see is either for the SIP gateway to
have privileges which allow it access to presence information for
clients registered to its server through sending a presence probe for
any user (but which I assume is not supported), or to have the gateway
send a presence subscription request each time a call comes to a
previously uncalled user, and maintaining the roster, which is clunky
both on the gateway side and for the user experience.
--
Paul