SIP trunks behind NAT/Firewall

I have made two SIP trunks on my freePBX, one to pbxes.com and one to poivy.com.
after playing around with them i finally managed to get the pbxes.com trunk to register but no sign of sip registration for POIVY.

Even though pbxes sip registers, i have not managed to place a call using this. I am not sure if this is because pbxes.com free account does now allow this or because there is NAT/firewall on the way. In outbound route i have the following dial pattern for pbxes: 8|. . when a call is placed using this trunk, i get a message that the line is busy!

in order to test both settings (pbxes & poivy) i used a ATA adapter in my network. interestingly pbxes registers and i am able to place calls. no such luck for Poivy though, however the same settings on ATA works at home. so i am assuming that this is due nat/firewall!
this is the line i get on PBX status:

PoivY/xxx 77.72.169.131 N 5060 UNREACHABLE
PBXes/xxx 88.198.69.250 5060 Unmonitored

how can i make sure what is the cause of this problem and solve this issue? will port forwarding work?

might be handy to mention that i use the following peer details for poivy:

disallow=all
allow=ulaw&alaw
authuser=userxxx
fromdomain=poivy.com
fromuser=userxxx
host=sip.poivy.com
insecure=very
nat=yes
qualify=yes
secret=PASS
type=peer
username=userxxx

Wow, you have no less than five seperate authentication factors (authuser, fromdomain, fromuser, host and secret) then you set insecure=very negating everything.

The idea is to use the least amount of authentication factors needed to uniquely qualify the trunk. You only use the insecure setting when running unauthenticated traffic from a static IP.

You should ask the provider for the correct settings to use for FreePBX and/or Asterisk. Every provider seems to have slightly different requirements, and they should tell you what they are…

Well i’m really puzzled by this! just cant get it to work. i assigned a public IP address to my PBX server using mapped IP option on firewall, allowed SIP and VOIP protocols through. this solved the problem of POIVY being unreachable. now SIP peers status looks like this:

Name/username Host Dyn Nat ACL Port Status
SPA400 192.168.3.243 N 5060 Unmonitored
PoivY/USER 77.72.169.134 N 5060 Unmonitored
PBXes/USER 88.198.69.250 N 5060 Unmonitored

Still I can not manage to place a call using POIVY or PBXes trunk. I also tried opening all protocols to my public IP with no luck.

After a call is placed, i get the following message after 10 sec or so:
all circuits are busy now!

any ideas what im missing?

; Out
register => USERNAME_POIVY:[email protected]/USERNAME_POIVY

; PROVIDER
; Out - Poivy
[out]
type=peer
context=out_call
username=USERNAME_POIVY
fromuser=USERNAME_POIVY
secret=PASSWORD
host=sip.poivy.com
fromdomain=sip.poivy.com
qualify=yes
insecure=very
nat=yes