Hi John.. Thanks for the help..I was able to figure it out,, :-)
I change the script into this form and it now works >>> changing ( into , exten => s,3,System,/usr/scripts/mix_monitor_files.pl ${MONITORDIR} ${CALLFILENAME}-in.wav ${CALLFILENAME}-out.wav ${CALLFILENAME}.wav Thanks again.. Regards Joel -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of John Baker Sent: Tuesday, January 20, 2004 8:44 PM To: [EMAIL PROTECTED] Subject: Re: [Asterisk-Users] help - recording both sides of a conversation Joelson - No application 'System(/usr/scripts/mix_monitor_files.pl ${MONITORDIR} Ok, where is it? Or, are you missing a ')' maybe at the end of your System call? John Baker ----- Original Message ----- From: "Joelson S. Apon" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, January 20, 2004 12:55 PM Subject: RE: [Asterisk-Users] help - recording both sides of a conversation > Hello Sirs.. > > I'm setting up a call-recording with my asterisk here and I do follow > program which was post in this mailing list last Jan. 4 (program is also > shown below), and I'm very much thankful for that.. > > However, I do have some errors, here is my output..Hope that someone could > lighten me up for this..Thank you very much for the help.. > > Regards > > Joel > > *CLI> -- Starting simple switch on 'Zap/49-1' > -- Executing Answer("Zap/49-1", "") in new stack > -- Executing Macro("Zap/49-1", "record-enable") in new stack > -- Executing AGI("Zap/49-1", "set-timestamp.agi") in new stack > -- Launched AGI Script /var/lib/asterisk/agi-bin/set-timestamp.agi > -- AGI Script set-timestamp.agi completed, returning 0 > -- Executing Dial("Zap/49-1", "Zap/51|15") in new stack > -- Called 51 > -- Zap/51-1 is ringing > -- Zap/51-1 answered Zap/49-1 > -- Attempting native bridge of Zap/49-1 and Zap/51-1 > -- Hungup 'Zap/51-1' > == Spawn extension (test3, 2103, 3) exited non-zero on 'Zap/49-1' > -- Executing Macro("Zap/49-1", "record-cleanup") in new stack > -- Executing SetVar("Zap/49-1", > "MONITORDIR=/var/spool/asterisk/conversations/") in new stack > -- Executing GotoIf("Zap/49-1", " = ?6:3") in new stack > -- Goto (macro-record-cleanup,s,3) > Jan 20 13:43:37 WARNING[1256444864]: pbx.c:1173 pbx_extension_helper: No > application 'System(/usr/scripts/mix_monitor_files.pl ${MONITORDIR} > ${CALLFILENAME}-in.wav' for extension (macro-record-cleanup, s, 3) > == Spawn extension (macro-record-cleanup, s, 3) exited non-zero on > 'Zap/49-1' > in macro 'record-cleanup' > == Spawn extension (test3, h, 1) exited non-zero on 'Zap/49-1' > -- Hungup 'Zap/49-1' > > > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of zoa > Sent: Tuesday, January 06, 2004 1:05 PM > To: [EMAIL PROTECTED] > Subject: Re: [Asterisk-Users] help - recording both sides of a > conversation > > > > You also don't need such a complicated perl script, just muxing them > without cutting them is enough. > (Timing was fixed) > > zoa. > > At 14:41 4/01/2004 -0600, you wrote: > >you nolonger need set-timestamp.agi as we have ${TIMESTAMP} in that format > >by default now. > > > >bkw > > > >On Sun, 4 Jan 2004, John Baker wrote: > > > > > Iain - > > > > > > First off, all of this is heavily borrowed from others. For those who > see > > > their code embedded here, I thank you and give you full credit. > > > > > > Here's how I do it. It's a bit convoluted, but I didn't want to record > > > everything. So, if a call comes in and I want to record it, I send it > > here: > > > > > > [ext-surrept] > > > exten => _57XXX,1,Answer > > > exten => _57XXX,2,Macro(record-enable) > > > exten => _57XXX,3,BackGround(for-quality-purposes) > > > exten => _57XXX,4,BackGround(this-call-may-be) > > > exten => _57XXX,5,BackGround(recorded) > > > exten => _57XXX,6,Dial(SIP/${EXTEN:1},120,tm) > > > exten => _57XXX,7,Macro(rg-inbound,10,tr) > > > exten => _57XXX,8,Goto(aa-nooneavail,s,1) > > > > > > By transferring a call to 5 + the extension I'm at, I enable the call > > > recording, let the caller know he might be recorded and then send the > call > > > right back to myself. > > > > > > Here's the Macro: > > > > > > [macro-record-enable] > > > exten => s,1,AGI(set-timestamp.agi) > > > exten => > > s,2,SetVar(CALLFILENAME=${timestamp}-${CALLERIDNUM}-${MACRO_EXTEN}) > > > exten => s,3,Monitor(wav,${CALLFILENAME}) > > > > > > It starts the recording and calls set-timestamp.agi > > > > > > Here's the agi file: > > > > > > #!/bin/sh > > > longtime=`date +%Y%m%d-%H%M%S` > > > echo SET VARIABLE timestamp $longtime > > > > > > It sets a timestamp, which if you scour the asterisk list, you'll see > that > > > it is necessary for mixing the in and out audio later. > > > > > > I have one hangup extension set for my internal phones; it looks like > this: > > > > > > exten => h,1,Macro(record-cleanup) > > > > > > And the record-cleanup macro looks like this: > > > > > > [macro-record-cleanup] > > > exten => s,1,SetVar(MONITORDIR=/var/spool/asterisk/monitor) > > > exten => s,2,GotoIf($[${CALLFILENAME} = ${FOO}]?6:3) > > > exten => s,3,System(/usr/scripts/mix_monitor_files.pl ${MONITORDIR} > > > ${CALLFILENAME}-in.wav ${CALLFILENAME}-out.wav ${CALLFILENAME}.wav) > > > exten => s,6,NoOp > > > > > > Don't forget to make the /var/spool/asterisk/monitor directory! > > > > > > Finally, mix_monitor_files.pl does the mixing job and combines the in > and > > > out files: > > > > > > #!/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 -v 3 $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 -v 3 $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"); > > > } > > > > > > > > > You'll need wmix from http://tph.tuwien.ac.at/~oemer/wavetools.html and > > > sox, which was already on my system and is pretty standard. > > > > > > The only problem I've found is that my in channel is a bit low, with > > respect > > > to volume. It's probably a sox issue, but I haven't had time to mess > with > > > the settings yet. It's only an annoyance; you can definitely hear both > > > sides of the conversation. > > > > > > John > > > > > > P.S. I record my outbound calls by prefixing my outbound calls with a 5, > > > which similiarly call record-enable. In that case, the other party > doesn't > > > know they're being recorded. IANAL. Check your state laws first! In > some > > > states both parties must know about calls being recorded. In mine, TX, > > only > > > the calling party must know, but it must be first person. For this > reason, > > > I do not let asterisk record everything, because my employees must > > > themselves determine what they're going to record. > > > > > > > > > ----- Original Message ----- > > > From: "Iain Stevenson" <[EMAIL PROTECTED]> > > > To: <[EMAIL PROTECTED]> > > > Sent: Sunday, January 04, 2004 12:51 PM > > > Subject: Re: [Asterisk-Users] help - recording both sides of a > conversation > > > > > > > > > > > > > > * always records both sides of the conversation - but stores them in > > > > separate files in > > > > /var/spool/asterisk/monitor/. You need to combine the "in" and "out" > > > parts > > > > using soxmix. > > > > > > > > Iain > > > > > > > > > > > > > > > > --On Sunday, January 4, 2004 9:59 am -0800 Paul Mahler > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > Does some kind Asterisk soul have an example from extensions.conf > that > > > > > shows how to record both sides of a conversation? > > > > > > > > > > Thanks! > > > > > > > > > > > > > > > Paul Mahler > > > > > mail:[EMAIL PROTECTED] > > > > > phone: 650.207.9855 > > > > > fax: 877.408.0105 > > > > > > > > > > -----Original Message----- > > > > > From: [EMAIL PROTECTED] > > > > > [mailto:[EMAIL PROTECTED] On Behalf Of Philipp > von > > > > > Klitzing > > > > > Sent: Sunday, January 04, 2004 9:23 AM > > > > > To: [EMAIL PROTECTED] > > > > > Subject: Re: [Asterisk-Users] CAPI, transfering thru a 2nd PBX - > keep > > > > > original CallerID > > > > > > > > > > Hi! > > > > > > > > > >> I want to have Asterisk as my gateway to the outside world and use > > > > >> another PBX to connect my existing phones. > > > > >> > > > > >> exten => ${OUTSIDEMSN},1,Dial,CAPI/${MSN2NDPBX}:${EXTEN} > > > > >> > > > > >> How do I transfer the caller Id information initially coming in? > > > > > > > > > > I have strong doubts that this can be done at all. One way would be > to > > > > > set your ${MSN2ndPBX} to ${CALLERIDNUM}, but that would require that > > > > > capi.conf has that CALLERIDNUM listed as one of the valid outgoing > > MSNs. > > > > > Since you won't know in advance who'll call that'll be a problem - > also > > > I > > > > > don't think you can reconfigure capi.conf in the midst of processing > a > > > > > call... > > > > > > > > > > Besides: I suppose your ISDN PBX (which brand exactly?) supports > CLIP > > > (or > > > > > comes with an internal S0 bus) and you have an analog CLIP phone (or > > > ISDN > > > > > phone) connected? > > > > > > > > > > Workaround: See my last posting and other very recent discussions > > > > > concerning a simple tool that shows the current caller ID and name > on > > > > > your PC using either Flash, HTML or Java. Or use astman/ gastman. > > > > > As of now I am storing the caller data through AGI in mySQL and > display > > > > > that on a web page that the user needs to re-load manually when > > desired. > > > > > > > > > > Cheers, Philipp > > > > > > > > > > > > > > > _______________________________________________ > > > > > Asterisk-Users mailing list > > > > > [EMAIL PROTECTED] > > > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > > > > > > > _______________________________________________ > > > > > Asterisk-Users mailing list > > > > > [EMAIL PROTECTED] > > > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > Asterisk-Users mailing list > > > > [EMAIL PROTECTED] > > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > > > > > > > _______________________________________________ > > > Asterisk-Users mailing list > > > [EMAIL PROTECTED] > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > >_______________________________________________ > >Asterisk-Users mailing list > >[EMAIL PROTECTED] > >http://lists.digium.com/mailman/listinfo/asterisk-users > > _______________________________________________ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > > _______________________________________________ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users