<div dir="ltr"><div class="gmail_quote">On Tue, May 3, 2011 at 4:41 AM, Thorsten Göllner <span dir="ltr">&lt;<a href="mailto:tg@ovm-group.com">tg@ovm-group.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 text="#000000" bgcolor="#ffffff">
    Am 02.05.2011 15:59, schrieb A E [Gmail]:
    <div><div></div><div class="h5"><blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_quote">On Mon, May 2, 2011 at 3:15 AM, A E
          [Gmail] <span dir="ltr">&lt;<a href="mailto:all.eforums@gmail.com" target="_blank">all.eforums@gmail.com</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
            <div dir="ltr"><font color="#663366"><font face="trebuchet
                  ms,sans-serif">Hello All,</font></font>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif"><br>
                  </font></font></div>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif">Probably a silly question, but we&#39;re
                    wondering if people have had any experience and have
                    data to demonstrate if the performance of the
                    Asterisk system might suffer in terms of latency
                    etc. if we&#39;re to have it retrieve sound files from a
                    database using odbc as opposed to storing them
                    locally on the filesystem. Note, these are not
                    prompts...these are sound files that are being
                    created through a web-app and being stored in the DB
                    as BLOB or similar datatype that&#39;s good/efficient to
                    store audio/video files in a DB. We need these be
                    made available through the asterisk system to play
                    over the phone. Although the DB uses a SAN, the
                    Asterisk System has no connectivity to the SAN but
                    is connected on the same physical ethernet switch
                    with a multi-Gbps backplane.</font></font></div>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif"><br>
                  </font></font></div>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif">The way the system is being designed,
                    it&#39;s possible for us to end up with 000s of these
                    sound files stored in the DB, not to mention several
                    asterisk systems in a pool/cluster/farm requesting
                    these files, so using the local filesystem might not
                    be scalable or efficient. </font></font></div>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif"><br>
                  </font></font></div>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif">Any advice/comments/suggestions
                    welcome :)</font></font></div>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif"><br>
                  </font></font></div>
              <div><font color="#663366"><font face="trebuchet
                    ms,sans-serif"><br>
                  </font></font></div>
            </div>
          </blockquote>
        </div>
        Just realised that this can better be described another way:
        <div><br>
        </div>
        <div>What we&#39;re essentially trying to do is be able to do any
          one of these</div>
        <div><br>
        </div>
        <div>a) stream an audio/video file stored in the DB via AGI into
          the current channel so that it plays on the phone</div>
        <div><br>
        </div>
        <div>OR </div>
        <div><br>
        </div>
        <div>b) Do something like what Realtime Voicemail does, where it
          gets the file from the DB, saves as a temp file in the user
          mailbox directory and then plays it to the caller but this
          needs to happen through AGI, something along the lines of
          readsql (a la func_odbc) inside of AGI</div>
        <div><br>
        </div>
        <div>OR </div>
        <div><br>
        </div>
        <div>c) Anything else that&#39;s better than a) and b) above that
          someone can suggest. </div>
        <div><br>
        </div>
        <div>P.S&gt; I do know about the AGI AddOn of PUT SOUNDFILE and
          GET SOUNDFILE which seems to be the only solution we can think
          of right now, other than of course having the DB machine
          exporting the SAN volume as an NFS share for the Asterisk
          server to mount, but that sounds like it&#39;ll be bad for
          performance?</div>
        <div><br>
        </div>
      </div>
    </blockquote>
    <br></div></div>
    Mediafiles are stored on SAN and the DB stores references to the
    files in the SAN. I do not see a problem doing it this way. It&#39;s
    scaleable and efficient. Where do you suppose to run into problems?<br>
  </div>


<br></blockquote><div><br></div><div><font class="Apple-style-span" face="&#39;trebuchet ms&#39;, sans-serif" color="#000099">Well the problem as explained above is that the * machine does NOT have direct access to the SAN. So we cannot mount the SAN volume on the * machine as a shared drive. It&#39;ll have to either be shared by the DB server for the * machine to read from, OR we can use the GET SOUNDFILE / PUT SOUNDFILE AGI AddOn to copy the sound files from the DB machine to the * machine to play it over the phone. Just wondering if that will have any major performance impact</font></div>

</div></div>