<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/1080/">https://reviewboard.asterisk.org/r/1080/</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 19th, 2011, 3:43 a.m., <b>Tzafrir Cohen</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;">Why not set &#39;astdatadir&#39; instead?</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Modifying &#39;astdatadir&#39; effects several other aspects of the program for which there are no way of overriding.

channels/chan_iax2.c: firmware path
main/image.c: images path
main/xmldoc.c: documentation path
main/http.c: static-http path
res/res_phoneprov.c: phoneprov path
res/res_agi.c: agi-bin path (this can be overridden)



If one wanted to cache the sounds (reducing the IO overhead from reading sounds files off disk), they would either need to cache the entire &#39;astdatadir&#39; or symlink the sounds directory from a tmpfs (or other) mount-point.  By setting &#39;astsounddir&#39;, I can create a persistent in-memory sounds cache, updating the sounds files as needed (startup/update).

/etc/asterisk/asterisk.conf: astsounddir =&gt; /mnt/ramdisk/sounds

Add to a cron-job and/or the asterisk init.d file:
mkdir -p /mnt/ramdisk
mount -t tmpfs tmpfs /mnt/ramdisk
cp -au /var/lib/asterisk/sounds /mnt/ramdisk


A more elegant solution would be to have Asterisk manage a sounds cache, storing commonly accessed files in memory...but until then, this works equally well.

-Lott Caskey</pre>
<br />








<p>- lottc</p>


<br />
<p>On January 19th, 2011, 3:34 a.m., lottc wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers.</div>
<div>By lottc.</div>


<p style="color: grey;"><i>Updated 2011-01-19 03:34:16</i></p>




<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 patch adds the &#39;astsounddir&#39; option to /etc/asterisk/asterisk.conf.
This allows you to override Asterisk&#39;s sound directory without needing to
make symlinks.  A practical application of this would be to load the contents
of /var/lib/asterisk/sounds into a tmpfs or ramdisk mount.  Asterisk will then
read the files directly from memory (provided tmpfs hasn&#39;t swapped) instead of
a calling out to disk for every file.

This patch also adds the Sounds directory location to &#39;core show settings&#39;.
</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;">Compiled.
Verified that setting astsounddir overrides default with &#39;core show settings&#39;.
Tested playback of sounds.
Has been running on about a dozen systems for 1+ month.
</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>/trunk/Makefile <span style="color: grey">(302411)</span></li>

 <li>/trunk/apps/app_dial.c <span style="color: grey">(302411)</span></li>

 <li>/trunk/build_tools/make_defaults_h <span style="color: grey">(302411)</span></li>

 <li>/trunk/include/asterisk/paths.h <span style="color: grey">(302411)</span></li>

 <li>/trunk/main/app.c <span style="color: grey">(302411)</span></li>

 <li>/trunk/main/asterisk.c <span style="color: grey">(302411)</span></li>

 <li>/trunk/main/file.c <span style="color: grey">(302411)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/1080/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>