use Net::Jabber qw(Component); use strict; if ($#ARGV < 2) { print "\nperl component_accept.pl \n\n"; exit(0); } my $server = $ARGV[0]; my $port = $ARGV[1]; my $name = $ARGV[2]; my $secret = $ARGV[3]; $SIG{HUP} = \&Stop; $SIG{KILL} = \&Stop; $SIG{TERM} = \&Stop; $SIG{INT} = \&Stop; my $Component = new Net::Jabber::Component(); $Component->SetCallBacks(onauth=>\&onAuth, message=>\&messageCB); $Component->Execute(hostname=>$server, port=>$port, componentname=>$name, secret=>$secret ); sub onAuth { print "Connected...\n"; } sub Stop { $Component->Disconnect(); print "Exit gracefully...\n"; exit(0); } sub messageCB { my $sid = shift; my $message = shift; print "Recd: ",$message->GetXML(),"\n"; my $reply = $message->Reply(); $reply->SetMessage(body=>uc($message->GetBody())); $Component->Send($reply); print "Sent: ",$reply->GetXML(),"\n"; }