Problems with no audio on incoming calls. internal and outgoing work fine

I have been fighting this issue for weeks now. The PBX in a flash is currently behind a Centos 4.7 iptables firewall. I have ports 5060 udp and 10000-20000 udp portforwarded to the PBX. I have the iptables firewall on the PBX turned wide open. I have watched the iptables logs and can find no denies. rtp debug shows active streams during the call. The incoming call is answered and I can watch the asterisk -vrr output show the entire connection and call take place but there is no audio. I have placed the external IP and local network settings in sip_general_custom.conf. I can put the unit on its own public IP if need be but have read thats not a good idea. IS my provider at fault here? I am using IP communications for my incoming and CDS Portal as my outgoing. I can make outgoing
calls and hear audio. I can make internal extension to ext. calls ok as well.
Everything I read says I have a NAT problem but I am truly lost. Can anyone help me figure this out?

take a look at http://freepbx.org/configuration_files

and the description of what sip_general_custom.conf file is for and NAT.

When you are behind a firewall you need to tell the phone system about it and what is considered local versus remote/external. The three lines you’ll need are discussed, just change them to the values you need.