-*- outline -*-
* File transfer

This release of jabber.el contains some support for file transfer.
Both sending and receiving files are supported.  Since this feature
needs more testing, it is not enabled by default.  To enable it, add

(require 'jabber-ft-server)
(require 'jabber-ft-client)
(require 'jabber-socks5)

to your .emacs file.  Please share your experiences - does it work for
you?  Can you suggest any improvements?

** Sending files

Sending files over Jabber normally requires the ability to listen on a
network port.  As of Emacs 21.3 and XEmacs 21.4, elisp programs can't
do this, so you have to specify a JEP-0065 proxy.  The variable
jabber-socks5-proxies is a list of proxies to use.  "proxy.jabber.org"
and "proxy65.jabber.ccc.de" are the only proxies I know of.

After you have specified one or more proxies, jabber.el needs to know
their network addresses.  Type M-x jabber-socks5-query-all-proxies,
and watch the progress in the echo area.  Note that you have to be
connected when you do this, and that you have to do this every
session.

To send a file, type M-x jabber-ft-send.  You will be asked for which
file to send, and whom to send it to.  You have to specify a complete
JID with resource, such as user@domain/resource - only user@domain
will not work.  To see the resources of your contacts, set
jabber-show-resources to t and type M-x jabber-display-roster.

While the file is being sent, your Emacs will be locked up and you
can't do anything else.  Hopefully, this will be fixed some time.

** Receiving files

When someone tries to send a file to you, you will get a message
either in the echo area or in a dialog box, asking you to confirm.
You will also be asked for where to save the file.

Receiving a file should not cause any interruption to your work.  If
it does, please tell.

** Protocol details

See JEPs 95, 96 and 65.

SOCKS5 (JEP-0065) is the only stream method currently supported by
jabber.el, in conflict with JEP-0096, which requires that In-Band
Bytestreams be supported as well.

Range requests are not supported, neither in sending nor in receiving.
