The easy answers are:
- You have a firewall issue. This is likely since your “ancient” PBX didn’t have one built in. The new one does, and can easily be convinced to not allow audio.
- You have a codec issue. Personally, it sounds to me like your problem is more codec than firewall. I’m basing that on the fact that your call recording is working in both directions, but not at the phones. I’m also thinking that since the GSM connections work, your GSM codecs would be the chosen codec and allow the system to work properly there.
Since you manage all of the bandwidth in the network and we assume that you have enough, one easy test would be to check the configurations of the phones and extensions (the part in FreePBX) and just set everything to your regional “*-law” codec. If you’re in the States. that would be U-Law, otherwise it will be “A-Law”.
The codec issue is harder to diagnose, but if you do a SIP trace of a call that fails, you should be able to see the codec election. There was a problem with one of the Asterisk versions where, once a codec was asked for, the negotiation for the rest of the process failed. Limiting your codec choices (or upgrading Asterisk) would fix that.
Since you’re dealing with a new installation (for half of your network), you might need to look closely at the built-in firewall. You don’t need the “adaptive” part of the firewall - it sounds like all of your phones are on your own networks, so setting everything up static should get you where you want to go.