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.

Hey,

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.

Thanks,

Alex

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:

proxy.foo.com

Thanks,

Alex

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,

Alex

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.

Thanks,

Alex

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.