Intermittent problem: extensions report they are 'busy' or 'unavailable' even though they are not

I have two different FreePBX distros running for two different businesses. Both are reporting this problem. I have experienced this problem once.

Occasionally, perhaps once or twice a day, if they try to transfer a call, call a ring group, or direct-dial the extension, it will say it is “busy” or “unavailable”. This will last for about 1-2 minutes before returning to normal. When this was happening to me, I logged into my Cisco SPA303 and it said on its Status page that all of the extensions were working, registered, and “Idle”. The “Next Registration In:” was around 75 seconds when this problem was happening. So as a test, I waited for another phone to be around that time, but it worked fine.

I am at a complete loss as to what the problem could be. All of the phones have the latest firmware, and my FreePBX distro is the latest version, with all YUM updates, and all Modules installed.

I had a similar issue where phones randomly unregistered. The problem was that there was an IP conflict. I had static IPs for all phones, but accidentally gave two phones the same IP. Could this be an IP conflict for you as well?

You can check IPs of registered phones at the Asterisk SIP Info page in FreePBX Reports

I checked all of the IP’s and there is no conflict. I even unplugged the phone, waited several minutes, and tried to ping/port scan it with no results. So I do not think this is a conflicting IP problem.

I was able to capture an Asterisk verbose debug log of the issue today:

http://pastebin.com/tPaMcrrL

Tonight I confirmed that the problem was the phones were not re-registering soon enough despite all indications saying otherwise. So both FreePBX and the phones use 3600 second long registration. The phones then would re-register every 2700 seconds. So there should have never been a problem, but for whatever reason FreePBX would count a phone as unregistered after just 2400 seconds, so for 5 minutes every 45 minutes the phones would not work.

So now I have the phones re-registering every 10 minutes and the problem should be fixed.