powered by Jive Software

Trouble with SI File Transfer on Linux that works on Windows

I’m currently using 4.1.8.

I’m using a smack bot to server files over chat, and have behavior that works mostly as expected when running under windows. When I deploy this bot on our linux server environment (Ubuntu 14.04), all file transfers fail. I can still send chat messages on the linux side, but no files can get through. Below is the raw xml packets, as well as the relevant chunk of code where this issue occurs. I also asked a related question about the meanings on the different status fields within tags over on stackoverflow: xmpp - What do the status elements represent in SI File Transfer? - Stack Overflow

Any advice would be greatly appreciated!

OutgoingFileTransfer transfer = ftm.createOutgoingFileTransfer(target + “/” + jidCache.get(target));

transfer.sendFile(new File(“transfers/” + name), “SpeakTransfer”);

try {

// Prevent it from stalling forever on a file transfer

int counter = 0;

FileTransfer.Status stPrev = FileTransfer.Status.initial;

while(!transfer.isDone() && counter < 60) {

if(transfer.getStatus().equals(FileTransfer.Status.error)) {

System.out.println("FileTransferError: " + transfer.getError());

}

if(transfer.getStatus().equals(FileTransfer.Status.refused)) {

System.out.println(“FileTransfer denied.”);

transfer.cancel();

}

if (!transfer.getStatus().equals(FileTransfer.Status.in_progress)) {

Thread.sleep(500);

counter++;

}

if (transfer.getStatus() != stPrev) {

System.out.println(transfer.getStatus());

}

stPrev = transfer.getStatus();

}

if (!transfer.isDone()) {

System.out.println(“Cancelling transfer.”);

transfer.cancel();

Message cancelMsg = new Message();

cancelMsg.setBody(“I’m cancelling the file transfer since something went wrong or you did not respond.”);

chat.sendMessage(cancelMsg);

}

} catch (Exception e) {

e.printStackTrace();

System.exit(1);

}

RAW XML Packets from Windows:

10:20:16 AM SENT (0): SpeakTransferhttp://jabber.org/protocol/bytestreamshttp://jabber.org/protocol/ibb

10:20:17 AM RECV (0): http://jabber.org/protocol/bytestreams

10:20:17 AM SENT (0):

10:20:17 AM RECV (0):

10:20:17 AM SENT (0):

10:20:17 AM RECV (0):

10:20:17 AM SENT (0):

10:20:17 AM RECV (0):

10:20:17 AM SENT (0):

10:20:18 AM RECV (0):

10:20:18 AM RECV (0):

RAW XML Packets from Ubuntu:

10:03:44 AM SENT (0): SpeakTransferhttp://jabber.org/protocol/bytestreamshttp://jabber.org/protocol/ibb

10:03:46 AM RECV (0): http://jabber.org/protocol/bytestreams

10:03:46 AM SENT (0):

10:03:46 AM RECV (0):

10:03:46 AM SENT (0):

10:03:46 AM RECV (0):

10:03:46 AM SENT (0):

10:03:46 AM RECV (0):

10:03:46 AM SENT (0):

10:04:02 AM RECV (0):

Please have a look at Smack XMPP File Transfer · igniterealtime/Smack Wiki · GitHub

I’ve read through that page and portions of the relevant XEP’s but haven’t been able to diagnose the issue. Do you have a more specific idea of the problem?