<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://reviewboard.asterisk.org/r/4311/">https://reviewboard.asterisk.org/r/4311/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On January 8th, 2015, 9:13 p.m. UTC, <b>Mark Michelson</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="https://reviewboard.asterisk.org/r/4311/diff/1-2/?file=70130#file70130line43" style="color: black; font-weight: bold; text-decoration: underline;">branches/13/res/res_pjsip.c</a>
<span style="font-weight: normal;">
(Diff revisions 1 - 2)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">43</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"><span class="tb"> </span><depend>res_sorcery_memory</depend></span></pre></td>
</tr>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">44</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"><span class="tb"> </span><depend>res_sorcery_astdb</depend></span></pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">43</font></th>
<td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"><span class="tb"> </span><support_level>core</support_level></span></pre></td>
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">45</font></th>
<td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"><span class="tb"> </span><support_level>core</support_level></span></pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">What caused these dependencies to be added?</pre>
</blockquote>
<p>On January 8th, 2015, 9:52 p.m. UTC, <b>Kevin Harwell</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">pjsip_options uses sorcery_memory with regards to qualify/contact_status and contacts themselves are stored in the astdb (location.c)</pre>
</blockquote>
<p>On January 9th, 2015, 2:14 p.m. UTC, <b>Joshua Colp</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think res_sorcery_memory is fine being a dependency because it is actually required by stuff internally.
res_sorcery_astdb on the other hand is only required if you are using the default of storing within astdb - it's runtime configurable to be different.</pre>
</blockquote>
<p>On January 9th, 2015, 3:42 p.m. UTC, <b>George Joseph</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">astdb is the persistent store for contacts. res_pjsip will fail to load if res_sorcery_astdb isn't loaded.
</pre>
</blockquote>
<p>On January 9th, 2015, 3:44 p.m. UTC, <b>Joshua Colp</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">In a default configuration.</pre>
</blockquote>
<p>On January 9th, 2015, 3:56 p.m. UTC, <b>George Joseph</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">True but my point in asking for MODULEINFO to be updated was that it's not obvious that res_pjsip needs astdb to load in most cases. In fact, if you're setting up realtime what would even trigger you to override contact since contact isn't an object you normally define in pjsip.conf? So unless you actually looked in location.c, contact is going to need astdb.</pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'm fine with making it a dependency since subscription persistence does pretty much require it. Ultimately though since this is only build time dependencies and not runtime it's possible to still run into a problem.</pre>
<br />
<p>- Joshua</p>
<br />
<p>On January 9th, 2015, 3:37 p.m. UTC, Kevin Harwell wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By Kevin Harwell.</div>
<p style="color: grey;"><i>Updated Jan. 9, 2015, 3:37 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-24485">ASTERISK-24485</a>
</div>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
Asterisk
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The res_pjsip module was previously unloadable. With this patch it can now be unloaded.
This patch is based off the original patch on the issue by Corey Farrell with a few modifications. Removed a few changes not required to make the module unloadable and also fixed a bug that would cause asterisk to crash on unloading.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Made it so res_pjsip was the only pjsip module loaded and then issued an unload and noted it unloaded successfully (also loaded/unloaded it several times from the CLI). Also when loaded and with REF_DEBUG enabled issued a "core stop gracefully" and made sure there were no ref leaks for the module.
Also tested unloading with other dependent pjsip modules loaded and noted that the module would not unload (as it should since dependencies are currently loaded). And then shutdown asterisk and made sure it did not crash or anything.
Started asterisk with nominal and off nominal module and pjsip configurations to make sure things behaved appropriately (no crashes and such) and then attempted to, or successfully unload the res_pjsip module. Also made sure Asterisk continued to shutdown without incident.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>branches/13/res/res_pjsip/pjsip_outbound_auth.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/pjsip_options.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/pjsip_global_headers.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/pjsip_distributor.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/pjsip_configuration.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/location.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/include/res_pjsip_private.h <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/config_transport.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip/config_auth.c <span style="color: grey">(430294)</span></li>
<li>branches/13/res/res_pjsip.c <span style="color: grey">(430294)</span></li>
<li>branches/13/main/stasis_message_router.c <span style="color: grey">(430294)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/4311/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>