[asterisk-users] Call recording and archiving

Matthew J. Roth mroth at imminc.com
Thu Mar 8 09:22:49 MST 2007


Voip Asterisk wrote:
> Does anyone have a good suggestion for a automated solution to record 
> calls on certain interfaces and easily archiving them in a way which 
> is easily matched against CDRs?  Also can someone suggest the 
> appropriate protocol to archive the recording when the conversations 
> are transpiring in ulaw.  Basically a nice cost effective trade off 
> between CPU and disk space for medium call load.
Miles,

I believe that you should be able to name a recorded file so that it 
contains a unique value that ties it back to its CDR.  Read  
'doc/README.cdr' for information on customizing your CDRs, and 'show 
application monitor' at the Asterisk CLI for documentation on changing 
the recording's filename.  Hopefully, one of the more knowledgeable list 
members will correct me if I'm wrong and fill in the gaps I've left.

The choice of a codec for the recordings is debatable, but here is what 
we're doing.  All of our calls are u-law and are recorded locally on the 
Asterisk server as two PCM leg files.  We pass the Monitor application 
the 'm' flag, which tells it to mix the leg files at the end of the 
call.  To perform the mixing, Asterisk calls soxmix by default.  We have 
replaced the soxmix binary with a script that moves the leg files across 
an NFS mount to our digital recording server (MONITOR_EXEC could be used 
for this, but we found it to be unreliable).  A process on the digital 
recording server sweeps for new recordings, mixes them as GSM WAVs, and 
indexes them for retrieval.

As I said, the codec is debatable.  We chose GSM, because it has a 
decent compression ratio, handles voice well, and plays on most media 
players without the need to install additional codecs on the machine.  
The NFS mount and the separate server for mixing, indexing, and 
archiving recordings are not necessary if you have a relatively low call 
load but I highly recommend it on a busy machine.  Transcoding is a CPU 
intensive task, so its a great candidate for offloading.

Matthew Roth
InterMedia Marketing Solutions
Software Engineer and Systems Developer



More information about the asterisk-users mailing list