Hi! This is just kind of an informational post to help others on something that took me many weeks to run down - a problem with endless ringing using Acrobits Groundwire, along with some other oddities like occasional missed informational updates like partial CID information reaching the device from the pbx.
Acrobits Groundwire, my favorite SIP app for iOS and others, uses their own server as a middle man that registers with your PBX, and then when an incoming call happens it uses a push notification service (APNS in the case of iOS) to wake up and hand the call / SIP registration off to your device, thus saving you battery since their server is watching the SIP registration and your phone doesn’t have to be actively watching the entire time. I think others may do this now as well, but Groundwire was basically the first / oldest to use this model. This isn’t super important to this issue except that maybe that is what trips up the Responsive Firewall more than it should…I’m not really sure actually, but this is more of a nonstandard way to do things for sure so maybe that’s why it becomes confused.
Well, I was running into an issue where (typically only on a single device, weird!) where a few (but not all) incoming calls were ringing forever on one device, even if answered elsewhere (on another device) or if the caller hung up before anyone answered it. The app on the local device never received the message that the call had been picked up or ended and therefore wouldn’t stop ringing until you actually intervened to silence the call or pick it up yourself (in which case it would register and discover there was no longer a call present). This was very intermittent, sometimes happening on networks with multiple devices registered and sometimes not. Increasing PJSIP from a single (1) to multiple contacts appeared to help too - watching things in asterisk -rvv or asterisk-rvvv this showed more of a softer handoff between their server and the app on the phone, instead of having to hard disconnect the SIP registration from the server in order for the phone to register. I thought this fixed things for a while, but it did not.
Basically, I was finally able to figure out it may have been the rate limiting feature of the Responsive Firewall - for some reason it was letting the packets through to initiate the phone call but dropping the ones right after resulting in the Acrobits Groundwire app on the phone ringing endlessly until stopped.
The solution seems to be disabling Responsive Firewall (short of re-configuring all of the thresholds to something that will play nicer) and tightening up Fail2Ban, opening SIP to the “Internet” zone in the firewall and just using the simpler Fail2Ban on failed login attempts to ban - this way either your devices are “IN” or they are “OUT” but there isn’t any rate limiting or dropped packets in this way.
I just wanted to report my experience so it would be “out there” since I really couldn’t find any information on this topic but it was something driving me crazy for quite a long time.