Net::Jabber - Jabber Perl Library
Net::Jabber provides a Perl user with access to the Jabber Instant Messaging protocol. For more information about Jabber visit: http://www.jabber.org
Net::Jabber is a convenient tool to use for any perl scripts that would like to utilize the Jabber Instant Messaging protocol. While not a client in and of itself, it provides all of the necessary back-end functions to make a CGI client or command-line perl client feasible and easy to use. Net::Jabber is a wrapper around the rest of the official Net::Jabber::xxxxxx packages. There is an example script, client.pl, that provides you with an example a very simple Jabber client that logs a user in and displays any messages they receive. There is also an example transport script, transport.pl, that shows how to write a transport that gets a message, converts the entire message to uppercase, and send it back to the sender.
Net::Jabber::Client - this package contains the code needed to communicate with a Jabber server: login, wait for messages, send messages, and logout. It uses XML::Stream to read the stream from the server and based on what kind of tag it encounters it calls a function to handle the tag. Net::Jabber::Transport - this package contains the code needed to write a transport. A transport is a program tha handles the communication between a jabber server and some outside program or communications pacakge (IRC, talk, email, etc...) With this module you can write a full transport in just a few lines of Perl. It uses XML::Stream to communicate with its host server and based on what kind of tag it encounters it calls a function to handle the tag. Net::Jabber::Protocol - a collection of high-level functions that Client and transport use to make their lives easier. These functions are included through AUTOLOAD and delegates. Net::Jabber::JID - the Jabber IDs consist of three parts: user id, server, and resource. This module gives you access to those components without having to parse the string yourself. Net::Jabber::Message - everything needed to create and read a <message/> received from the server. Net::Jabber::Presence - everything needed to create and read a <presence/> received from the server. Net::Jabber::IQ - IQ is a wrapper around a number of modules that provide support for the various Info/Query namespaces that Jabber recognizes. Net::Jabber::Query - this module uses delegates and autoloading to provide access to all of the Query modules listed below. Net::Jabber::Query::Agent - provides access to the information about an agent that the server supports. Net::Jabber::Query::Agents - the list of agents, see agent above, that the server supports. Net::Jabber::Query::Auth - everything needed to authenticate a session to the server. Net::Jabber::Query::Fneg - feature negoation between the client and server. Net::Jabber::Query::Oob - support for out of bandwidth file transfers. Net::Jabber::Query::Register - everything needed to create a new Jabber account on the server. Net::Jabber::Query::Roster - everything needed to manage and query the server side Rosters. Net::Jabber::Query::Roster::Item - access to an item from the roster. Net::Jabber::Query::Time - exchange time information with the target recipient (either server or client). Net::Jabber::Query::Version - exchange version information with the target recipient (either server or client). Net::Jabber::X::Delay - specifies the delays that the message went through before begin delivered. Net::Jabber::X::Oob - out of bandwidth file transers. Net::Jabber::X::Roster - support for embedded roster items. Net::Jabber::X::Roster::Item - access to the item in a roster.
By Ryan Eatmon in May of 2000 for http://perl.jabber.org/
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.