Sudden drops when calling between two remote extensions

I am hosting an Asterisk + FreePBX system in a company, within NAT (behind a Juniper firewall). The purpose here is to have the ability to have two remote extensions (smartphones on 3G/4G) call one another. Ports 12000 - 12040 are configured in Asterisk and are being forwarded by Juniper.

The Asterisk server is configured correctly for internal and external calling. I can call between extensions within the local network, without any hassle. I can also register external extensions and call internal extensions. But when I try calling an external (on 3/4g) extension with another external (3/4g) extension, the call disconnects at random moments. The call could last 2 seconds, 10 seconds, 20 seconds, but always disconnects. The logs show no errors or warnings.

Has anyone got any idea how this is possible? My first guess is that there’s something wrong with the firewall. I have already put in larger timeouts in the Juniper ALG SIP settings, but the behaviour doesn’t change.

PS: The firewall is configured to forward traffic from external port 5070 to internal port 5060. I prefer to do this to trick PBX hackers. The external extensions are configured to send their SIP messages to port 5070 instead of 5060. Could this have anything to do with the issue?

So quick summary:
Firewall: Juniper SSG-5
Asterisk: 1.8 + FreePBX interface
Internal <-> internal works
External <-> internal works
External <-> external calls drop randomly.

Thanks in advance!

Bump? I really need this solved as soon as possible and I’ve tried countless things!

For ASAP requests use the job forum.

In the other hand is kind difficult help you if you don’t provide logs at least a sip debug and cli output.