Openfire returning 501 feature-not-implemented on activate with gloox client

With a gloox client I am trying to setup a socks proxy for file transfer. The Openfire server has file transfer proxy enabled. I see the message exchange occur as expected up to the last step. The initiator sends the “set” command and gives the streamhosts to try. The receiver connects to the servers proxy port 7777 and sends and receives the 2-4 bytes. The receiver sends back that it is using the proxy port on the Openfire server. The initiator client connects to the proxy as well and then sends the “activate” message to the Openfire server. The server responds to the activate with:

001f34006c18@avtrex-twells1/stb

001f34006c18@avtrex-twells1/stb

I know the feature is enabled on the server because if I disable it then the failure moves back to the TCP connections to port 7777.

Thanks

Trevor

After digging into this some more (Openfire Java source), it looks like the FileTransferProxy class is not derived correctly. It looks like this class should extend IQHandler. It already implements handleIQ(IQ Packet), but because it is not of the class type IQHandler it is not added to the list of known handlers with its namespace “http://jabber.org/protocol/bytestreams”. So when the action comes in and looks at the namespace and doesn’t find it in the list it returns “feature-not-implemented”. It looks like the registration is occuring in the followign method XMPPServer.java:

/**

  • Returns a list with all the modules registered with the server that inherit from IQHandler.

  • @return a list with all the modules registered with the server that inherit from IQHandler.

*/

public List getIQHandlers() {

List answer = new ArrayList();

for (Module module : modules.values()) {

if (module instanceof IQHandler) {

answer.add((IQHandler) module);

}

}

return answer;

}

Any thoughts (maybe I am just not looking at this correctly)?

Thanks

Trevor

Hello @Trevor

I am trying to send file by following XEP-0234: jingle file transfer and facing same issue.

can you please share your idea? how did you solved it?

Thanks