Service Unavailable and Custom IQ Packets

I was trying to expirement with a custom IQ packet/provider using Smack clients and Messenger. The intent was to allow clients to do some custom application exchanges using IQ, similar to Jabber/RPC but way dumbed down.

In my first attempts it appears that Messenger is responding with a 503 to the requesting client, service unavailable.

I have a question on custom IQ packets and server behavior for routing. It would appear that a number of proposals (Time, Jabber/RPC) imply the use of IQ packets being used “client to client”.

However, the spec seems to say that the server should handle IQ requests on behalf of clients and not pass them on, or if they can’'t handle it return a service unavailable. This is apparently what Messenger is doing. (Another part of the spec seems to imply that a server should always pass on unknown stanzas to clients…)

I am most probably somewhat confused and could use some clarification. Thanks!

Hey Andrew,

You should include a resource in the JID when sending an IQ packet if you want the server to deliver the packet to the client. In other words, the server will trap the packet if the packet was sent to a bare JID but it will deliver it to the client if it was sent to a full JID.


– Gato

Oh, that would be this part…

  1. If the JID is of the form <user@domain/resource> and an available

resource matches the full JID, the recipient’'s server MUST

deliver the stanza to that resource.

THANKS! Worked like a champ.