Qualify / registration period on pjsip extensions

Can anyone point me to the right documentation on how to qualify works on pjsip endpoints / aors?

We are a team of 5 in different countries and I often see in the asterisk logs: xxxx extension became UNREACHABLE, deleting contact. And then it would often recreate the contact a few seconds after that.

I have changed the minimum_registration on the AORs to be 1 hr But I just wanted to know how the qualify works on pjsip, ok, if the qualify period is 60 seconds, it sends an an OPTIONS packet to the device, what if the device doesn’t receive the packet, is the AOR marked as unreachable and the contact deleted until the next qualify expiration happens and another OPTIONS packet is sent to the endpoint?

Do you have the console output showing this? The act of going UNREACHABLE doesn’t destroy the real underlying contact. The version you’re using would also be useful.

As for your question about how it works - it works much like chan_sip. The OPTIONS request is sent, if there’s no response then it’s marked as unreachable. Subsequently the next time around the same thing happens. Over and over. Until it becomes reachable or the Contact binding expires.