powered by Jive Software

Cannot register to a gateway

Hi,

I am trying to connect a gateway using code copied from this testcase:

http://www.jivesoftware.org/fisheye/viewrep/~raw,r=2739/svn-org/transports/trunk /test/org/jivesoftware/messenger/gateway/test/JEP_100.java

I am connected to im.apinc.org and tried using aim and msn gateways. The login/pass for both are working fine using PSI client.

But I get an error at the last line of the following code so I guess that the registration is failing. Am I doing things in the wrong order or is it a server problem ?

Thanks,

Cedric HYPPOLITE

… DiscoverInfo info set after service discovery …

if (! info.containsFeature(“jabber:iq:register”)) {

throw new Exception(“Gateway does not support registering”);

}

PacketCollector collector = conn.createPacketCollector(new PacketFilter() {

public boolean accept(Packet arg0) {

return arg0 instanceof Registration;

}});

// 4.1.1.3 Jabber User sends IQ get qualified by the In-Band Registration

Registration conv1 = new Registration();

conv1.setType(IQ.Type.GET);

conv1.setTo(gatewayName);

conn.sendPacket(conv1);

// 4.1.1.4 Gateway returns IQ result to Jabber User, specifying information that

// is required in order to register

Registration response = (Registration)collector.nextResult();

// 4.1.1.5 Jabber User sends IQ set qualified by the ‘‘jabber:iq:register’’ namespace

// to Gateway

Registration regRegister = new Registration();

regRegister.setType(IQ.Type.SET);

regRegister.setTo(response.getFrom());

DataForm df = new DataForm(“submit”);

FormField pwdField = new FormField(“password”);

pwdField.addValue(password);

FormField usrField = new FormField(“username”);

usrField.addValue(username);

df.addField(pwdField);

df.addField(usrField);

regRegister.addExtension(df);

PacketCollector subscription = conn.createPacketCollector(new PacketTypeFilter(Presence.class));

conn.sendPacket(regRegister);

// 4.1.1.6 Gateway verifies that registration information provided by Jabber User is valid

response = (Registration) collector.nextResult();

XMPPError error = response.getError();

if(error != null) { /// Here an error is found <<<<<###########

throw new Exception(“Cannot register to the gateway : " + error.toString() + " user ‘’” + username + “’’ password ‘’” + password + “’’”);

}