Asterisk NAT problem in asterisk server

I have an asterisk 11 in public IP and another asterisk 11 on Private Network behind the NAT. The server behind the NAT is registering SIP friend to asterisk on public IP. everything is fine. But while making calls no audio is found and “rtp set debug on” not showing any result. What could be the problem.?
I have set externaddr as I found in the router IP of the asterisk on private network and localnet is set to IP on that the asterisk is being installed. stunaddr= stun.stunprotocol.org:3478
but no luck. Please some help me.

“localnet” should reflect the subnet that Asterisk is on, not just a single IP address. I’d suggest providing an actual SIP trace using “sip set debug on” with a description of the IP addresses so it can be seen exactly what is being told to each side for how media should flow.

We are also having a NAT issue where the remote phone could make outbound calls but any inbound calls to that remote extension will go straight to VM.

We’ve allowed any SIP traffic going to the Asterisk external IP to be routed to the internal IP of the phone server.

sip show peer - Unreachable but sees the remote phone’s external IP
Wiresharks showing Status:401 Unauthorized when the password and auth is correct.

Please do not hijack other people’s threads.

401 is a challenge for a password, not an unauthorised report. If you see 401 without an immediate repeat of the request with credentials, it generally means no credentials are configured. In any case, the fact you can see the address indicates that the registration is not failing.

You have provided no evidence that this is NAT related.

The fact that the device can initiate calls, means you either have allowguest set unsafely, or it is sending the correct credentials.

This seems more likely to be that the device is ignoring OPTIONS, generated as a result of the qualify option.