.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "AnyEvent::XMPP::Ext 3" .TH AnyEvent::XMPP::Ext 3 2024-07-13 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME AnyEvent::XMPP::Ext \- Extension baseclass and documentation .SH DESCRIPTION .IX Header "DESCRIPTION" This module also has documentation about the supported extensions and also is a base class for all extensions that can be added via the \f(CW\*(C`add_extension\*(C'\fR method of the classes that derive from AnyEvent::XMPP::Extendable. (That are: AnyEvent::XMPP::Client, AnyEvent::XMPP::Connection and AnyEvent::XMPP::IM::Connection) .SH Methods .IX Header "Methods" .IP \fBdisco_feature\fR 4 .IX Item "disco_feature" This method can be overwritten by the extension and should return a list of namespace URIs of the features that the extension enables. .SH "Supportet extensions" .IX Header "Supportet extensions" This is the list of supported XMPP extensions: .IP "XEP\-0004 \- Data Forms (Version 2.8)" 4 .IX Item "XEP-0004 - Data Forms (Version 2.8)" This extension handles data forms as described in XEP\-0004. AnyEvent::XMPP::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. .IP "XEP\-0030 \- Service Discovery (Version 2.3)" 4 .IX Item "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 AnyEvent::XMPP::Ext::Disco. .IP "XEP\-0054 \- vcard-temp (Version 1.1)" 4 .IX Item "XEP-0054 - vcard-temp (Version 1.1)" This extension allows the retrieval and storage of XMPP vcards as defined in XEP\-0054. It is implemented by AnyEvent::XMPP::Ext::VCard. .IP "XEP\-0066 \- Out of Band Data (Version 1.5)" 4 .IX Item "XEP-0066 - Out of Band Data (Version 1.5)" This extension allows to receive and send out of band data URLs and provides helper functions to handle jabber:x:oob data. See also AnyEvent::XMPP::Ext::OOB. .IP "XEP\-0077 \- In-Band Registration (Version 2.2)" 4 .IX Item "XEP-0077 - In-Band Registration (Version 2.2)" This extension lets you register new accounts "in-band". For details please take a look at AnyEvent::XMPP::Ext::Registration. .IP "XEP\-0078 \- Non-SASL Authentication (Version 2.3)" 4 .IX Item "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. .Sp So I de-analyzed the iq auth and now it just barfs the IQ set out on the stream with the username and the password. .Sp If you insist on XEP\-0078 behaviour enable the \f(CW\*(C`anal_iq_auth\*(C'\fR option when creating the stream. .Sp You can also completely disable iq auth, well, just see the documentation of AnyEvent::XMPP::Connection .IP "XEP\-0082 \- XMPP Date and Time Profiles (Version 1.0)" 4 .IX Item "XEP-0082 - XMPP Date and Time Profiles (Version 1.0)" Implemented some functions to deal with XMPP timestamps, see AnyEvent::XMPP::Util \&\f(CW\*(C`to_xmpp_time\*(C'\fR, \f(CW\*(C`to_xmpp_datetime\*(C'\fR, \f(CW\*(C`from_xmpp_datetime\*(C'\fR. .Sp They are meant as simple formatters for you, you will still need to handle timezone stuff and such yourself. .IP "XEP\-0086 \- Error Condition Mappings (Version 1.0)" 4 .IX Item "XEP-0086 - Error Condition Mappings (Version 1.0)" .Vb 1 \& "A mapping to enable legacy entities to correctly handle errors from XMPP\-aware entities." .Ve .Sp This extension will enable sending of the old error codes when generating a stanza error with for example the \f(CW\*(C`write_error_tag\*(C'\fR method of AnyEvent::XMPP::Writer. .Sp Also if only the old numeric codes are supplied the AnyEvent::XMPP::Error::Stanza class tries to map the numeric codes to the new error conditions if possible. .IP "XEP\-0091 \- Delayed Delivery (Version 1.3)" 4 .IX Item "XEP-0091 - Delayed Delivery (Version 1.3)" See also XEP\-0203 below. .IP "XEP\-0092 \- Software Version (Version 1.1)" 4 .IX Item "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 AnyEvent::XMPP::Ext::Version. .IP "XEP\-0114 \- Jabber Component Protocol (Version 1.5)" 4 .IX Item "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 AnyEvent::XMPP::Component and the example \&\f(CW\*(C`samples/simple_component\*(C'\fR. .IP "XEP\-0153 \- vCard-Based Avatars (Version 1.0)" 4 .IX Item "XEP-0153 - vCard-Based Avatars (Version 1.0)" This extension allows to store and retrive avatars from vcards. On top of that it will also signal others that you support avatars and that they might have changed. See AnyEvent::XMPP::Ext::VCard. .IP "XEP\-0199 \- XMPP Ping (Version 1.0)" 4 .IX Item "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 AnyEvent::XMPP::Ext::Ping extension implements a connection timeout mechanism based on this. .IP "XEP\-0203 \- Delayed Delivery (Version 1.0)" 4 .IX Item "XEP-0203 - Delayed Delivery (Version 1.0)" Both delayed delivery XEPs are supported and are implemented by AnyEvent::XMPP::IM::Delayed which is a super class of AnyEvent::XMPP::IM::Message and AnyEvent::XMPP::IM::Presence. .Sp If you need to fetch delay from stanzas you caught yourself in an event you can use a AnyEvent::XMPP::IM::Delayed object to parse/fetch the delay out of the AnyEvent::XMPP::Node. .Sp Use the functions described above in the XEP\-0082 item to decode the timestamps of delays. .SH AUTHOR .IX Header "AUTHOR" Robin Redeker, \f(CW\*(C`\*(C'\fR, JID: \f(CW\*(C`\*(C'\fR .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright 2007, 2008 Robin Redeker, all rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.