[jdev] Jabber4r
Neil Mc Laughlin
nml at fjserv.net
Tue Apr 6 09:24:30 CDT 2004
Hi all,
I am quite new to jabber programming, so my apologies - this is probably
quite basic stuff.
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. I'm hoping someone can spot
what's going wrong here.
Briefly, when the script trys to logon, the server refuses to authorize the
connection. The error is 406 - Not Acceptable. The same uid & password works
fine with rhymbox or exodus.
The xml dialogue is included below, first for the script and then for a
exodus session logging into the same account.
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 at 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:
<?xml version="1.0" encoding="UTF-8" ?><stream:stream to="jabber"
xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
RECEIVED:
<stream:stream xmlns:stream"http://etherx.jabber.org/streams" from"jabber"
id"407275C1" xmlns"jabber:client"/>
SENDING:
<iq type="set" id="2">
<query xmlns="jabber:iq:auth"><username>neilmcl</username>
<digest>a729db796aa737fb20755a154689a22c6c423bce</digest>
<resource/>
</query>
</iq>
RECEIVED:
<iq type"error" id"2">
<error code"406">Not Acceptable</error>
<query xmlns"jabber:iq:auth">
<resource/>
<digest sid"407275C1">a729db796aa737fb20755a154689a22c6c423bce</digest>
<username>neilmcl</username>
</query>
</iq>
./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: <stream:stream to="jabber" xmlns="jabber:client"
xmlns:stream="http://etherx.jabber.org/streams" version="1.0" >
RECV: <?xml version='1.0'?><stream:stream
xmlns:stream='http://etherx.jabber.org/streams' id='40727C56'
xmlns='jabber:client' from='jabber'>
SENT: <iq id="jcl_7" type="get"><query
xmlns="jabber:iq:auth"><username>neilmcl</username></query></iq>
RECV: <iq id='jcl_7' type='result'><query
xmlns='jabber:iq:auth'><username>neilmcl</username><password/><digest/><sequ
ence>495</sequence><token>3F040A38</token><resource/></query></iq>
SENT: <iq id="jcl_8" type="set"><query
xmlns="jabber:iq:auth"><username>neilmcl</username><resource>Exodus</resourc
e><hash>acfb2bd52679a19c25bb758894ac905e7f308689</hash></query></iq>
RECV: <iq id='jcl_8' type='result'/>
Cheers everyone,
Neil
More information about the JDev
mailing list