To understand this better, we need to take a closer look at the way SIP works.
When a phone registers to a SIP server it includes an “Expires:” header which sets the maximum length of time its registration will be valid.
It's like telling your friends where you will be waiting for them, but sometimes things come up and you have to move. In this case you need to tell them you have moved on.
SIP register is the message to the friends. The issue is caused by the fact you intended to be there, but are now somewhere else (new IP), and haven’t had a way to update the location.
For example, a SIP REGISTER is sent with an "Expires:" of 3600 seconds (An hour) to a SIP switch from IP address 10.2.3.4.
Half an hour later your connection drops and your ISP gives you a new IP address.
The SIP pbx think's it’s going to send any incoming messages to 10.2.3.4, as 10.2.3.4 said it’d be there for the next hour.
So even though the connection is dropped to 10.2.3.4 the SIP Switch has no way of knowing this and continues to forward any traffic for that user to 10.2.3.4 until the 3600 seconds is up since it last tried to REGISTER.
The same issue could happen if our phone is behind a NAT and the external IP changes or the connection is changed. The UA doesn’t know anything has changed, so no REGISTER is sent to refresh, and messages from the SIP server are sent to the old address.
A lot of SIP switching platforms allow you to view register status, but just keep in mind it doesn’t mean the device is still answerable at that address, only that it intended to be.
Further reading:
https://tools.ietf.org/html/rfc3261#section-10
https://tools.ietf.org/html/rfc3665#section-2.1