How can I make a call from Switch to Asterisk

Hello
I am trying to terminate calls from an international source to my Asterisk server, however, the sending server does not register as a user on my Asterisk and sends the call in the format:
Request: INVITE sip: 447xxxxxxx@zz.zz.zz.zz

Where: 447xxxxxxx is the pstn number called and
zz.zz.zz.zz is the global ip address of the my network.

However, my Asterisk gives back an error i.e.
Status: 404 Not Found

But when I test the call between two Asterisk servers on the same LAN, then the call is passed with zz.zz.zz.zz being the local ip address of the Asterisk server and it works.

Any suggestions on how to solve???

post your sip.conf [general] section. do you have Asterisk setup to accept unknown callers ? and a context to send them to ? a log file fragment for an incoming call will be useful too.

I have not set up Asterisk to accept unknown callers, how do I set this up cause this is what I need. Please post an example config I could use and test.
Thanks.

This is my Sip.conf:
[CallProvider]
type=friend
username=CallProvider
accountcode=CallProvider
regexten=CallProvider
callerid=XXXX
amaflags=services
;secret=XXXXX
nat=yes
externip=ZZ.ZZ.ZZ.ZZ
fromdomain=mydomain.com
localnet=192.168.1.0/255.255.255.0
dtmfmode=RFC2833
qualify=no
canreinvite=no
disallow=all
allow=g729
allow=ulaw
allow=alaw
allow=gsm
host=xx.xx.xx.xx
context=callingcard
regseconds=0
cancallforward=yes