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

Reply via email to