NAME
Net::XMPP2::Ext - Extension baseclass and documentation
DESCRIPTION
This module has documentation about the supported extensions and also is a base class for all extensions that can be added via the add_extension
method of the classes that derive from Net::XMPP2::Extendable. (That are: Net::XMPP2::Client, Net::XMPP2::Connection and Net::XMPP2::IM::Connection)
Basically add_extension
makes the extension an event receiver for all events that the extended object receives.
Supportet extensions
This is the list of supported XMPP extensions:
- XEP-0004 - Data Forms (Version 2.8)
-
This extension handles data forms as described in XEP-0004. Net::XMPP2::Ext::DataForm allows you to construct, receive and answer data forms. This is neccessary for all sorts of things in XMPP. For example XEP-0055 (Jabber Search) or also In-band registration.
- XEP-0030 - Service Discovery (Version 2.3)
-
This extension allows you to send service discovery requests and define a set of discoverable information. See also Net::XMPP2::Ext::Disco.
- XEP-0066 - Out of Band Data (Version 1.5)
-
This extension allows to receive and send out of band data URLs and provides helperfunctions to handle jabber:x:oob data. See also Net::XMPP2::Ext::OOB.
- XEP-0077 - In-Band Registration (Version 2.2)
-
This extension lets you register new accounts "in-band". For details please take a look at Net::XMPP2::Ext::Registration.
- XEP-0078 - Non-SASL Authentication (Version 2.3)
-
After lots of sweat and curses I implemented finally iq auth. Unfortunately the XEP-0078 specifies things that are not implemented, in fact the only server that worked was openfire and psyced.org.
So I de-analized the iq auth and now it just barfs the IQ set out on the stream with the username and the password.
If you insist on XEP-0078 behaviour enable the
anal_iq_auth
option when creating the stream.You can also completly disable iq auth, well, just see the documentation of Net::XMPP2::Connection
- XEP-0082 - XMPP Date and Time Profiles (Version 1.0)
-
Implemented some functions to deal with XMPP timestamps, see Net::XMPP2::Util
to_xmpp_time
,to_xmpp_datetime
,from_xmpp_datetime
.They are meant as simple formatters for you, you will still need to handle timezone stuff and such yourself.
- XEP-0086 - Error Condition Mappings (Version 1.0)
-
"A mapping to enable legacy entities to correctly handle errors from XMPP-aware entities."
This extension will enable sending of the old error codes when generating a stanza error with for example the
write_error_tag
method of Net::XMPP2::Writer.Also if only the old numeric codes are supplied the Net::XMPP2::Error::Stanza class tries to map the numeric codes to the new error conditions if possible.
- XEP-0091 - Delayed Delivery (Version 1.3)
-
See also XEP-0203 below.
- XEP-0092 - Software Version (Version 1.1)
-
The ability to answer to software version, name and operating system requests and being able to send such requests is implemented in Net::XMPP2::Ext::Version.
- XEP-0114 - Jabber Component Protocol (Version 1.5)
-
This extension allows you to connect to a server as a component and makes it possible to implement services like pubsub, muc, or whatever you can imagine (even gateways). See documentation of Net::XMPP2::Component and the example
samples/simple_component
. - XEP-0199 - XMPP Ping (Version 1.0)
-
You can send ping requests to other entities and also are able to reply to them. On top of that the Net::XMPP2::Ext::Ping extension implements a connection timeout mechanism based on this.
- XEP-0203 - Delayed Delivery (Version 1.0)
-
Both delayed delivery XEPs are supported and are implemented by Net::XMPP2::IM::Delayed which is a super class of Net::XMPP2::IM::Message and Net::XMPP2::IM::Presence.
If you need to fetch delay from stanzas you caught yourself in an event you can use a Net::XMPP2::IM::Delayed object to parse/fetch the delay out of the Net::XMPP2::Node.
Use the functions described above in the XEP-0082 item to decode the timestamps of delays.
AUTHOR
Robin Redeker, <elmex at ta-sa.org>
, JID: <elmex at jabber.org>
COPYRIGHT & LICENSE
Copyright 2007 Robin Redeker, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.