[Phone][Asterisk PBX][Phone]
and never
[Phone][Phone]
If you had a VoIP provider, you would put their server network in as VoIP servers and your PBX as the client.
In your case, with no provider, your PBX would be the VoIP server and the phones the clients. This is why you have to add the 10k-to-20k service manually and why, unless the phones are on a different subnet, the VoIP proxy doesn't help you.
In any case, you would need masquerading and an outbound firewall rule to get the non-SIP traffic to phones on the Internet and a DNAT to get the incoming non-SIP services to the PBX.
In your case, the SIP service also must be DNATted to the PBX and added to the outbound firewall rule. In addition, you may need a Full NAT (source changed to "Internal (Address)") instead of a DNAT because you have external extensions. Any luck with all that?
Cheers - Bob