[asterisk-users] Recording with MixMonitor and AGI

Yves A. yves030 at gmx.de
Thu Mar 7 13:10:03 CST 2013


hi,

hard to understand, what your objective is... at least for me ;-)

so you want to establish a call (triggered by ami) between two partys, 
record the conversation
and save the file to a(nother) server (afterwards), right?

and another task is to establish (also ami triggered) a call to a mobile 
and play, lets say a voicefile.
this "conversation" should also be recorded and saved on a(nother) 
server (afterwards), right?

let me know, if i understood you right, the solution is not so hard to 
implement.
In what language do you preferrably write your AGIs? (although there is 
no absolute need for using an
agi... you can all write down in your dialplan...)
is there a special protocol requirement for saving/transferring the 
recorded voicefile (e.g. ftps)?
One obstacle is, that the recorded file is not fully written 
_immediately_ after stopmixmonitor or hangup...
this has to be taken care of and depending on your agi... it might be 
interrupted, if the call is hungup...
but as you did not show your agi... these are just hints..

regards,
yves



Am 07.03.2013 16:21, schrieb Henrik Westerberg:
> Hi,
>
> I am developing a call recording application on Asterisk 11.2 and have 
> this configuration in my dialplan:
>
> [macro-ccdev2-rec]
> exten => s,1,MixMonitor(${ARG1},b)
>
> [outgoing-originate]
> exten => _X.,1,NoOp(Will send call to ${EXTEN})
> exten => _X.,n,Dial(SIP/${EXTEN}@x.y.z)
>
> [outgoing-originate-rec]
> exten => 
> h,1,Agi(agi://localhost/ajpbx.agi?path=uploadrec&callid=${CC_CALLID})
>
> exten => _X,1,NoOp(Will send call to ${EXTEN}, CC_CALLID is 
> ${CC_CALLID}, CC_FILENAME is ${CC_FILENAME})
> exten => _X,n,Dial(SIP/${EXTEN}@x.y.z,60,M(ccdev2-rec^${CC_FILENAME})e)
>
> If I want to make a recorded server callout from 077777777 
> to 0888888888 I then originate a call via AMI to 
> Local/077777777 at outgoing-originate with context set 
> to outgoing-originate-rec and extension to 0888888888.
> The result will be something like this:
>
>     -- Executing [s at macro-ccdev2-rec:1] 
> MixMonitor("SIP/upps-ccm-tq01-0000003f", "cbrec-15605.wav,b") in new stack
>   == Begin MixMonitor Recording SIP/upps-ccm-tq01-0000003f
>     -- Executing [h at outgoing-originate-rec:1] 
> AGI("SIP/upps-ccm-tq01-0000003e", 
> "agi://l4574/ajpbxtest.agi?path=uploadrec&callid=15605") in new stack
>     -- <SIP/upps-ccm-tq01-0000003e>AGI Script 
> agi://localhost/ajpbxtest.agi?path=uploadrec&callid=15605 completed, 
> returning 0
>     -- Executing [h at outgoing-originate-rec-dev2:1] 
> AGI("SIP/upps-ccm-tq01-0000003f", 
> "agi://4574/ajpbxtest.agi?path=uploadrec&callid=") in new stack
>     -- <SIP/upps-ccm-tq01-0000003f>AGI Script 
> agi://localhost/ajpbxtest.agi?path=uploadrec&callid= completed, 
> returning 0
>   == MixMonitor close filestream (mixed)
>   == End MixMonitor Recording SIP/upps-ccm-tq01-0000003f
>
> Unfortunately I get two different calls to the h extension, but this I 
> can cope with. The one without called is not interesting.
> The uploading will fail since the MixMonitor is still on when I try to 
> upload the file. The file will not have a duration. It works when I 
> schedule the uploading a while after from my agi application but I 
> would rather not rely on a timeout.
>
> When I tried to run StopMixMonitor before the Agi call in the h 
> extension, the first call fail and I never get any uploading with callid.
>
>     -- Executing [s at macro-ccdev2-rec:1] 
> MixMonitor("SIP/upps-ccm-tq01-00000043", "cbrec-15607.wav,b") in new stack
>   == Begin MixMonitor Recording SIP/upps-ccm-tq01-00000043
>     -- Executing [h at outgoing-originate-rec-dev2:1] 
> StopMixMonitor("SIP/upps-ccm-tq01-00000042", "") in new stack
>   == Spawn extension (outgoing-originate-rec-dev2, h, 1) exited 
> non-zero on 'SIP/upps-ccm-tq01-00000042'
>     -- Executing [h at outgoing-originate-rec-dev2:1] 
> StopMixMonitor("SIP/upps-ccm-tq01-00000043", "") in new stack
>   == MixMonitor close filestream (mixed)
>     -- Executing [h at outgoing-originate-rec-dev2:2] 
> AGI("SIP/upps-ccm-tq01-00000043", 
> "agi://localhost/ajpbxtest.agi?path=uploadrec&callid=") in new stack
>
> Am I missing something here? I also looked at the possibility to 
> specify a command to execute when MixMonitor stops but I would rather 
> handle the file uploading in my agi application.
>
> I also have another case: I want to dial out a call and record it. It 
> will be a "oneway-call" from the server to a mobile. Do I need to get 
> AGI-control of it and record with an AGI command or how can I hack it 
> directly in the dial plan using MixMonitor?
>
> Best Regards,
> Henrik
>
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
>                 http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>     http://lists.digium.com/mailman/listinfo/asterisk-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130307/3cf8233e/attachment.htm>


More information about the asterisk-users mailing list