1. NAT (Network Address Translation)
When Asterisk sits behind a NAT router, it advertises its private IP address (e.g., 192.168.1.100) in SDP (Session Description Protocol) messages. Remote endpoints try to send RTP packets to this private address, which is unreachable from the internet. The result: the remote side sends audio but it never arrives at Asterisk.
2. Firewall Blocking RTP Ports
Even with correct NAT settings, if the firewall blocks UDP ports 10000-20000 (Asterisk's default RTP range), media cannot flow. Many admins open SIP port 5060 but forget the RTP port range.
3. Missing or Incorrect externip/localnet
Without externip (or externaddr) configured, Asterisk does not know to replace its private IP with the public IP in SDP. Without localnet, Asterisk cannot distinguish which endpoints are local vs. remote.
4. directmedia=yes (Default in Some Configs)
When directmedia=yes, Asterisk tells endpoints to send RTP directly to each other, bypassing the server. If endpoints are on different networks or behind NAT, this direct path fails and audio drops.
5. SIP ALG on Router
Many consumer routers have a SIP Application Layer Gateway that rewrites SIP packets. This often corrupts the SDP, replacing correct IP addresses with wrong ones. This is a silent killer of VoIP audio.