File transfer problem

Hello!

I’m using Openfire Server 3.6.0 and have some problems with file transfer.

When I try to transfer a file on localhost - all is OK, because server doesn’t act as proxy. But when I try to transfer a file through remote server - transfer failed.

I’ve used different jabber-clients: Adium, Psi, Pidgin, Miranda, Spark with same result.

Here is debug log from Pidgin (trying to transfer files from Pidgin to Adium):

(22:42:28) jabber: Recv (ssl)(357): <iq type="result" to="admin@dvlp.shtrih-m.ru/Home" id="purpled182a488" from="alur@dvlp.shtrih-m.ru/AlurMac"><si xmlns="http://jabber.org/protocol/si"><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="submit"><field var="stream-method"><value>http://jabber.org/protocol/bytestreams</value></field></x></feature></si></iq>
(22:42:28) network: Listening on port: 8245
(22:42:30) network: Couldn't create UPnP mapping
(22:42:30) network: Couldn't create UPnP mapping
(22:42:30) stun: using server (22:42:30) jabber: jabber_si_xfer_bytestreams_listen_cb() will be looking at jsx 01AD42D0: jsx->streamhosts 00000000 and sh->jid 01B1DDA0(22:42:30) jabber: Sending (ssl): <iq type='set' id='purpled182a493' to='alur@dvlp.shtrih-m.ru/AlurMac'><query xmlns='http://jabber.org/protocol/bytestreams' sid='purpled182a489'><streamhost jid='admin@dvlp.shtrih-m.ru/Home' host='192.168.204.1' port='8245'/><streamhost jid='proxy.dvlp.shtrih-m.ru' host='10.11.0.4' port='7777'/></query></iq>
(22:42:33) jabber: Sending (ssl): <iq type='get' id='purpled2e84e6'><ping xmlns='urn:xmpp:ping'/></iq>
(22:42:36) jabber: Recv (ssl)(357): <iq type="result" to="admin@dvlp.shtrih-m.ru/Home" id="purpled182a47c" from="alur@dvlp.shtrih-m.ru/AlurMac"><si xmlns="http://jabber.org/protocol/si"><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="submit"><field var="stream-method"><value>http://jabber.org/protocol/bytestreams</value></field></x></feature></si></iq>
(22:42:55) jabber: Sending (ssl): <iq type='get' id='purple45db12f'><ping xmlns='urn:xmpp:ping'/></iq>
(22:43:01) jabber: Recv (ssl)(213): <iq type="error" id="purpled182a493" to="admin@dvlp.shtrih-m.ru/Home" from="alur@dvlp.shtrih-m.ru/AlurMac"><error code="404" type="cancel"><item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
(22:43:01) jabber: jabber_si_xfer_free(): freeing jsx 01AD42D0(22:43:01) jabber: in jabber_si_xfer_cancel_send
(22:43:03) jabber: Sending (ssl): <iq type='get' id='purpled2e84e7'><ping xmlns='urn:xmpp:ping'/></iq>
(22:47:51) jabber: Sending (ssl): <iq type='result' to='alur@dvlp.shtrih-m.ru/AlurMac' id='purple98a67fbd'><si xmlns='http://jabber.org/protocol/si'><feature xmlns='http://jabber.org/protocol/feature-neg'><x xmlns='jabber:x:data' type='submit'><field var='stream-method'><value>http://jabber.org/protocol/bytestreams</value></field></x></feature></si></iq>
(22:47:52) jabber: Recv (ssl)(345): <iq type="set" id="purple98a67fbf" to="admin@dvlp.shtrih-m.ru/Home" from="alur@dvlp.shtrih-m.ru/AlurMac"><query xmlns="http://jabber.org/protocol/bytestreams" sid="purple98a67fbe"><streamhost jid="alur@dvlp.shtrih-m.ru/AlurMac" host="192.168.1.9" port="56061"/><streamhost jid="proxy.dvlp.shtrih-m.ru" host="10.11.0.4" port="7777"/></query></iq>
(22:47:52) dnsquery: Performing DNS lookup for 192.168.1.9
(22:47:52) dnsquery: IP resolved for 192.168.1.9
(22:47:52) proxy: Attempting connection to 192.168.1.9
(22:47:52) proxy: Connecting to f16850700f45afc7e2a24b5be1b1394f1e29ff36:0 via 192.168.1.9:56061 using SOCKS5
(22:47:52) socks5 proxy: Connection in progress
(22:48:03) jabber: Sending (ssl): <iq type='get' id='purpled2e84f1'><ping xmlns='urn:xmpp:ping'/></iq>
(22:48:07) jabber: Streamhost connection timeout of 15 seconds exceeded.
(22:48:07) jabber: si connection failed, jid was alur@dvlp.shtrih-m.ru/AlurMac, host was 192.168.1.9, error was Timeout Exceeded.
(22:48:07) dnsquery: Performing DNS lookup for 10.11.0.4
(22:48:07) dnsquery: IP resolved for 10.11.0.4
(22:48:07) proxy: Attempting connection to 10.11.0.4
(22:48:07) proxy: Connecting to f16850700f45afc7e2a24b5be1b1394f1e29ff36:0 via 10.11.0.4:7777 using SOCKS5
(22:48:07) socks5 proxy: Connection in progress
(22:48:08) jabber: Sending (ssl): <iq type='get' id='purple29d4b4e3'><ping xmlns='urn:xmpp:ping'/></iq>
(22:48:22) jabber: Recv (ssl)(72): <iq type="result" id="purpled182a4a4" to="admin@dvlp.shtrih-m.ru/Home"/>
(22:48:22) jabber: Streamhost connection timeout of 15 seconds exceeded.
(22:48:22) jabber: si connection failed, jid was proxy.dvlp.shtrih-m.ru, host was 10.11.0.4, error was Timeout Exceeded.
(22:48:22) jabber: Sending (ssl): <iq type='error' id='purple98a67fbf' to='alur@dvlp.shtrih-m.ru/AlurMac'><error code='404' type='cancel'><item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>
(22:48:22) jabber: jabber_si_xfer_free(): freeing jsx 0306B890(22:48:22) jabber: in jabber_si_xfer_cancel_recv

And here is an example of error from Openfire error.log:

2008.11.04 15:53:18 [org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$1$1.run(Pr oxyConnectionManager.java:115)
] Error processing file transfer proxy connection
java.io.IOException: Illegal proxy transfer
at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.processConn ection(ProxyConnectionManager.java:192)
at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.access$100( ProxyConnectionManager.java:44)
at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$1$1.run(Pro xyConnectionManager.java:112)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Please, help me solve this problem!

make sure you have enable all the ports listed in the server admin website in your firewall and router at both locations. Make sure file transfers are allowed on both servers.

I’ve got a similiar problem: File transfer is not possible with Pidgin, but it works with Gajim. My Openfire error log shows many entries like:

2008.11.18 14:53:16 [org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$1$1.run(ProxyConnectionManager.java:115)] Error processing file transfer proxy connection
java.io.IOException: Only SOCKS5 supported
at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.processConnection(ProxyConnectionManager.java:143)
at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.access$100(ProxyConnectionManager.java:44)
at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$1$1.run(ProxyConnectionManager.java:112)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)

I don’t know if this problem is related to Openfire or to Pidgin

Your problem is different in that it is Pidgin. The original posts states this is even a problem with spark. Please open a new thread.

Yes, all ports listed in administration panel is open (e.g. 7777) in both sides. File transfers are allowed on both sides. But it doesn’t work : (

I’ve tried to make experiment. Behind the router, on local Openfire server, all works great.

Maybe I should open a wider range of ports? But I don’t know this range, can you help me? I’m really going mad…

Is this connected with file transfer between pcs? If yes, then try the unlimited data transfer with no limit on file size solution 123Go here, Dorotheus Technologies. This program can help you in sending and receiving huge files, it can do 16000GB single file. One can transfer thousands of gb everyday. so check 123Go latest version.

Thanks all, problem is solved. There are to ways for solution: server- and client-side. On the server side I’ve set these properties (I don’t know, what property is really helpful, because I’ve made a lot of experiments ):

xmpp.proxy.enabled

true

xmpp.proxy.externalip

xmpp.proxy.port

7777

You also must open proxy port in both sides in you firewall.

These properties MUST be turned on:

xmpp.domain

xmpp.filetransfer.enabled

true

And on client side, if you want to transfer files, you have to turn on this option and set fields (for client Psi)

  • in global settings - set port for data transfer

  • in global settings - set field “External address for data transfer” as proxy.

  • in account settings, “Misc” tab - set field “Proxy server for data transfer” as proxy.

For now, I have successful results with Psi. Clients, based on libpurple, have a bug with transfer files through NATs and firewalls - they cannot detect public server IP (I think so, but it’s may be a my bug in settings…)

I hope this solution will be helpful for anyone who have same problems : )