Incoming Call from trunk only work with externhost= but not with externip= in sip_nat

HI. I have problems from incomings calls when I use in sip_nat.conf

the following:

with this no incoming calls passthru it sound busy for the caller to pbx
nat=yes
localnet = 192.168.2.0/255.255.255.0
externhost = 198.121.47.130

but with externhost= it works fine just like this config below

nat=yes
localnet = 192.168.2.0/255.255.255.0
externhost = mypbx.no-ip.net

NOTE
I had edited etc/hosts
adding the dynamic domain as below

hosts

Do not remove the following line, or various programs

that require network functionality will fail.

127.0.0.1 localhost
127.0.0.1 mypbx.no-ip.net
127.0.0.1 pbx.localdomain pbx localhost.localdomain

I have 2 routers before my pbx box.
1 router has sip ports 5060-5070 udp and rtp 10000-20000 udp forward to second router ip
2 second router has sip ports 5060-5070 udp and rtp 10000-20000 udp forward to pbx box

I need to use externip= instead of externhost= cuz i have problems with 1 audio side problem for a remote extension
and is recommended to use externip=

I have talk with support from my sip DID and they did a trace

they said that when it is set to public ip (i suppouse they refer to when i put externip=) they saw that the the user is not comming in the INVITE and therefor the call is blocked

so i dont know what is the problem when putting externip= and I can not make fix the 1 audio problem from a remote extension e63 nokia

If you could supply a network drawing and your static routes plus your NAT for each router that would help figure out where the problem is.