[JDEV] Help with Net::Jabber problem

David Sutton jabber at dsutton.legend.uk.com
Wed Sep 18 15:00:48 CDT 2002


Hi,

  Can you try something for me:

    Remove all the "use Net::Jabber::???;" lines and replace them with
    this "use Net::Jabber qw(Client);"

Regards,

  David

On Wed, Sep 18, 2002 at 03:34:05PM -0400, g wrote:
> Here is the directory structure (I installed it via interactive cpan)
> All the files appear to be installed correctly.
> 
> -r--r--r--    1 root     root        43913 Jun 11 22:56 
> /usr/lib/perl5/site_perl/5.6.0/Net/Jabber.pm
> 
> /usr/lib/perl5/site_perl/5.6.0/Net/Jabber:
> total 536
> -r--r--r--    1 root     root         7739 Jun 11 22:56 Client.pm
> -r--r--r--    1 root     root        15092 Jun 11 22:56 Component.pm
> -r--r--r--    1 root     root        13837 Jun 11 22:56 Data.pm
> -r--r--r--    1 root     root         9526 Jun 11 22:56 Debug.pm
> drwxr-xr-x    2 root     root         4096 Sep 18 11:38 Dialback
> -r--r--r--    1 root     root         3351 Jun 11 22:56 Dialback.pm
> -r--r--r--    1 root     root        11583 Jun 11 22:56 IQ.pm
> -r--r--r--    1 root     root         9707 Jun 11 22:56 JID.pm
> -r--r--r--    1 root     root         5002 Jun 11 22:56 Key.pm
> -r--r--r--    1 root     root         8980 Jun 11 22:56 Log.pm
> -r--r--r--    1 root     root        15885 Jun 11 22:56 Message.pm
> -r--r--r--    1 root     root        17069 May  9  2001 Namespaces.pm
> -r--r--r--    1 root     root        12047 Jun 11 22:56 Presence.pm
> -r--r--r--    1 root     root       114841 Sep 18 12:49 Protocol.pm
> -r--r--r--    1 root     root        78288 Jun 11 22:56 Query.pm
> -r--r--r--    1 root     root         9153 Jun 11 22:56 Server.pm
> -r--r--r--    1 root     root        12785 Jun 11 22:56 XDB.pm
> -r--r--r--    1 root     root        30970 Jun 11 22:56 X.pm
> 
> /usr/lib/perl5/site_perl/5.6.0/Net/Jabber/Dialback:
> total 16
> -r-xr-xr-x    1 root     root         6924 Jun 11 22:56 Result.pm
> -r--r--r--    1 root     root         7418 Jun 11 22:56 Verify.pm
> 
> 
> 
> And the example code from DJ Adams "Fun with Jabber:
> A More Sensitive Mail Notifier"
> 
> 
> from  http://www.pipetree.com/jabber/extended_notify.html
> 
> I changed Adams'
> 
> use Net::Jabber
> 
> to
> 
> use Net::Jabber::Client;
> use Net::Jabber::Protocol;
> use Net::Jabber::Debug;
> use Net::Jabber::IQ;
> 
> because I received the error "Failed to load any schema for
> Net::Jabber from the use line."
> (RECIPIENT and SERVER constants were also modified)
> Here's the code
> 
> 
> #!/usr/bin/perl -w
> # notify.pl
> # Version 2
> # Email notification script to Jabber client
> # Only send notification if recipient is willing to receive
> 
> 
> use Mail::Internet;
> use Net::Jabber::Client;
> use Net::Jabber::Protocol;
> use Net::Jabber::Debug;
> use Net::Jabber::IQ;
> 
> # Hash to hold presence info received from Jabber server
> # ------------------------------------------------------
> use vars qw/%presence/;
> 
> # Declare our constants
> # ---------------------
> use constant RECIPIENT => 'a-user at some.place';      # Jabber ID to be 
> notified
> use constant SERVER    => 'a.host.name';         # Jabber server to 
> connect to
> use constant PORT      => 5222;          # Port to connect to
> use constant USER      => 'notify';      # user this script connects as
> use constant PASSWORD  => 'notify';      # password associated with USER
> use constant RESOURCE  => 'perl';
> 
> # Read and parse email and extract header info
> # --------------------------------------------
> my $header = Mail::Internet->new(*STDIN)->head()->header_hashref();
> chomp $header->{$_}[0] foreach keys(%{$header});
> 
> # Create a new Jabber client and connect
> # --------------------------------------
> my $connection = Net::Jabber::Client->new();
> $connection->Connect( "hostname" => SERVER,
>                      "port"     => PORT )
>   or die "Cannot connect ($!)\n";
> 
> # Identify and authenticate with the server
> # -----------------------------------------
> my @result = $connection->AuthSend( "username" => USER,
>                                    "password" => PASSWORD,
>                                    "resource" => RESOURCE );
> if ($result[0] ne "ok") {
>  die "Ident/Auth with server failed: $result[0] - $result[1]\n";
> }
> 
> # Set presence callback
> # ---------------------
> $connection->SetCallBacks( "presence" => \&handle_presence );
> 
> # Send our presence
> # -----------------
> $connection->PresenceSend();
> 
> # Wait for data
> # -------------
> die "Uh-oh - something has gone wrong with the connection\n"
>  unless(defined($connection->Process(2)));
> 
> # Send notification only if appropriate
> # -------------------------------------
> my $r = RECIPIENT;
> if ($presence{$r} =~ /(normal|chat)/) {
> 
>  # Create a message and build it up
>  # --------------------------------
>  my $msg = Net::Jabber::Message->new();
>  $msg->SetMessage( "to"      => RECIPIENT,
>                    "subject" => "Email from $header->{From}[0]",
>                    "body"    => join("\n", "Subject: 
> $header->{Subject}[0]",
>                                            "Date: $header->{Date}[0]") );
>  # Send the message
>  # ----------------
>  $connection->Send($msg);
> 
> }
> 
> # Disconnect from the Jabber server
> # ---------------------------------
> $connection->Disconnect();
> 
> exit;
> 
> 
> 
> # Presence data handler
> # ---------------------
> sub handle_presence {
>  my $presence = Net::Jabber::Presence->new(@_);
>  my $jid = $presence->GetFrom();
>  $jid =~ s!\/.*$!!;  # remove any resource suffix from JID
>  $presence{$jid} = $presence->GetShow() || 'normal';
> }
> 
> 
> 
> Chris Wilkes wrote:
> 
> >On Wed, Sep 18, 2002 at 01:08:31PM -0400, g wrote:
> > 
> >
> >>With the follwing files:
> >>Net::Jabber::Protocol VERSION 1.26
> >>Net::Jabber::IQ VERSION 1.26
> >>
> >>I am getting the following error:
> >>Undefined subroutine &Net::Jabber::IQ called at 
> >>/usr/lib/perl5/site_perl/5.6.0/Net/Jabber/Protocol.pm line 1829.
> >>   
> >>
> >
> >Can you post your code?  Also is there a IQ.pm file in the above
> >directory?
> >
> >Chris
> >_______________________________________________
> >jdev mailing list
> >jdev at jabber.org
> >http://mailman.jabber.org/listinfo/jdev
> > 
> >
> 
> 
> 
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev

-- 
David Sutton
Email: dsutton at legend.co.uk
Jabber: peregrine at legend.net.uk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20020918/3554a637/attachment-0002.pgp>


More information about the JDev mailing list