BLF required to not show "ringing" state

Oh good grief. I’ve spent a few hours reading articles and trying different ideas with no success.

I have a FreePBX system with a few Gigaset DE900s and a Gigaset N510. The DE900s have BLF assigned to buttons - and this was only done so reception and a couple of other users could see in-use extensions.

The problem is that, correctly, the BLF flashes for incoming calls but since every extension is a member of the ring group, the DEs light up like a Christmas tree when an incoming call arrives.

I don’t need pickup ability and don’t want the BLF subscription to notify the subscriber when the extension is ringing.

Originally I hoped notifyringing = no would easily fix this but of course now. Then I’ve tried creating a custom hint for each extension and placing it in the override file but can’t get that working either.

What’s very frustrating to me is that I work in IT and don’t normally go round and round with little result - right now, I’m totally lost and confused.

Please help… :wink:

I know this is an old post, but I had this problem too, where blinking BLFs were completely unacceptable for our users, and we searched endlessly for a solution. I found that removing the ringing state from getting sent to phone via BLF hints requires modifications to asterisk’s chan_sip and/or pjsip and a custom compile of the module. This is super rough, but here’s a really basic outline if you are using chan_sip (I don’t use pjsip yet so haven’t developed a procedure for that). There are more elegant ways to doing this such as making patch files, but that’s above my paygrade.

Setup a Sangoma SNG7 development environment on a VM or different machine - can’t link to how to do this here due to being a new user, but basically you just need to do a fresh SNG7 install and run:

yum install sangoma-devel

(You don’t want to run the development environment on your production freepbx server - a Virtualbox VM will work fine on your desktop and is free)

In your development environment, get the latest asterisk packages:

yum check-update
yum -y update

Install the source RPM corresponding to your version of asterisk:

yumdownloader --source asterisk13-13...
rpm -i asterisk13-13....sng7.src.rpm
cd rpmbuild/SOURCES

tar zxvf asterisk13...tar.gz

Delete original source tarfile

Modify channels/chan_sip.c to delete the following four lines of code (I haven’t tried this out on pjsip so you’ll need to do some investigation on what needs to be changed, but very similar code appears to be present in res/res_pjsip/presence_xml.c):

statestring = "early";
local_state = NOTIFY_INUSE;
pidfstate = "busy";
pidfnote = "Ringing";

Do not delete any other code. Then save the file, and retar modified codebase:

tar cvzf asterisk-13.19.1.tar.gz asterisk-13.19.1/

Build asterisk:

Comment out requirement for misdn-user devel package in asterisk13.spec file to get it to build

cd SPECS/

Comment out line (the mISDNuser-devel package appears to no longer be available from repositories and isn’t actually needed to compile asterisk):

BuildRequires: mISDNuser-devel

so that it reads:

#BuildRequires: mISDNuser-devel

Then compile asterisk and build the RPMs:

rpmbuild -ba asterisk13.spec

Extract chan_sip.so from resulting asterisk-core RPM that was put into in rpmbuild/RPMs: (You could, as an alternative to the below, copy and install the resulting built asterisk-core RPM onto your production server)

rpm2cpio ./asterisk13-core-13... | cpio -iv --to-stdout ./usr/lib64/asterisk/modules/chan_sip.so > /tmp/chan_sip.so

Copy your production server’s chan_sip.so file into another directory for safekeeping and call it chan_sip.so.ORIG. Copy resulting /tmp/chan_sip.so from the development environment to your server into /usr/lib64/asterisk/modules/

If needed, can duplicate original chan_sip.so’s permissions doing the following:

chmod --reference=chan_sip.so.ORIG /usr/lib64/asterisk/modules/chan_sip.so
chown --reference=chan_sip.so.ORIG /usr/lib64/asterisk/modules/chan_sip.so

Run

 fwconsole restart

Congratulations, you’re officially rolling your own asterisk and your BLFs will never blink when they ring again! You will need to do a custom compile each time asterisk is updated and replace the chan_sip.so file with your custom module.