The current methods for file transfers include basic metadata
about the file being offered such as its name, size, and date. There
currently is no way to provide arbitrary details about the file
being transferred. XEP-0264 starts to address this
problem, but only includes thumbnails of transfers.
The design of this extension to file transfer offers is
influenced by adding data forms to disco#info replies (as per
Entity Capabilities (XEP-0115)XEP-0115: Entity Capabilities <https://xmpp.org/extensions/xep-0115.html>.) and by the design of File Transfer Thumbnails (XEP-0264)XEP-0264: File Transfer Thumbnails <https://xmpp.org/extensions/xep-0264.html>.
This document defines a way to include arbitrary data in a file
transfer.
The arbitrary data added to the offer is incluced in Data Forms (XEP-0004)XEP-0004: Data Forms <https://xmpp.org/extensions/xep-0004.html>.
which must be formatted according to Service Discovery Extensions (XEP-0128)XEP-0128: Service Discovery Extensions <https://xmpp.org/extensions/xep-0128.html>. to the root
<file> element. There can be as many data forms under said
<file> element as long as the FORM_TYPE field is different for
each form.
example:dataform:exifdata38722592NIKON CORPORATIONNIKON D80
...
]]>1969-07-21T02:56:15ZThe wild party you should've been atthatwildparty.jpg8492843552da749930852c69ae5d2141d3766b1example:dataform:exifdata38722592NIKON CORPORATIONNIKON D80
...
]]>
This document introduces no security concerns above and beyond
those specified in Data Forms (XEP-0004)XEP-0004: Data Forms <https://xmpp.org/extensions/xep-0004.html>..
This document requires no interaction with the Internet Assigned Numbers Authority (IANA)The Internet Assigned Numbers Authority (IANA) is the central coordinator for the assignment of unique parameter values for Internet protocols, such as port numbers and URI schemes. For further information, see <http://www.iana.org/>..
This document requires no interaction with the XMPP RegistrarThe XMPP Registrar maintains a list of reserved protocol namespaces as well as registries of parameters used in the context of XMPP extension protocols approved by the XMPP Standards Foundation. For further information, see <https://xmpp.org/registrar/>.;
however, specifications following the best practices defined herein
may register FORM_TYPEs and field values with the XMPP
Registrar.