See also pike and ppp.

specification for the upcoming jabber framework in pike

needed entries for the handler specification and possible types

  • to = Room|Person|Root (i.e. # in jid for rooms like psyced does)
  • for iq packets: xmlns of the first child if present (type distinction can be done in handler)
  • for presence and message: existence of certain children
  • for presence packets: type of presence (so you can handle normal presence and probe distinct from subscription operation)

iq error / result handling

Things like

<iq from='foo' to='bar' type='result' id='423af'/>

are perfectly valid XMPP. If 'bar' has sent a _request with _tag '423af', this packet can be recognized. If it does not remember sending a request with this tag, the request is most likely invalid and may be ignored.