<div dir="ltr"><div class="gmail_quote">On Tue, May 3, 2011 at 5:19 AM, Tzafrir Cohen <span dir="ltr">&lt;<a href="mailto:tzafrir.cohen@xorcom.com">tzafrir.cohen@xorcom.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div><div></div><div class="h5">On Tue, May 03, 2011 at 01:09:14AM -0400, A E [Gmail] wrote:<br>
&gt; On Mon, May 2, 2011 at 9:45 PM, C F &lt;<a href="mailto:shmaltz@gmail.com">shmaltz@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Just from my experience with different DBs, stay away from BLOB data<br>
&gt; &gt; types as much as possible.<br>
&gt; &gt;<br>
&gt; &gt; Hi CF,<br>
&gt; any particular reason why? I&#39;ve had a good experience with it, in fact<br>
&gt; that&#39;s recommended by DB developers when it&#39;s a case of small files. They<br>
&gt; say only larger files greater than 500K-1MB should be stored on the<br>
&gt; filesystem using filestream or similar etc.<br>
&gt;<br>
&gt; Although at this point, this might be a moot point, as so far no one&#39;s been<br>
&gt; able to suggest a way to be able to stream the content of the BLOB field to<br>
&gt; Asterisk over the AGI connection into the current channel, such that<br>
&gt; Asterisk can just play it on the fly. We&#39;ll have to just go with getting the<br>
&gt; file to the requesting * server and then play it<br>
<br>
</div></div>Short answer: Asterisk has support for playing local files. As for<br>
performance: The file system already caches reading the file once it has<br>
been read once, so you&#39;re likely to read it from memory. Especialy small<br>
files and frequently-used files. If you want to play sounds from a DB,<br>
you&#39;ll need to provide some infrastructure.<br>
<br>
The sound file to be played is a file that should be read and consumed<br>
(played by Asterisk into a channel) in a steady manner. You can&#39;t afford<br>
any delays. That&#39;s not a typical constraint with e.g. web content<br>
serving where you can easily wait a while to cache content.<br><font class="Apple-style-span" color="#888888"><br></font></blockquote><div><br></div><div><font class="Apple-style-span" face="&#39;trebuchet ms&#39;, sans-serif" color="#663366">Thanks Tzafrir,</font></div>

<div><font class="Apple-style-span" face="&#39;trebuchet ms&#39;, sans-serif" color="#663366">yes, after having noodled with this for a while, it appears that the best way would be to somehow replicate what the Realtime Voicemail does but just not bother storing the media files in the DB. Extracting the BLOB data, storing it as a temp file and playing it Voicemail used to work fairly well with no perceivable latency, so I&#39;m hoping not having to pick up the file from the DB but directly from the filesystem and copying it over to the {*} machine should be slightly faster. I doubt though, anything useful will be in the cache as we don&#39;t expect the same files to be accessed too often but then again, you never know. BTW, does that happen by default or do I need to set this up via memcached and stuff like that?</font></div>

<div><br></div><div><br></div></div></div>