So I had to replace our hardware firewall at our main site location. Where I have about 60 SIP desk phones. Mostly Polycom IP 450’s, with a few Polycom VVX’s and Yealink T29G’s thrown in the mix. All is well, but I did notice one thing that I felt compelled to ask about.
Part of the firewall deployment involved some brief lapses in Internet connectivity. Our FreePBX v16.0.30 is located “in the cloud,” so all SIP clients obviously require Internet access. When we lost Internet connectivity it took the desk phones upwards of an hour to register again. Of course up until their re-registration the desk phones appeared to still be associated. Although they were unreachable from the FreePBX’s standpoint.
I know there are some SIP keepalives and timeouts that can be configured. I have left all of those unchanged and are the default. And it appears as if the SIP registration timer is set at 3600 seconds on the FreePBX as well as in the phone configs. So I’m assuming if I lower that SIP registration timer threshold on both the server and on the clients that should help shore up connectivity issues a bit better? The workaround I employed was just rebooting the desk phones to get them back online again.
So I have read some other posts on here dealing with similar scenarios. I know I can change the SIP registration interval on the desk phones, dropping them down to something less than 3600 seconds. Now looking where I can configure this for chan_pjsip in the FreePBX GUI. And if one side takes precedent over the other (e.g. - the client interval trumps what the server defaults to or vice versa), then it might just be more effective to just change one side of this.
The server side rarely trumps the client. Generally the server side has a minimum and maximum expire time and if the client gives a time that is under or over, it will apply those. Other than that, if the client says 3600, it’s 3600.
I use 60 seconds
The change has to be done in Endpoint Manager. Depending on the phone model, you’ll probably have to go in “Basefile Edit” to change the right setting.
For Yealink, I use: account.1.sip_server.1.expires = 60
Thanks all for the insight! While I don’t want to drop the SIP registration interval down to something as tight as 60 seconds, I’ll likely drop it down to 600 seconds. That way if there is a blip in terms of Internet connectivity the desk phones will recuperate a bit quicker at least. Modifying the auto-provision files for the client phones today and will monitor the results. Also, @sorvani thanks for contributing this helpful custom page → freepbx-helper-scripts/extensionstatus.php at master · sorvani/freepbx-helper-scripts · GitHub. This will be extremely helpful in assessing the registration status of all of the phones!