[JDEV] OOB filetransfer negotiation

Sebastiaan 'CBAS' Deckers cbas at screaming3d.com
Sat Aug 11 03:06:37 CDT 2001


Hello everyone,

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.

Example:
<iq type='set' to='cbas at localhost/Home' from='winjab at localhost/WinJab'>
  <query xmlns='jabber:iq:oob'>
    <url>http://127.0.0.1:5600/foo.html</url>
  </query>
</iq>
(Note that there is no "id" information in the <iq /> element.)

Now cbas at localhost/Home will receive the filetransfer request.
cbas is asked by his client software if he wants to download.
- If he chooses to do so, his client starts the HTTP transfer without
further ado. WinJab is supposed to realise the download has started and stop
displaying the filerequest dialog, which looks "clumsy" to me but it could
work.
- If cbas chooses not to download, what must his client do? Nothing? That
doesn't seem like a nice thing to do because winjab will still be waiting on
the other end of the line.

I noticed that the WinJab software sends a deny-notification like so:
<iq to="cbas at localhost/Home" type="error" id="file_37113969196">
  <error code="406">Refusing File Send</error>
</iq>
(Note the seemingly random "id" in the <iq /> element)

Is this documented anywhere?
The Protocol Overview (section 1.6.9) shows an <iq /> element with namespace
"jabber:iq:oob" and an "id" property like most message or iq elements. Why
does WinJab not use this? Why is the ID not used to confirm or deny the
filetransfer request?

I would appreciate any comments, suggestions or answers and I'm sure other
people have had problems with this aswell.

Thanks in advance,
Sebastiaan




More information about the JDev mailing list