Hello everyone! I am a graduate student in China and I am very interested in implementing file transfer over jingle for gajim. For the last month I've been exploring gajim's source code, reading documentations about gajim's architecture, reading xmpp's specifications on jingle and file transfer(XEP-0096, XEP-0234, XEP-0166) and getting some hands-on experience by trying to write a patch for a bug(#5614<http://trac.gajim.org/ticket/5614>). So I want to share with you my thoughts here.
Gajim already has the ability to handle jingle singaling thanks to gsoc 2007 student Tomasz Melcer. But over the last 2 years jingle itself has also evolved. I will first check to see if our implementation of jingle has any major incompatibility with the current jingle protocol.(I don't foresee a lot of it because according to jingle's revision history many of them were just clarifications). This shoudl take about 1 week. Next I will implement the actual file transfer feature using the jingle infrastructure. The actual transfer will consist of several methods: socks5 bytestream, in-band bytestream and possibly ICE-TCP if time allows). I don't think these are extremely difficult to implement once one of those transfer methods is implemented. However I do foresee some issues concerning pausing, canceling file transfer etc. But the basic functionality should be completed in reasonable amount of time.(1 week for reading and understanding what I must know, 2 - 3 weeks for coding) Once they are completed, through tests should be conducted. I also want to add some additional features that might help to enhance user experience: First: file transfer status in chat window. This has already been discussed in #1205 <http://trac.gajim.org/ticket/1205>. Some for it some against it. I think it's good to give users an option anyway, and it's really a simple and useful way to track which file comes from which guy, when you are receiving files from several friends. I do not intend to implement a progress bar in chat window. A notice about the start, end of the file transfer should be enough. Also the end of FT notice should contain a link to the file. This feature will be optional, users against this will be able to disable it. FT from users you are not chatting with does not open a chat window. What about the current pop-up notice? Well, I think it just feels better when you can focus your eyes around the chat window and know everything that's happening between you and the guy you're talking to. Suggestions welcomed about this! Second: drag and drop currently works perfectly, but sending of multiple files are not supported. Users would typically archive the files or manually send them one by one. This is not quite user friendly. I want to support dragging a directory into gajim and letting gajim do the archiving stuff. Also the description field will be populated with a list of files(possibly incomplete due to the length of it). This idea is due to #4287<http://trac.gajim.org/ticket/4287>. I want to clarify that this is a user experience enhancement, so the user should be noted that what the receiver gets is an archive of the directory that he/she sends. If time allows I also want to add file encryption feature, which might be as simple as key exchange and encryption using DES or AES. But I don't know how to standardize this feature so it understood by all xmpp clients. I appreciate any advice on this. A bit more about myself: I'm pursuing a master of science degree in Fudan University, Shanghai. I'm comfortable with C, C++, perl. And I love Python and lisp! I have some basic experience with the linux kernel, netsurf(a small web browser, I once implemented "read page" feature for fun). I am a heavy user of all kinds of open source softwares, I used to write webapps using django and wrote some fun stuff in it, like sending SMS via my homepage(click and send sms to me) etc. I primarily use python to solve all problems that I meet. It's my language of choice. My name is Li Zhenchao .My jabber account is fantastic...@jabber.com. I have a blog: www.fantasticsid.com/blog (it's in Chinese but I will write in English if I'm lucky enough to write reports on this year's gsoc project later). You can contact me at cockneyke...@gmail.com or fantastic...@fantasticsid.com. Any advices, thoughts, suggestions, questions are welcomed! PS: After discussing my idea here, should I also present it to the XSF mailing list? -- Homepage: www.fantasticsid.com EMAIL: fantastic...@fantasticsid.com IRC: fantasticsid
_______________________________________________ Gajim-devel mailing list Gajimemail@example.com http://lists.gajim.org/cgi-bin/listinfo/gajim-devel