NAME

Net::XMPP2::Ext::Registration - Handles all tasks of in band registration

SYNOPSIS

my $con = Net::XMPP2::Connection->new (...);

$con->reg_cb (stream_pre_authentication => sub {
   my ($con, $rcont) = @_;

   my $reg = Net::XMPP2::Ext::Registration->new;
   $reg->send_registration_request ($con, sub {
      my ($reg, $con, $form, $error) = @_;

      if ($form) {
         my $res = $form->try_fillout_registration ('myusername', 'mypassword');

         $reg->submit_form ($con, $res, sub {
            my ($reg, $con, $ok, $error) = @_;

            if ($ok) {
               $con->authenticate; # just make sure the connection knows your
                                   # username and password :-)
            } else {
               print "error: " . $error->string . "\n";
            }
         });

      } else {
         print "error: " . $error->string . "\n";
      }
   });

   $$rcont = 0;
   0
});

DESCRIPTION

This module handles all tasks of in band registration that are possible and specified by XEP-0077. (NOT IMPLEMENTED YET!)

METHODS

new (%args)

This is the constructor for a registration object. %args is a hash which can have the following keys:

NOTE: the connection argument is required.

connection

This must be a Net::XMPP2::Connection (or some other subclass of that) object.

This argument is required.

send_registration_request ($con, $cb)

This method sends a register form request. $cb will be called when either the form arrived or an error occured.

The first argument of $cb is always $self. If the form arrived the second argument of $cb will be a Net::XMPP2::Ext::RegisterForm object. If an error occured the second argument will be undef and the third argument will be a Net::XMPP2::Error::Register object.

submit_form ($con, $form, $cb)

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.