What you describe is typically a NAT problem.
The phones open a NAT port and then wait for an inbound call. We send a call to that port, but the NAT has closed the port already.
To fix this, OnSIP sends a keep-alive when we see you are behind a NAT. However, in your case, we cannot detect the NAT because your firewall is replacing your internal IP address, e.g. 192.168.0.105 with the external IP address.
If you can get your firewall to stop any "SIP Translations" or "Application Level Gateway" it should resolve the problem.
You will know it is corrected, when you look at your Registration Details and see that the "Contact" IP is your internal address and the "NAT Address" is present.