File Coverage

blib/lib/AnyEvent/XMPP/Ext.pm
Criterion Covered Total %
statement 12 14 85.7
branch n/a
condition n/a
subroutine 4 6 66.6
pod 1 2 50.0
total 17 22 77.2


line stmt bran cond sub pod time code
1             package AnyEvent::XMPP::Ext;
2 1     1   7 no warnings;
  1         2  
  1         48  
3 1     1   5 use strict;
  1         2  
  1         32  
4 1     1   5 use AnyEvent::XMPP::Namespaces qw/xmpp_ns/;
  1         2  
  1         50  
5              
6 1     1   5 use base qw/Object::Event/;
  1         3  
  1         990  
7              
8             =head1 NAME
9              
10             AnyEvent::XMPP::Ext - Extension baseclass and documentation
11              
12             =head1 DESCRIPTION
13              
14             This module also has documentation about the supported extensions
15             and also is a base class for all extensions that can be added
16             via the C method of the classes that derive from
17             L. (That are: L,
18             L and L)
19              
20             =head1 Methods
21              
22             =over 4
23              
24             =item B
25              
26             This method can be overwritten by the extension and should return
27             a list of namespace URIs of the features that the extension enables.
28              
29             =cut
30              
31 0     0 1   sub disco_feature {
32              
33             }
34              
35             sub disco_feature_standard {
36             (
37 0     0 0   xmpp_ns ('data_form'),
38             )
39             }
40              
41              
42             =back
43              
44             =head1 Supportet extensions
45              
46             This is the list of supported XMPP extensions:
47              
48             =over 4
49              
50             =item XEP-0004 - Data Forms (Version 2.8)
51              
52             This extension handles data forms as described in XEP-0004.
53             L allows you to construct, receive and
54             answer data forms. This is neccessary for all sorts of things in XMPP.
55             For example XEP-0055 (Jabber Search) or also In-band registration.
56              
57             =item XEP-0030 - Service Discovery (Version 2.3)
58              
59             This extension allows you to send service discovery requests and
60             define a set of discoverable information. See also L.
61              
62             =item XEP-0054 - vcard-temp (Version 1.1)
63              
64             This extension allows the retrieval and storage of XMPP vcards
65             as defined in XEP-0054. It is implemented by L.
66              
67             =item XEP-0066 - Out of Band Data (Version 1.5)
68              
69             This extension allows to receive and send out of band data URLs
70             and provides helper functions to handle jabber:x:oob data.
71             See also L.
72              
73             =item XEP-0077 - In-Band Registration (Version 2.2)
74              
75             This extension lets you register new accounts "in-band".
76             For details please take a look at L.
77              
78             =item XEP-0078 - Non-SASL Authentication (Version 2.3)
79              
80             After lots of sweat and curses I implemented finally iq auth.
81             Unfortunately the XEP-0078 specifies things that are not implemented,
82             in fact the only server that worked was openfire and psyced.org.
83              
84             So I de-analyzed the iq auth and now it just barfs the IQ set out
85             on the stream with the username and the password.
86              
87             If you insist on XEP-0078 behaviour enable the C option
88             when creating the stream.
89              
90             You can also completely disable iq auth, well, just see the documentation
91             of L
92              
93             =item XEP-0082 - XMPP Date and Time Profiles (Version 1.0)
94              
95             Implemented some functions to deal with XMPP timestamps, see L
96             C, C, C.
97              
98             They are meant as simple formatters for you, you will still need to handle timezone
99             stuff and such yourself.
100              
101             =item XEP-0086 - Error Condition Mappings (Version 1.0)
102              
103             "A mapping to enable legacy entities to correctly handle errors from XMPP-aware entities."
104              
105             This extension will enable sending of the old error codes when generating a stanza
106             error with for example the C method of L.
107              
108             Also if only the old numeric codes are supplied the L
109             class tries to map the numeric codes to the new error conditions if possible.
110              
111             =item XEP-0091 - Delayed Delivery (Version 1.3)
112              
113             See also XEP-0203 below.
114              
115             =item XEP-0092 - Software Version (Version 1.1)
116              
117             The ability to answer to software version, name and operating system requests
118             and being able to send such requests is implemented in L.
119              
120             =item XEP-0114 - Jabber Component Protocol (Version 1.5)
121              
122             This extension allows you to connect to a server as a component
123             and makes it possible to implement services like pubsub, muc, or
124             whatever you can imagine (even gateways).
125             See documentation of L and the example
126             C.
127              
128             =item XEP-0153 - vCard-Based Avatars (Version 1.0)
129              
130             This extension allows to store and retrive avatars from vcards.
131             On top of that it will also signal others that you support avatars and
132             that they might have changed. See L.
133              
134             =item XEP-0199 - XMPP Ping (Version 1.0)
135              
136             You can send ping requests to other entities and also are
137             able to reply to them. On top of that the L
138             extension implements a connection timeout mechanism based on this.
139              
140             =item XEP-0203 - Delayed Delivery (Version 1.0)
141              
142             Both delayed delivery XEPs are supported and are implemented by
143             L which is a super class of L
144             and L.
145              
146             If you need to fetch delay from stanzas you caught yourself in an event you
147             can use a L object to parse/fetch the delay out of the
148             L.
149              
150             Use the functions described above in the XEP-0082 item to decode the timestamps
151             of delays.
152              
153             =back
154              
155             =head1 AUTHOR
156              
157             Robin Redeker, C<< >>, JID: C<< >>
158              
159             =head1 COPYRIGHT & LICENSE
160              
161             Copyright 2007, 2008 Robin Redeker, all rights reserved.
162              
163             This program is free software; you can redistribute it and/or modify it
164             under the same terms as Perl itself.
165              
166             =cut
167              
168             1; # End of AnyEvent::XMPP