I tested KX3 companion app to control KX3 using Raspberry Pi2 running SER2CAT service on port 7777.
In local LAN this works fine, I am able to connect to RPI2 and can read / write KX3 VFO frequency and change modes as expected.
However, when I tested a connection over the Internet (3G network on Android phone) where I had Dynamic DNS resolution for my home router (NetGear C6300) and had configured port forwarding for port 7777 to my Raspberry Pi2 local LAN address, KX3 companion app is not able to connect. I tested the setup with different port numbers (up to 65000) to make sure my ISP is not blocking the connection, I also checked with RPI2 using 'sudo nc -l -v -D -p 7777' to check if connection request ever comes to RPI2. In LAN case this works, with remote Internet case it does not.
Interestingly with a Plumble Android client (free voice chat application for Mumble server) the remote Internet case works just fine using port 64738 and port forwarding on home router. Same router, same phone, same 3G internet connection, same port forwarding configuration (only port number was different), and same RPI2 but with a different application.
Has anybody got KX3 companion application to work over a remote Internet connection? Could there be some problem in a way this application handles TCP/IP socket connections?
After testing more I found the culprit. For some reason in NetGear C6300 router determined that connection attempts coming from KX3 Companion app were Denial of Service attack (even though the port 7777 was specifically called out in Port Forwarding section). When I turned on "Disable Port Scan and DoS Protection" on the WAN Setup screen of NetGear C6300 router the remote control over Internet started to work. So application works just fine, problem was in the router configuration.