See the contents of the Contact header in A's REGISTER messages. They tell FreeSWITCH where to send the call to.
NAT can confuse matters when picking the correct value though. It needs to be the external IP & port of the NAT router that the internal IP/port of the SIP messages are mapped to. Sometimes the phone will put the internal details instead which aren't routable externally. Sometimes it can detect it correctly (eg via STUN). If it can't some routers will contain a SIP ALG that will rewrite the header for a phone sending the internal ip/port to the external ip/port, but sometimes this can cause more problems than it solves if it doesn't do this correctly and it can't modify the packet if you're using TLS.
On top of that that internal to external port mapping will expire on that NAT router if you don't re-REGISTER frequently enough so that could stop the INVITE getting through even if you're sending to the correct place.