I was able to get an SPA942 to register with my CME on the LAN. However, when I move the SPA942 to a location behind a NAT, it fails to register. I ran "debug ccsip messages" on the CME and found multiple issues with the SPA not registering. Main problems were that CME was responding to the private IP address of the SPA942, embeded in the SIP REGISTER message instead of responding to the NAT'ed IP address of the SPA942. I have fixed this problem by specifying the public IP address of the NAT router in the SPA942's configuration on the SIP tab under the EXT IP field and setting the NAT Enable setting to Yes on the EXT tab. At this point, the correct IP address is embedded in the SIP REGISTER message, but the registration is still failing with the 401 Unauthorized message. The same exact phone is registering with the same credentials when it's plugged in my LAN.
Does anyone have any ideas? Why is NAT breaking registration?