Weird one way audio issue

I have been having a pretty weird one-way audio issue that I can’t seem to figure out. I have my Asterisk box installed on CentOS. I’m running Asterisk with FreePBX 2.7. I am using MagicJack as a SIP trunk for inbound and outbound calls. Well, my weird issue is this.

If I have my inbound route to go directly to one of my internal extensions I can hear the audio just fine on both sides.
If I dial out from an internal extension, the external phone can hear me fine, but I can’t hear them.
If I have my inbound route be my IVR, the external phone will choose an option and then my phone will ring and they can hear me but I can’t hear them.
If I call an internal extension from an internal extension, audio is fine on both sides.

My asterisk box is up in the cloud and it’s not behind NAT or a firewall(disabled to help problem solve). My internal phones are on my home network which is behind a pfSense firewall/router. I have allowed all traffic in and out in the firewall for testing. I have not done port forwarding to a phone because I have multiple phones. I have done a Wireshark capture on a one-way audio call and it all appears like traffic is flowing fine both ways. Wireshark shows g711U being used for audio, which is what Magicjack uses by default.


Your SIP options for your extensions should have

nat=yes qualify=yes canreinvite=no
for starters.
However, you have an RTP issue by the sounds of things.
While not knowing everything, here are some questions you should look at:

  • What phones are you using ? Some phones are more NAT friendly than others. Try another brand (if practical). Try Xlite as its free.
  • Have you tried using a public Stun server ??
  • Have you tried a generic router ? PFSense has lots of cool features, but may have something that screws with the SIP / RTP.
  • What happens when you bypass the router and just run one of the phones on a public internet connection ??

Have you tried removing the unused codes and just run ulaw ?

Hope this helps. Let us know how you go.