<p>I've found the error. It's not on your side. We changed contact in local route, then contact-&gt;uri != rec-&gt;contact_uri and module didn't use expires from contact. We will try to avoid contact changing in local route. But I've found logical problem in code. You divide timer_interval on reg_hsize when initializing timer, but you don't divide timer_interval when you calculate expiration time. So, with hash_size=4 (16) and timer_interval=80, timer starts every 5 seconds, but for expire=120 we will update every 60 seconds. Greater than timer_interval, the less update time.<br>
Please, look into my patch, fixing this. <a href="https://github.com/OpenSIPS/opensips/pull/234" class="issue-link" title="UAC_REGISTRANT module: fixed expiration time calculation">#234</a></p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href='https://github.com/OpenSIPS/opensips/issues/217#issuecomment-43507035'>view it on GitHub</a>.<img src='https://github.com/notifications/beacon/5479561__eyJzY29wZSI6Ik5ld3NpZXM6QmVhY29uIiwiZXhwaXJlcyI6MTcxNjEyNzAyNSwiZGF0YSI6eyJpZCI6MzEwMzY1MDd9fQ==--bbf6e1f67f22f383bd6636220fdb10fe2de2739c.gif' height='1' width='1'></p>