<p>This PR contains my backlog of changes for uac registrations.</p>

<p>Most patches are for making the registrations list fully dynamic (add/remove via RPC)</p>

<p>Some fixes, some cleanups, some features...</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/kamailio/kamailio/pull/729'>https://github.com/kamailio/kamailio/pull/729</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>uac: uac_reg: fix uac_reg_get_byuser()</li>
  <li>uac: uac_reg: protect the registration lists with locks</li>
  <li>uac: uac_reg: add uac_reg_status() function</li>
  <li>uac: uac_reg: Add function to remove registration</li>
  <li>uac: uac_reg: Use locking to prevent deletion of a registration entry when it is still being referenced</li>
  <li>uac: uac_reg: Add RPC function to remove a registration</li>
  <li>uac: uac_reg: Add RPC function to add a new registration</li>
  <li>uac: uac_reg: Consolidate and sync (almost) duplicate code in adding an RPC node</li>
  <li>uac: uac_reg: Return HTTP-like fault codes for RPC</li>
  <li>uac: uac_reg: Consolidate and optimize filtering records</li>
  <li>uac: uac_reg: Optimize updating a registration</li>
  <li>uac: uac_reg: Update of all fields when record is refreshed from DB</li>
  <li>uac: uac_reg: Only set UAC_REG_INIT flag if it was not set yet</li>
  <li>parser: Add parser for Min-Expires</li>
  <li>uac: uac_reg: Handle 423 response to outbound register</li>
  <li>uac: uac_reg: Use core parser instead of hand-parsing the Expires header</li>
  <li>uac: uac_reg: Keep Call-ID in registration sequence</li>
  <li>uac: uac_reg: Add setting for using a random reg_delay</li>
  <li>uac: uac_reg: Deduplicate code for copying a record from DB to mem</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-0">modules/uac/doc/uac_admin.xml</a>
    (89)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-1">modules/uac/uac.c</a>
    (26)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-2">modules/uac/uac_reg.c</a>
    (722)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-3">modules/uac/uac_reg.h</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-4">parser/case_min.h</a>
    (47)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-5">parser/hf.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-6">parser/hf.h</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-7">parser/msg_parser.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-8">parser/msg_parser.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/729/files#diff-9">sip_msg_clone.c</a>
    (6)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/kamailio/kamailio/pull/729.patch'>https://github.com/kamailio/kamailio/pull/729.patch</a></li>
  <li><a href='https://github.com/kamailio/kamailio/pull/729.diff'>https://github.com/kamailio/kamailio/pull/729.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/pull/729">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AF36Zf6E5zWAozFeN7G93Vk90XEZ8ShZks5qaKN1gaJpZM4JXK34">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AF36ZZjQ0JY9XaQIctqyihkX9u1fT925ks5qaKN1gaJpZM4JXK34.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/kamailio/kamailio/pull/729"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>