From: Neil Mc Laughlin Date: 2004-04-08T18:32:18+09:00 Subject: Re: Jabber4r Thanks for the response. I had previously tried using a password and couldn't get that working either. I've got it working now though. I needed to add a require statement to patch rexml and also append a resource at the end of the Jid. Without this patch, appending a resource just caused the process to hang. You guessed correctly about 'jabber' being in my hosts file. The code is still a bit rough but it does work. I can have a conversation with 'bob' the bot. It now reads as follows. require 'jabber4r/jabber4r' require 'jabber4r/rexml_1.8_patch' # Jabber::DEBUG = true begin session = Jabber::Session.bind('bob@jabber/Ruby', 'passwd', 5222, true) msg = session.new_message('neilmcl@jabber') msg.set_subject('test message') msg.set_body('test transmission') msg.send mythread = Thread.current mlid = session.add_message_listener {|message| message.reply.set_body("Echo: #{message.body} :-0").send mythread.wakeup if message.body=="shutdown" } Thread.stop session.delete_message_listener(mlid) rescue Exception => error puts error ensure session.release if session end Cheers, Neil. ----- Original Message ----- From: "Ben Schumacher" To: "ruby-talk ML" Sent: Wednesday, April 07, 2004 7:55 PM Subject: Re: Jabber4r > Neil- > > My guess is that there is a problem with the SHA1 hashing. You might try > to do authentication without digest auth and see if that works. I assume > "jabber" is a an entry in your /etc/hosts, correct? When you > authenticate using Exodus, are you using the same Jid? > > Cheers, > > bs. > > Neil Mc Laughlin wrote: > > Hi all, > > > > I want to write a jabber bot in ruby using the Jabber4r library. The first > > generation bot will just logon to the jabber server without throwing an > > exception, but I haven't got that far yet. > > > > This is more a jabber issue than a ruby issue, but maybe someone here uses > > jabber4r. Transcripts are below, including xml. Briefly, when the script > > trys to logon, the server refuses to authorize the connection. The same uid > > password works fine with the rhymbox or exodus jabber clients. > > > > > > Software versions below. > > Ruby version: ruby 1.8.0 (2003-08-04) [i386-mswin32] > > Jabber version: Jabber4r 0.6.0 for Ruby 1.8.1 > > Running on win 2k with Cygwin. uname -a output follows: > > CYGWIN_NT-5.0 neil 1.5.5(0.94/3/2) 2003-09-20 16:31 i686 unknown unknown > > Cygwin > > > > > > This is the script. > > #!/usr/bin/env ruby > > require 'jabber4r/jabber4r' > > Jabber::DEBUG = true > > session = Jabber::Session.bind('neilmcl@jabber', 'password', 5222, true) > > > > nb: 'password' isn't my real password. > > > > This is a transcript of the script running. > > bash-2.05b$ jab.rb > > SENDING: > > > xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"> > > RECEIVED: > > > > > id"407275C1" xmlns"jabber:client"/> > > SENDING: > > > > neilmcl > > a729db796aa737fb20755a154689a22c6c423bce > > > > > > > > RECEIVED: > > > > > > Not Acceptable > > > > > > a729db796aa737fb20755a154689a22c6c423bce > > neilmcl > > > > > > ./jab.rb:7: warning: already initialized constant DEBUG > > d:/ruby/lib/ruby/site_ruby/1.8/jabber4r/session.rb:141:in `bind': > > Authentication failed (RuntimeError) > > from ./jab.rb:9 > > bash-2.05b$ > > > > This is a transcript of the equivalent exodus login. > > SENT: > xmlns:stream="http://etherx.jabber.org/streams" version="1.0" > > > RECV: > xmlns:stream='http://etherx.jabber.org/streams' id='40727C56' > > xmlns='jabber:client' from='jabber'> > > SENT: > xmlns="jabber:iq:auth">neilmcl > > RECV: > xmlns='jabber:iq:auth'>neilmcl > ence>4953F040A38 > > SENT: > xmlns="jabber:iq:auth">neilmclExodus > e>acfb2bd52679a19c25bb758894ac905e7f308689 > > RECV: > > > > Cheers everyone, > > Neil > > > > > >