use strict; use Net::XMPP; use Data::Dumper; my $con = new Net::XMPP::Client(); my $status = $con->Connect( hostname => 'mh.com', connectiontype => 'tcpip', ); my @result = $con->AuthSend( hostname => 'mh.com', username => 'pi', password => 'pi' ); $con->PresenceSend(); $con->SetCallBacks( presence=>\&do_presence, message=>\&do_message, ); sub do_presence { my ($id, $presence) = @_; print "Presence\n"; print "From: ", $presence->GetFrom(), "\n"; print "Type: ", $presence->GetType(), "\n"; print "Status: ", $presence->GetStatus(), "\n"; } sub do_message { my($id, $msg)=@_; print "message: ", $msg->GetBody; } while(defined($con->Process())) { } #### Presence From: pi@mh.com/9b568386-f5e3-46de-bb1d-22f2d861a94a Type: Status: #### $con->PresenceSend( status => "doing nothing at all" ); #### Presence From: pi@mh.com/c577d4e2-c4b3-44b5-b044-d2e7e67b0172 Type: Status: doing nothing at all #### $con->PresenceSend( type => "available" ); #### Presence From: Type: error Status: