Trouble with Konversation DCC, unable to initiate, can only accept incoming

I have a self-hosted IRC server (InspIRCd) and was testing it with some friends. I was most interested in the DCC capabilities. The most I’ve been able to test was with myself on the same computer, since I don’t have many devices to experiment with.

While the main basic capabilities worked, DCC was the obvious one that had issues. To cut to the chase, I could receive files without any issues, but sending them was utterly impossible. My friend would be able to receive the request and respond, but nothing would happen and it’d timeout after a while.

Again, I could receive anything he sent, but I couldn’t send anything to him. I thought it was isolated to DCC file sending, but we both quickly realized that DCC chat was likewise only possible if he initiated it first. His client (KVIrc) doesn’t appear to support the DCC whiteboard, so I was unable to test that, but I assume it’d run into the same problem.

I don’t have much experience with IRC, let alone DCC, so I can only work on the assumption that outbound traffic is easier to work through a firewall than inbound. That being said, the default DCC port range of 1026-7000 is allowed on my firewall. I could try and test it on other (proper) IRC servers, but I didn’t have the time to do so and I just assume that it’s not the IRC server, and instead something to do with my client.

To summarize:

  • DCC chat and file sending can only be received, initiating chat or file sending is not possible.
    • The other party can see the incoming request, but the acceptance reply is not received by my client, so the receiver times out after being stuck on the “connecting” phase.
  • DCC chat and file sending works locally on the same machine between different clients (tested between my main Konversation client and the WeeChat terminal client).
  • Firewall set to allow incoming TCP traffic on the port range 1026-7000, outgoing implicitly allowed.
  • Sometimes the error related to the socket appears in chat history (i.e. for DCC chat and whiteboards).
  • Port 0 is the incoming destination port, but I am unfamiliar with DCC and haven’t logged the successful transfers, so I’m not sure about the relevance to the problem.
  • Used both self-IP retrieval via IRC server and network interface.
  • Disabled fast DCC send, just in case that was the issue, but it didn’t help.

Any help and advice would be appreciated.