File Transfers between Clients

If your users reside behind a NAT, they may have difficulty when transferring files between them as they may not be able to initiate direct client-client transfers.
To get around this the SOCKS service and bytestreams protocol can be used.

You need to do the following:

  • Set up the SOCKS service in System - Services, as described in the System Node manual.
  • Set up a bytestreams service in the Instant Messaging node of the GUI as described in Services , using the following criteria:

    service: proxy.<domain>.com (this should be tailored to fit your domain name)

    category: bytestreams

    type: proxy

    namespace: http://jabber.org/protocol/bytestreams

Note: The namespace is pre-defined in the dropdown to allow easy input.

And your users may need to configure the SOCKS service in their IM clients, as some clients will not automatically query the IM server for a SOCKS service:

  • Enter proxy.<domain>.com in the Data Transfer Proxy settings (refer you the client's documentation for further information).

    Here, you have to manually enter the JID of bytestream proxy, which can be listed in service discovery.

    This need not be a valid DNS record at all.

    e.g.: the JID is proxy.icewarp.com. You know that proxy is on server mail.icewarp.com, but proxy.icewarp.com has to be entered into the "Data Transfer Proxy:" field. Otherwise it will not work.

  • An IM client asks the IceWarp IM Server about the proxy (supplying the JID), and the IceWarp Server replies with IP and port.

    Make sure that IP and port configured for the proxy server are accessible also from outside of your network.

    Note: If you need to access SOCKS server from LAN and WAN and your public IP is not usable from LAN, you can put A DNS record to SOCKS IP field instead of IP. Then configure DNS, this record (domain name) to be translated into valid and accessible server IPs for both WAN and LAN.

    Note that Control and IM services need to be restarted and then a user needs to relog to WebClient to have the SOCKS IP change applied.