Trouble with remote SIP phones

As if this topic doesn’t come up enough :wink:

Here is my sip.conf file:

context=from-sip-external
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
externip=MYIPADDRESS
localnet=172.16.50.0/255.255.255.0
disallow=all
allow=ulaw
allow=ilbc
allow=alaw
nat=yes
callerid=Unknown
canreinvite=no
progressinband=yes

The externip setting is set to my actual IP address, not 'MYIPADDRESS’
In AsteriskNow, I have SIP extensions setup that have NAT enabled. I have my softphone on the same local network as the server and I have a softphone at a remote location (both softphones are X-Lite). The outside IP address is being directly translated to the internal one and I am not currently blocking any TCP or UDP traffic.

I am having two problems. When I place a call from the softphone here at the office, the call is placed and the remote user and I are able to have a conversation for a few seconds. However, the X-Lite phone on my laptop does not show the call as being connected (the ‘Calling…’ message still displays despite being connected) and the call eventually is cut off and then goes to voicemail.
The next problem I am having is that the remote user can not have any password set for their phone. It seems that the password must be blank otherwise we keep getting unauthorized messages when the phone registers.

ANY help would be appreciated!

While I appreciate all of the help I have received from the community :wink:, I was able to fix this issue myself.

The problem was with the Cisco Pix firewall. Specifically, with fixup. Fixup is a packet inspection system Cisco puts on many well-known protocols as an additional layer of security. Unfortunately, it seems to interfere with the SIP protocol in weird and unexpected ways. To get around this, you must disable fixup for the SIP TCP and UDP ports, like so:

no fixup protocol sip 5060
no fixup protocol sip udp 5060

Once I did that, it worked like a charm.