[ejabberd] Transfer File function - supported?

David Chan chan_hok_ching at yahoo.com
Mon Dec 12 18:27:07 MSK 2011

Hi Konstantin, thx for your reply!

I would like to implement photo/file sharing (much like whatsapp's photo sharing), between many mobile phone users.
Is there any built-in functions/modules that I can make use of? 

E.g., Some sort of functions provided by a file server. 
Also, it has to be scalable, i.e. be able to scale-out by adding cluster nodes

So, I suppose my case is an in-band scenario?
Coz a file has to be uploaded to the server before the receiving user downloads it.

 From: Konstantin Khomoutov <flatworm at users.sourceforge.net>
To: ejabberd at jabber.ru 
Cc: David Chan <chan_hok_ching at yahoo.com> 
Sent: Monday, 12 December 2011, 21:01
Subject: Re: [ejabberd] Transfer File function - supported?
On Mon, 12 Dec 2011 18:53:10 +0800
David Chan <chan_hok_ching at yahoo.com> wrote:

> I would like to know if ejabberd supports file transfers between
> users? If so, what should I do to enable this?
There are several extensions to XMPP describing file transfer protocols;
some of them are deprecated, some are draft standards, but note that
from the point of view of a server there are two ways to transfer
files in XMPP:
1) In-band, where clients transfer the file's data using the same
   stream they're using for "conventional" communitation (presence and
   message exchange).  Such in-band stream obviously passes via
   the sender's and receiver's servers, but require no special support
   from the servers.
2) "Pure" peer-to-peer, where clients connect directly to one another to
   transfer a file.
3) Peer-to-peer transfer mediated by a SOCKS-proxy [1].

In all the cases, the handshake is carried out by the clients (the
server just routes their stanzas, as usually).  In the latter case the
server (or an external component) also acts as a proxy for the actual
data stream of the file's data.  ejabberd has an implementation of this
proxy server in the form of a module called mod_proxy65; refer to
ejabberd's Installation and Operation guide for the details about how
to enable and configure it.

So, let's recap:
1) The server has nothing to do with file transfers in a common case as
   it's carried out by clients.
2) The clients (if their implementation supports this) can use a proxy
   for their peer-to-peer transfer; in this case you can use the proxy
   implementation provided by ejabberd.
   Note that the usage of a proxy is explicit, that is, a client has to
   be configured to use the specified service.

1. http://xmpp.org/extensions/xep-0065.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.jabber.ru/pipermail/ejabberd/attachments/20111212/53f44131/attachment.html>

More information about the ejabberd mailing list