Something which a number of clients has been complaining about is that the BLF lights on the GXP phones just stop functioning. The stock standard answer until now has been “reboot the phone” … however, the calls keeps coming. So what can be done to fix this more permanently?
Well, as it turns out, asterisk is supposed to (just before it goes down) send all phones that have a subscription registered a “not available retry in 60 seconds” type of message. Whether this is actually sent I don’t know, the point is that it doesn’t work. After some reading it became apparent that whenever a phone re-registers it must also re-subscribe. So whilst most likely not the ideal solution it can be made to work properly by bringing down the “maxexpiry” sip configuration option for those specific phones (or globally in the case of freepbx since it doesn’t give you the option of tampering with it at a per-sip user level).
In all my setups this is on a local LAN, and since I need to carry voice anyway there really aught to be sufficient bandwidth for a few extra SIP register and subscribe requests every minute or so.
The downside is the extra bandwidth, the upside is fewer calls complaining about the issue, and fewer SMSs like “help! die liggies werk nie!” (translates as “help! the lights aren’t working!”).
So, in /etc/asterisk/sip.conf, add this line in the section for the phone:
maxexpiry=60
Or if you’re using FreePBX (Or similar GUI tool that doesn’t allow you to set those options on a per-extension basis), add it to /etc/asterisk/sip_general_custom.conf instead.
This causes the phone to re-register (and re-subscribe) every 60 seconds. Problem almost solved. Chances are most people won’t notice.