I’ve been trying to fix this issue for a while and am not getting anywhere.
I have a FreePBX server located at my office. Any phones that are connected to the PBX on the local network work fine. However, any phones that are not on the same network as the PBX (such as my clients phones) are having errors. The remote phones can connect and register to the PBX and they can get calls just fine. When I try to make a call from the remote phone it will ring out and the person on the other line can pickup but if they do I get no audio whatsoever.
I have disabled the firewall and forwarded ports 5060 and 10000-20000 on my router but it doesn’t seem to make any difference. Any help is greatly appreciated.
First, if any of these assumptions are incorrect, please provide details: SIP over UDP, no encryption, no VPN, no VLANs, server has only one NIC. Calls from remote not involving a trunk work properly, e.g. call from remote extension to local extension, call from remote extension to *43 echo test.
Please confirm that for the extension, Direct Media is No and Rewrite Contact is Yes. In Asterisk SIP Settings, External Address and Local Networks are correctly set; STUN Server Address and TURN Server Address are blank. In your router and the remote router, any SIP ALG settings are turned off. If either router has a setting to rewrite source port, be sure that is off. In the remote phone, any NAT related settings are turned off, and the only codecs enabled are ulaw (a.k.a PCMU or G.711u) and (if you have wideband) G722 or Opus.
If you still have trouble, set up to record the call and report whether audio from either end appears on the recording, and whether either end can hear the other. Also report: remote device make and model or version, local and remote router make/model, local and remote modem make/model. If the remote device is a smartphone app, does it fail both on Wi-Fi and on mobile data?