-
Notifications
You must be signed in to change notification settings - Fork 887
Smack XMPP File Transfer
The XMPP file transfer process is sophisticated and therefore complex. This is due the fact that XMPP is extensible, which means various methods (XEPs) are defined to transfer a file from one entity (user) to another. In order to find the reason for your file transfer problem you may have to
- Understand the way file transfers work with XMPP: read the related XEPs. Smack currently provides support for XEP-96, -95, -47 and -65.
- Capture a trace of the XMPP stanzas involved in the file transfer
- Attach a (Java) debugger to the application that uses (a)Smack. Sources are provided and find out where the control flow is wrong or what is missing.
The relevant XEPs for Smacks file transfer feature are:
- XEP-0096: SI File Transfer
- XEP-0095: Stream Initiation
- XEP-0047: In-Band Bytestreams
- XEP-0065: SOCKS5 Bytestreams
We can't help with issues about XMPP file transfer if they don't contain a solution or at least on idea what could be wrong! Given that XMPP is an open standard, everyone can look up what's going wrong in terms of the protocol that all parties involved (sender, server, receiver) have agreed upon. If you find deviation from the standard in Smack, any report is highly appreciated.
(a)Smack's file transfer capabilities are used and can therefore be tested by MAXS Transport XMPP. Since this is an GPLv3 licensed open source application, you can also view the source code and study how XMPP file transfer with (a)Smack is implemented there.