Hard phones lose the ability to receive calls after a few minutes

Hello everyone,

I have a manual install of FreePBX set up on a digitalocean CentOS 6.5 x64 vps droplet. I need to set up a bunch of remote extensions. All of the remote extensions are behind a firewall and are using NAT. All of my softphone extensions are working fine since I changed NAT to Yes in the extension settings. My hardphones are able to make outgoing calls just fine but cannot receive calls. I have a Snom 821 and a Snom 370. Right after hardphones register, they ring and can receive calls, but that only lasts for a few minutes and then they stop being able to receive calls. This is true for both internal and external calls.

I used this guide as a basis for my install: http://wiki.freepbx.org/display/HTGS/Installing+FreePBX+2.11+on+Centos+6.3

I followed that pretty closely. I also have Fail2ban active to protect it.

Versions:
FreePBX 2.11.0.37
Asterisk 11.10.0

Any guidance you could provide would be great. I used to be running the FreePBX distro on a server inside my network, but our ISP is somewhat unreliable and I want to have my freepbx in the cloud so when our internet goes down people can still leave voicemails for us, etc instead of getting disconnected messages.

I finally found a solution and wanted to post it here in case anyone has the same problem.

I reduced the qualify value in the extension settings from 60 to 20 seconds, so that the FreePBX box will contact the phone every 20 seconds and my firewall will keep the NAT port open. All of my hard phones are working perfectly now.