File transfers do not work via xmpp with other clients


#1

Hello,

         Environment: Linux, Debian 32-bit
            Reporter: gradinaruvasile

The file transfers do not work when sending files via jabber or google talk accounts to other clients (Pidgin, Empathy etc.)
The file transfer notification is seen on the other client, but once accepted, the transfer never starts.

I tested this on a local OpenFire server and Google talk accounts. I used Jitsi (various versions up to the current, all behaved the same) and Pidgin (various versions, 2.5 and up to 2.7, all worked to the same effect).

Also, even between 2 Jitsi clients the google talk/jabber file transfers are slow (max 39 kilobytes/sec), whereas Yahoo file transfers are fast (a few hundred KBytes or more). Pidgin->Pidgin works perfectly well and as fast as the network permits.

Sending a file from Jitsi to Pidgin on the local jabber server (192.168.3.254, infobenefic.ro domain):

Errors from Jitsi launched in the console:

13:29:35.526 SEVERE: impl.protocol.jabber.OperationSetFileTransferJabberImpl.run().601 An exception occured while transfering file:
Error establishing transfer socket:
  -- caused by: Unexpected response from remote user:
  at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.createOutgoingStream(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer.negotiateStream(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer.access$100(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer$2.run(Unknown Source)
  at java.lang.Thread.run(Thread.java:662)
Nested Exception:
Unexpected response from remote user:
  at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.waitForUsedHostResponse(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.initBytestreamSocket(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.createOutgoingStream(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer.negotiateStream(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer.access$100(Unknown Source)
  at org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer$2.run(Unknown Source)
  at java.lang.Thread.run(Thread.java:662)

xmpp console output on Pidgin:

<iq type=‘get’ id=‘purple1c59fec6’>
  <ping xmlns=‘urn:xmpp:ping’/>
</iq>
<iq type=‘result’ id=‘purple1c59fec6’ to=‘test_user@infobenefic.ro/aa’/>
<presence id=‘0WtfK-264’ type=‘unavailable’ from=‘laszlo.kertesz@infobenefic.ro/home-desktop’ to=‘test_user@infobenefic.ro’>
  <c xmlns=‘http://jabber.org/protocol/caps’ ext=’’ hash=‘sha-1’ node=‘http://jitsi.org’ ver=‘sUa40EADNAYzJQI5V8Qo+7OtZz8=’/>
</presence>
<presence id=‘87g8z-7’ from=‘laszlo.kertesz@infobenefic.ro/home-desktop’ to=‘test_user@infobenefic.ro’>
  <c xmlns=‘http://jabber.org/protocol/caps’ ext=’’ hash=‘sha-1’ node=‘http://jitsi.org’ ver=‘sUa40EADNAYzJQI5V8Qo+7OtZz8=’/>
</presence>
<presence id=‘87g8z-12’ from=‘laszlo.kertesz@infobenefic.ro/home-desktop’ to=‘test_user@infobenefic.ro’>
  <status/>
  <priority>7</priority>
  <c xmlns=‘http://jabber.org/protocol/caps’ ext=’’ hash=‘sha-1’ node=‘http://jitsi.org’ ver=‘sUa40EADNAYzJQI5V8Qo+7OtZz8=’/>
</presence>
<iq id=‘87g8z-51’ to=‘test_user@infobenefic.ro/aa’ from=‘laszlo.kertesz@infobenefic.ro/home-desktop’ type=‘get’>
  <services xmlns=‘http://jabber.org/protocol/jinglenodes’/>
</iq>
<iq id=‘87g8z-51’ to=‘laszlo.kertesz@infobenefic.ro/home-desktop’ type=‘error’>
  <services xmlns=‘http://jabber.org/protocol/jinglenodes’/>
  <error type=‘cancel’ code=‘501’>
    <feature-not-implemented xmlns=‘urn:ietf:params:xml:ns:xmpp-stanzas’/>
  </error>
</iq>
<iq id=‘87g8z-53’ to=‘test_user@infobenefic.ro/aa’ from=‘laszlo.kertesz@infobenefic.ro/home-desktop’ type=‘set’>
  <si xmlns=‘http://jabber.org/protocol/si’ id=‘jsi_1279253886229544564’ profile=‘http://jabber.org/protocol/si/profile/file-transfer’>
    <file xmlns=‘http://jabber.org/protocol/si/profile/file-transfer’ name=‘EmuCR-jdosbox_0.jar’ size=‘2073161’>
      <desc>Sending file</desc>
    </file>
    <feature xmlns=‘http://jabber.org/protocol/feature-neg’>
      <x xmlns=‘jabber:x:data’ type=‘form’>
        <field var=‘stream-method’ type=‘list-multi’>
          <option>
            <value>http://jabber.org/protocol/bytestreams</value>
          </option>
          <option>
            <value>http://jabber.org/protocol/ibb</value>
          </option>
        </field>
      </x>
    </feature>
  </si>
</iq>
<iq type=‘result’ to=‘laszlo.kertesz@infobenefic.ro/home-desktop’ id=‘87g8z-53’>
  <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>
<iq id=‘87g8z-63’ to=‘test_user@infobenefic.ro/aa’ from=‘laszlo.kertesz@infobenefic.ro/home-desktop’ type=‘set’>
  <query xmlns=‘http://jabber.org/protocol/bytestreams’ sid=‘jsi_1279253886229544564’ mode=‘tcp’>
    <streamhost jid=‘laszlo.kertesz@infobenefic.ro/home-desktop’ host=‘127.0.0.1’ port=‘7777’/>
    <streamhost jid=‘proxy.infobenefic.ro’ host=‘null’ port=‘7777’/>
  </query>
</iq>
<iq type=‘error’ id=‘87g8z-63’ to=‘laszlo.kertesz@infobenefic.ro/home-desktop’>
  <error code=‘404’ type=‘cancel’>
    <item-not-found xmlns=‘urn:ietf:params:xml:ns:xmpp-stanzas’/>
  </error>
</iq>
<iq type=‘get’ id=‘purple1c59fec7’>
  <ping xmlns=‘urn:xmpp:ping’/>
</iq>
<iq type=‘result’ id=‘purple1c59fec7’ to=‘test_user@infobenefic.ro/aa’/>
<iq type=‘get’ id=‘purple1c59fec8’>
  <ping xmlns=‘urn:xmpp:ping’/>
</iq>
<iq type=‘result’ id=‘purple1c59fec8’ to=‘test_user@infobenefic.ro/aa’/>
<iq type=‘get’ id=‘purple1c59fec9’>
  <ping xmlns=‘urn:xmpp:ping’/>
</iq>
<iq type=‘result’ id=‘purple1c59fec9’ to=‘test_user@infobenefic.ro/aa’/>
<iq type=‘get’ id=‘purple1c59feca’>
  <ping xmlns=‘urn:xmpp:ping’/>
</iq>
<iq type=‘result’ id=‘purple1c59feca’ to=‘test_user@infobenefic.ro/aa’/>

···

--
O zi buna,

Kertesz Laszlo