DID failover routing

(TL;DR voip.ms server thinks a refused call counts as unreachable)

I have configured a DID to route by default to a ring group, and if it’s unreachable (presumably, no phone in the ring group is even registered to the server) then it fails over to forwarding the call to a PSTN cellphone. So far so good, but for some reason, it seems that when I refuse an incoming call on the sole remaining phone in the ring group (the others are disconnected and not registered) the call fails over (which it shouldn’t, refusing a call IMO doesn’t count as “unreachable”) and tries to forward to the PSTN cellphone.

Do you think the softphone refusing the call (Linphone for Android) could be returning the wrong status code when refusing a call, the ring group alters or supplies its own error code or refusing calls count as “unreachable” for whatever reason?

The intention is to have the DID route to all my SIP phones (a mix of softphones and actual IP phones) by default, and if they are all disconnected or unregistered (for example, I turned them off because I’m on vacation) they should just forward to my cellphone (which I may have choosen not to run the softphone app on because the local internet or data service might just not be very reliable for SIP, but the circuit-switched calls do work), and if that same smartphone has the softphone app open, the softphone should ring and the PSTN/3G/4G side shouldn’t ring at all (mostly because my carrier is one of those that do not enable VoLTE if you didn’t buy the phone from them even if the phone itself is capable, and switches to 3G when receiving calls which is not always seamless and sometimes messes up with the softphone app if it uses data).

In my opinion “refusing a call” and not answering or not being available all add up to needing the call to go elsewhere,. In your case it is a ‘nobody home’ so send the call. I know with social media stuff there are ‘dnd’ and ‘i’ll call you back’ and ‘i’m at lunch’ but with phones there are only a few real conditions they will probably test for.