HTTP Service Guide

The HTTP Service allows the HTTP transport to access various parts of a Jabber server as a client.




The service is broken down into main categories of functionality:  Public, Session, Client, Message, Presence, Roster, XML, and RPC.

All data formats are based on the file extensions used in the request:

Public

http://server:5280/public/

This is a restricted public HTTP gateway to send jabber messages and view presence of users on the server.

/public/presence/user.*

Offers the public presence for a user on the local server, will initially ask the user to allow this first.
/public/message/user.*
To send a message, use body, type, and subject in query to set data.

Session

http://server:5280/session.*

This is a flexible API to allow HTTP-based clients to interact w/ the server in stateless manner.

Send user=foo&pass=bar&res=foobar  to log in and create a session ID.  Send optional status=foo to set initial available presence, and roster=1 to ask for the roster to be sent.

All the client interfaces require a session ID and will return an error if an invalid sid is sent.  If no sid is sent, they will return a 401 and use the basic auth information to maintain a session.

Client

http://server:5280/client.*?sid=...

exit=Exit+Message will invalidate the sid and sign off the session.

By not sending a query string, it will return ALL incoming buffered packets

Message

http://server:5280/message.*?sid=...

will return all waiting messages and can be limited with optional filter of from=jid

Sending: to=jid&body=...&subject=...&type=...

Presence

http://server:5280/presence.*?sid=...

will return all waiting presence packets

by setting a from=user@host it will check the server-side proxy cache for that user's presence and return it

Set currentpresence with status=...&show=...

Send presence/subscriptions with to=jid&type=... and optional status=...

Roster

http://server:5280/roster.*?sid=...

returns the roster items

XML

This is a raw XML gateway, no server side processing is done.  It's intention is for clients to use as a failover to work around a firewall.
 
 

RPC

XML-RPC: YTBD