An arbitrary outbound SOCKS5 endpoint is not automatically an XMPP file-transfer relay. XEP-0065 needs a service participating in XMPP discovery and activation as well as opening sockets.

The service has an XMPP address and a network host/port. The initiator discovers candidates and offers streamhosts; the target selects a usable one. Its SOCKS destination value is derived from the stream identifier and both participants' JIDs, not an ordinary request for the recipient's public IP. For a proxied transfer, activation tells the service to join the two streams.

When a transfer stalls, locate the first incomplete stage: discovery, streamhost connection, target selection or activation. Connecting to the host can succeed while XMPP coordination still fails. Keep the service JID, endpoint and transfer ID together when comparing client and service evidence.

For configuration, inspect the XMPP server's advertised service and the bytestream manager in the exact Smack release. Older managers may select internally without a supported custom-host method. Current documentation includes proxy prioritization and timeouts, but preferring the last working candidate neither publishes a new service nor makes an incompatible endpoint understand XEP-0065.

Mikanda mikatakata