External sip calls drop after circa 20 minutes

Hi forum
I’m trying to get a new FreePBX server working reliably.
Mostly good, but annoying problem with external calls being dropped midway through long discussion.
Trunks are all voip/sip.
Incoming and outgoing calls both dropped after circa 20 minutes.
(Haven’t tried an internal call for > 20 minutes.)
I’m searching the logs for clues.
Any other tips or clues as to what might be causing this, or how to resolve ?
TIA’s

This is some type of UDP NAT translation timeout in your firewall.

Thanks for reply.
We use NodePhone as sip provider.
Our network has IpCop firewall. (I have maybe just-better-than-average experience with IpCop.)
Various sip devices, aka “sip clients” can connect reliably to sip.internode.on.net without opening any holes in firewall or forwarding any ports.
We’ve used Linksys PAP2T, SPA3102 and Cisco desk-phones SPA-50X.
All these connect to NodePhone without difficulty.
What should I look for that Asterisk does differently to these consumer devices ?
More TIA’s

Asterisk is very agressive with path verification. This problem is always related to protocol timeouts. I don’t know ipcop specifically.

Does the audio drop in 1 or both directions just prior to the disconnect?

I haven’t noticed any audio drop, just a silent loss of voice communication, mid sentence, which is ~ slightly challenging.
BTW, some dropped calls were using G722 aka “wideband audio”, so I’d probably notice any audio strangeness.

I’ve discovered another wrinkle that might be related or give clues. (Or maybe this belongs in a new thread ?)
It seems that our Asterisk is losing sip trunk registration after some hours of no calls, eg overnight.
We’re mystified, since our other sip devices (PAP2T and SPA-504G’s) stay persistently registered to same sip server thru same firewall.
Wouldn’t Asterisk registration be potentially more aggressive than these consumer devices ?

It was a firewall problem. I had to play with nat settings on my SonicWALL for about a half a day until I figured out I wasn’t allowing UPD ports for RTP through.

first make sure you have all your subnets defined in Local Networks on the Asterisk SIP settings page.

Also you will need to open 10001 through 20000 and figure out where your IP traffic is really going. I was on a VPN trying to get to an extension on another VPN on my network. It finally started working when I created a two way route between the two subnets in NAT rules.

Thanks for feedback.
Understand that I can forward all UDP ports 10000 - 20000 thru the perimenter firewall to the Asterisk server.
Problem with that tactic is what will happen to other (non-Asterisk) sip devices (PAP2T and Cisco phones) also connected quite happily to same NAT firewall ?
Will all their UDP traffic be mis-directed to the Asterisk box. Seems potentially sub-optimal.

Rather than open any ports in firewall, it seems this issue might be solved using
qualify=yes
More real-life testing needed over few daze. So far I’m optimistic of solution.
Some relevant details here.