new(%args)
Following arguments can be passed in %args:
debug => 1
This will install callbacks which produce debugging output. This will require XML::Twig to be
installed (as it is used for pretty printing the "XML" output).
add_account($jid,$password,$host,$port,$connection_args)
This method adds a jabber account for connection with the JID $jid and the password $password.
$host and $port can be undef and their default will be the domain of the $jid and the default for the
"port" parameter to the constructor of AnyEvent::XMPP::Connection (look there for details about DNS-SRV
lookups).
$connection_args must either be undef or a hash reference to additional arguments for the constructor of
the AnyEvent::XMPP::IM::Connection that will be used to connect the account.
Returns 1 on success and undef when the account already exists.
start()
This method initiates the connections to the XMPP servers.
update_connections()
This method tries to connect all unconnected accounts.
disconnect($msg)
Disconnect all accounts.
remove_accounts($reason)
Removes all accounts and disconnects. $reason should be some descriptive reason why this account was
removed (just for logging purposes).
remove_account($acc,$reason)
Removes and disconnects account $acc (which is a AnyEvent::XMPP::IM::Account object). The reason for the
removal can be given via $reason.
set_accounts(%$accounts)
Sets the set of (to be connected) accounts. $accounts must be a hash reference which contains the JIDs of
the accounts as keys and the values for $password, $domain, $port and $connection_args as described in
"add_account" above.
If the account is not yet connected it will be connected on the next call to "update_connections" and if
an account is connected that is not in $accounts it will be disconnected.
send_message($msg,$dest_jid,$src,$type)
Sends a message to the destination $dest_jid. $msg can either be a string or a
AnyEvent::XMPP::IM::Message object. If $msg is such an object $dest_jid is optional, but will, when
passed, override the destination of the message.
NOTE: $dest_jid is transformed into a bare JID and the routing is done by the conversation tracking
mechanism which keeps track of which resource should get the message.
$src is optional. It specifies which account to use to send the message. If it is not passed
AnyEvent::XMPP::Client will try to find an account itself. First it will look through all rosters to find
$dest_jid and if none found it will pick any of the accounts that are connected.
$src can either be a JID or a AnyEvent::XMPP::IM::Account object as returned by "add_account" and
"get_account".
$type is optional but overrides the type of the message object in $msg if $msg is such an object.
$type should be 'chat' for normal chatter. If no $type is specified the type of the message defaults to
the value documented in AnyEvent::XMPP::IM::Message (should be 'normal').
get_account($jid)
Returns the AnyEvent::XMPP::IM::Account account object for the JID $jid if there is any such account
added. (returns undef otherwise).
get_accounts()
Returns a list of AnyEvent::XMPP::IM::Accounts.
get_connected_accounts()
Returns a list of connected AnyEvent::XMPP::IM::Accounts.
Same as:
grep { $_->is_connected } $client->get_accounts ();
find_account_for_dest_jid($jid)
This method tries to find any account that has the contact $jid on his roster. If no account with $jid on
his roster was found it takes the first one that is connected. (Return value is a
AnyEvent::XMPP::IM::Account object).
If no account is connected it returns undef.
get_contacts_for_jid($jid)
This method returns all contacts that we are connected to. That means: It joins the contact lists of all
account's rosters that we are connected to.
get_priority_presence_for_jid($jid)
This method returns the presence for the contact $jid with the highest priority.
If the contact $jid is on multiple account's rosters it's undefined which roster the presence belongs to.
set_presence($show,$status,$priority)
This sets the presence of all accounts. For a meaning of $show, $status and $priority see the
description of the %attrs hash in "send_presence" method of AnyEvent::XMPP::Writer.