<P>Hello jabber people.</P>
<P>I am hoping that someone can help me out with how the Perl Net::Jabber library should be used.&nbsp; Note that I am also somewhat new to perl so if I get confused by some of the syntax, you will have to excuse me.&nbsp; The examples in the Oreily book were rather helpful but I seem to be having problems in calling and receiving IQ information.</P>
<P>Here is what I am trying to send and receive in XML:</P>
<P>SENT:<BR>&lt;iq id="jcl_9" type="get"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;query xmlns="jabber:iq:roster"/&gt;<BR>&lt;/iq&gt;</P>
<P>RECV:<BR>&lt;iq <A href="mailto:from='rebbaj@jabber.org/Perl'">from='rebbaj@jabber.org/Perl'</A> id='jcl_9' type='result'&gt;<BR>&nbsp; &lt;query xmlns='jabber:iq:roster'&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;item <A href="mailto:jid='rebbaj@jabber.com'">jid='rebbaj@jabber.com'</A> name='rebbaj' subscription='both'/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;item <A href="mailto:jid='rebbaj2@jabber.com'">jid='rebbaj2@jabber.com'</A> name='rebbaj2' subscription='both'/&gt;<BR>&nbsp; &lt;/query&gt;<BR>&lt;/iq&gt;</P>
<P>The code stub that I have written to do this is as follows.&nbsp; I suspect that I have the flow a bit wrong and I am not using the optimal calls to parse the resulting returned roster data...&nbsp; Any help would be appreciated....</P>
<P>rebbaj</P>
<P>------------------------------------------------<BR>#!/usr/bin/perl<BR>use Net::Jabber qw(Client);<BR>use strict;<BR>my $c=Net::Jabber::Client-&gt;new();<BR>$c-&gt;Connect('hostname'=&gt; 'jabber.org', 'port'=&gt;5222);</P>
<P>$c-&gt;AuthSend('username'=&gt; 'rebbaj',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'password'=&gt; 'secret',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'resource'=&gt; 'Perl');</P>
<P>$c-&gt;SetCallBacks('presence'=&gt; \&amp;handle_presence);<BR>$c-&gt;SetCallBacks('iq'=&gt; \&amp;handle_iq);<BR>$c-&gt;PresenceSend();</P>
<P>My $IQ = new Net::Jabber::IQ();<BR>$IQ-&gt;NewQuery("jabber:iq:roster");&nbsp; # Does this actually make the IQ get request?$c-&gt;Send($IQ); # is this call necessary?</P>
<P>print "involking process\n";<BR>$c-&gt;Process();</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P><BR>$c-&gt;Disconnect;<BR>exit(0);</P>
<P>sub handle_presence {<BR>&nbsp;my ($sid, $presence) = @_;</P>
<P>&nbsp;my $show = $presence-&gt;GetShow() || 'online';<BR>&nbsp;<BR>&nbsp;print "presence packet received $show\n";<BR>}</P>
<P>sub handle_iq {<BR>&nbsp;my ($sid, $iq) = @_;</P>
<P>&nbsp;my $querytag = $iq-&gt;GetQuery();</P>
<P>&nbsp;<BR>&nbsp;print "iq packet received $querytag\n";<BR>}</P>
<P>&nbsp;</P><p><p><br><hr size=1><a href="http://uk.yahoo.com/mail/tagline_xtra/?http://uk.docs.yahoo.com/mail_storage.html"><b><font face="Arial" size="2">With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs</font></b></a><br>