powered by Jive Software

File Transfer Proxy Using Psi

I am trying to setup the Wildfire file transfer proxy feature for serveral Psi clients. I have set the proxy port in Wildfire to 5224, and have opened that port in the firewall behind my server. I have also set the xmpp.proxy.externalip option in Wildfire to a domain that points to the public IP of my server. What exact configuration must be set in each Psi client to allow this feature to work? There is a Data Transfer Proxy field in the Misc tab of Account Setup, and there are also Data Transfer Port and Data Transfer External Address fields in the Application pane of Psi’‘s main options. Where in Psi must I specify the address and proxy port of my Wildfire server? Also, are there any other modifications that I must make to Wildfire’'s configuration? Thanks for the help.


Setting the Data Transfer Proxy in the account settings field should be all that it will take. Let me know if you have any issues with this.



Okay, I’'ve tried both foo.com and foo.com:5224. Which is proper? Neither work.

Also, I’'m getting messages in error.log similar to this:

2006.05.30 16:33:44 org.jivesoftware.util.Cache.calculateSize(Cache.java:541)

java.io.NotSerializableException: org.jivesoftware.wildfire.filetransfer.FileTransfer

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)

at org.jivesoftware.util.Cache.calculateSize(Cache.java:537)

at org.jivesoftware.util.Cache.put(Cache.java:120)

at org.jivesoftware.wildfire.filetransfer.AbstractFileTransferManager.cacheFileTra nsfer(AbstractFileTransferManager.java:54)

at org.jivesoftware.wildfire.filetransfer.spi.DefaultFileTransferManager.acceptInc omingFileTransferRequest(DefaultFileTransferManager.java:40)

at org.jivesoftware.wildfire.filetransfer.FileTransferProxy$FileTransferIntercepto r.interceptPacket(FileTransferProxy.java:331)

at org.jivesoftware.wildfire.interceptor.InterceptorManager.invokeInterceptors(Int erceptorManager.java:227)

at org.jivesoftware.wildfire.net.SocketReader.processIQ(SocketReader.java:394)

at org.jivesoftware.wildfire.net.ClientSocketReader.processIQ(ClientSocketReader.j ava:50)

at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:264)

at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)

at java.lang.Thread.run(Thread.java:595)

Actually you want to put the XMPP address of your proxy, so if you stayed with the standard name it should be:




Just so I understand, Wildfire is the actual proxy server, correct? So, I’‘m not required to run another separate proxy service? And, if that’'s the case, Wildfire listens at proxy.foo.com? Therefore, I will need a DNS resolution for the ‘‘proxy’’ host? And, how do I change it from ‘‘proxy’’ to something else?

No, you won’'t need another DNS entry as long as the appropriate port points to your Wildfire server. The address I provided in my last post is an XMPP address, that means PSI uses XMPP to contact the proxy and ask it for its internet address to connect to. Which is the value you entered in for the externalip.



Thanks, that’‘s working great. But, it’‘s taking ~20-30 seconds to establish the connection. Is there a way to improve that? Otherwise, it’'s tolerable.

Hmmm… Is that the initial connection or subsequent connection as well? I am not sure where the bottleneck could be… You may try contacting the PSI developers to ask them.



It seems the data transfer itself is efficient, but there is a delay while “connecting to peer” before the transfer actually starts. Thanks again for the help.