[Asterisk-Dev] Help Debugging Dropped Call Audio - Possibly Fixed
Kevin P. Fleming
kpfleming at digium.com
Tue Dec 27 07:52:02 MST 2005
Matthew Roth wrote:
> That would be a great option. Since we're recording to a RAM disk,
> using Monitor() introduces very little overhead. Getting the advantages
> of the MixMonitor() infrastructure while being able to offload the
> mixing would be the best of both worlds. I wouldn't have to rewrite my
> scripts that handle the recordings, either. = )
Writing to a RAM disk helps, but it does _not_ reduce the overhead
completely. You are still using ext2, which means it needs to do
filesystem manipulations to create/remove/extend files, the same as it
would on a regular disk system. They will take slightly less time, but
not greatly so... keep in mind that with the amount of RAM you have, a
regular on-disk filesystem would be mostly in cache anyway (the metadata
parts) and would perform nearly the same as a RAM disk.
For experimentation purposes, I would try tmpfs instead of ext2, and
don't actually create a ramdisk device at all... just mount tmpfs (with
a size limit) at your /var/spool/asterisk/monitor directory (or wherever
you are recording).
> Is that being planned? I'd imagine we're not the only people relying on
> that type of functionality.
Like everything else it's on the 'wishlist', but so are dozens (or
hundreds) of other items.
> Ideally, MixMonitor() would have a mode where it was a seamless
> replacement for Monitor(). For example, we rely on the 'm' option of
> Monitor() and the MONITOR_EXEC/MONITOR_EXEC_ARGS variables to trigger a
> move of the leg files to a remote machine at call completion. If we had
> to rely on something else, such as an hourly sweep, we'd run the risk of
> filling the RAM disk or moving files that were still being written.
Agreed.
> I have an uncanny ability to realize stuff like that as soon as I hit
> the send button. I'm new to analyzing Asterisk's source, but I'm a fast
> learner (with the proper guidance). I'd love to be a contributor, but I
> don't understand the code well enough yet. What are the best resources
> to help a person like myself get up to speed?
The Doxygen docs and the code itself are the best resources.
> Am I correct to assume that the code base of ABE is pretty similar to
> the open source version? I'd hate to spend time studying code that
> doesn't resemble what we are actually running in our production
> environment.
ABE is not available in source form except for large customers who sign
special licensing agreements. You are correct that the code is very
similar, although ABE version A.1/2.x is based on a snapshot of CVS HEAD
from some time ago with most of the bug fixes backported. ABE version
B.1.x will be based on Asterisk 1.2, and will have the new
MixMonitor/ChanSpy functionality.
More information about the asterisk-dev
mailing list