To register internally you need to establish a VPN tunnel before that (PPTP, L2TP, OpenVPN), depending on what type of tunnels are supported by your Windows Phone and the router in front of your 3CX PBX. This will add also security to your communication line.
3CX softphones built their own 3CX tunnel (GRE type like) to the 3CX server itself over port 5090. The traffic is not encrypted, but all NAT / firewall issues are eliminated.
If you have set correctly port forwarding on your router in front of the 3CX server, you should be able to register the Linphone to your public IP address. Check 3CX port forwarding guidelines. You also need to allow registration outside of LAN into extension settings. Keep in mind this will reduce security, so at least use strong passwords.