From some discussion on the dslreports.com VoIP forum I have found that Asterisk does not necessarily match peer and registrar even if they have the same DNS name. What that means is that even if you define a peer as host=gvgw.simonics.com and register to gvgw.simonics.com, if DNS has multiple A records and/or SRV records for that name, then Asterisk may pick different ones for the registrar and peer. That's no problem for our service, but it's a problem for Asterisk, because it means that inbound calls will possibly not match a defined peer.
There are two workarounds to this problem that I know of. One is to enable anonymous SIP calls. Then it is not required that incoming calls match against a SIP peer. Asterisk will just accept calls from everywhere.
The second is to use the "CallCentric method" which is documented in many places. In brief, you look up all the IP addresses for the proxies from which calls might come and define (incoming-only) peers for them. You can do that in FreePBX but it's just as quick to do it in sip_custom.conf. Here is one post out of a long thread at dslr:
http://www.dslreports.com/forum/r30005405-