[JDEV] OOB filetransfer negotiation

Jens Alfke jens at mac.com
Sat Aug 11 11:57:46 CDT 2001


On Saturday, August 11, 2001, at 01:06 AM, Sebastiaan 'CBAS' Deckers 
wrote:

> I'm trying to figure out how exactly file-transfers get negotiated.
> WinJab seems to use an <iq> with namespace "jabber:iq:oob" containing 
> the
> URL of the file.

Oh boy, that's a new one to me! I keep finding more and more of these 
secret protocol extensions. The "standard" way to transfer files, which 
I've implemented, is to send a <message> containing a jabber:x:oob 
extension element -- this is documented in the JPO and JPG.

I just took at look at the jabber:iq:oob "spec". I don't really see why 
someone decided to re-invent this in a different form. Surely the 
accept/refuse feedback could have been implemented just as well using 
reply <message>s?

One drawback to using an <iq> to send files is that you can't send it 
through a conference/chatroom, which I've implemented in my client. 
(BTW, sending to a chatroom is a case that breaks the 'relay server' 
thing that has recently been implemented to bypass firewalls, because 
it's not one-to-one.)

I've actually implemented a significant number of extensions to the 
defined jabber:x:oob in my client, mostly to help the receiver display 
meaningful information about the file transfer before it begins. I've 
added attributes to the <url> element that identify various metadata 
about the transfer (is it a file vs. a directory? What is its size? What 
POSIX or HFS metadata does it have?) Of course this isn't known to be 
accurate, but it lets the receiver display various info to the user 
(including an icon) and it can be re-verified after the actual file is 
downloaded.

--Jens




More information about the JDev mailing list