No audio with remote endoint when calling internal extensions, but works when calling outside line

This is your absolute first start location. Once you have all of that working, you’re good to go.

OK - One by one:

This is normal, sort of. A lot depends on where you ESXI host is. If it’s in your local network, the NAT wouldn’t be an issue for the extensions.

Off-hand, this sounds like “probably” a NAT issue with your remote phones. Without a SIP DEBUG, you’re going to have problems troubleshooting this one.

This means the Remote phone is not registered when the call occurs. That sounds like a SonicWALL problem, but once again, the NAT settings will need to be looked at.

All of this could be the SonicWALL, but I suspect you’ve got a couple of issues that working together to thwart your enjoyment of life.