powered by Jive Software

Uploading files in Conference spaces... new feature?

Hi, I’ve been playing with Openfire and Spark for about a month. The company I work had gotten WebEx Connect and decided that they will not be sticking with it. I am trying to get them to look into going with Openfire and Spark but, one of the only features holding it back is the fact that you cannot upload files into the Conference chats.

Is there any way to do this? Or, could it be implemented somehow?


Probably it is possible to modify Spark (or create a plugin) so when you drop a file into a conference it will send it to all participants as simple file transfer. But it would take a lot of bandwidth and probably would be slow (if you are going to send a file to 100 users).

Another option would be modifying Openfire - to accept such drop, download file and post it as a link in a conference), and then Spark modifying to make it see such links and to know what to do with them. Anyway, this is not a xmpp standard, so i doubt it would be implemented by someone unless you will do it yourself.

Wow, I was hoping it would be easier since you are able to upload files in the IM chat.

Where is the best place to find info on creating plugins?

Well, yes, it should be easier as the client and the server already support file transfers. But this is a regular peer-to-peer file transfer. So you will have to add that conference file dropping on both sides, if you choose the second option. You can use Openfire’s proxy service i think.

Dont know about the Openfire, but there is a sparkplug kit http://www.igniterealtime.org/projects/spark/sparkplug-kit.jsp

But you can take and inspect any of the Openfire’s plugins (or community contributed) code and maybe find out how to create your own. Anythng else i can suggest is http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/javadoc/

I think basically the way I need it to work is: In a MUC Conference Room, someone can upload a file to the server, then people can go back and grab it at any time to look at it. So I would I have to write a plugin for both Openfire and Spark?

I don’t even really know how to get started. Never had to write something for someone elses program and I have never written anything in Java.

Thanks for the help.

I’m not a programmer, though Of course you can change only the Spark, so it will let you to upload the file to the MUC as a link, and then every other Spark client will know, if you press on a file link in MUC, it should initiate a simple file download. As i said, this can create a lot of traffic on the uploader side, as you would have to upload this file for every requester. I mean, if 100 users click on that file link, this file will be downloaded 100 times from you. If you dont bother about the traffic, you can go this way and modify only the client.

After a bit of rethinking, probably there is no big difference if you first upload the file on some server (e.g. Openfire, or some http, ftp or other central server). There still will be 100 downloads of that file and the traffic will be the same, but you will have to upload it only once, so your PC won’t be attacked by 100 requesters. This would be a server’ headache As i’m not a programmer, especially dont know much about java, so i dont know what to suggest here. Maybe it would be easier to use some web server for file upload. But Openfire already has file transfer proxy service, so maybe it is easier to use that, though IM server would be burdened by massive file transfers (depends on the server resources, network setup, your file sharing needs, etc.)

So i see it:

While being in MUC you press say “Share a file” in your modified Spark -> Spark sends the file to Openfire -> your custom code on a server intercepts such command and receives and temporary stores the file (you should think about removing the file after that, maybe after MUC closing, also you should think how and where to store the file, database is not the best place for that i think) -> then your Spark generates a meta-link say “PunksUndead uploaded the file QuarterReport.doc” in MUC -> participant clicks on that link in his modified Spark -> his Spark sends a request to Openfire -> Openfire starts a file transfer with that client -> participant’s Spark shows file saving dialog and then downloads the file.

There should be a lot more stuff behid that as there should be a lot of data exchange between client and server to find out who wants what. Also this meta-link should have some ID of the file, as there could be a lot of MUC rooms going simultaneosly and a lot of files shared at the same time.

Well, this looks like more and more tough stuff to me