[Asterisk-Users] Syncronize Monitored Calls
Dave Packham
dave.packham at utah.edu
Mon Aug 25 13:30:25 MST 2003
ok now lets modify that mix script to pick up on who started the monitored call and look them up in the voicemail.conf and email it to em
Dave
>>> brian at bkw.org 8/25/2003 2:14:16 PM >>>
Note that h will not be called if you park the call and pick it backup.
bkw
On Mon, 25 Aug 2003, David Harris wrote:
> I thought I would post this in case it might be of any use to anyone.
> Not anything special but it does work. Keep in mind you need sox and
> wmix.
>
> Here is some relevant exerpts of my extensions.conf using John Todds
> macro.
>
> [globals]
> CALLFILENAME=foo
> FOO=foo
> CALLERIDNUM=foo
>
> [default]
>
> exten => 287,1,Macro(dial,SIP/agent20002|20)
> exten => 287,2,Voicemail(u287)
> exten => h,1,Macro(hangup)
>
> [macro-dial]
>
> exten => s,1,AGI(set-timestamp.agi)
> exten =>
> s,2,SetVar(CALLFILENAME=${timestamp}-${CALLERIDNUM}-${MACRO_EXTEN})
> exten => s,3,Monitor(wav,${CALLFILENAME})
> exten => s,4,Dial(${ARG1},${ARG2},${ARG3})
>
> [macro-hangup]
>
> exten => s,1,SetVar(MONITORDIR=/var/spool/asterisk/monitor)
> exten => s,2,GotoIf($[${CALLFILENAME} = ${FOO}]?6:3)
> exten => s,3,System(/usr/local/bin/mix_monitor_files.pl ${MONITORDIR}
> ${CALLFILENAME}-in.wav ${CALLFILENAME}-out.wav ${CALLFILENAME}.wav)
> exten => s,6,NoOp
>
>
> Here is mix_monitor_files.pl. sox and wmix must be in the path of your
> perl script
>
> #!/usr/bin/perl
>
> $monitordir = shift;
> $infile = shift;
> $outfile = shift;
> $finishfile = shift;
>
> chdir($monitordir);
>
>
> $infile_output = `sox $infile -e stat 2>&1`;
> $outfile_output = `sox $outfile -e stat 2>&1`;
>
> $infile_output =~ /Samples read:\s+(\d+)/;
> $infile_samples = $1;
>
> $outfile_output =~ /Samples read:\s+(\d+)/;
> $outfile_samples = $1;
>
>
> if($outfile_samples > $infile_samples)
> {
> $diff_samples = $outfile_samples - $infile_samples;
> system("sox $outfile temp${outfile} trim ${diff_samples}s");
> system("wmix $infile temp${outfile} > $finishfile");
> system("rm -f $infile temp${outfile} $outfile");
> }
> elsif($infile_samples > $outfile_samples)
> {
> $diff_samples = $infile_samples - $outfile_samples;
> system("sox $infile temp${infile} trim ${diff_samples}s");
> system("wmix temp${infile} $outfile > $finishfile");
> system("rm -f temp${infile} $outfile $infile");
> }
> else
> {
> system("wmix $infile $outfile > $finishfile");
> system("rm -f $infile $outfile");
> }
>
_______________________________________________
Asterisk-Users mailing list
Asterisk-Users at lists.digium.com
http://lists.digium.com/mailman/listinfo/asterisk-users
More information about the asterisk-users
mailing list