Hi,

Thanks for your answer!

1.
> 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?

Yes this is correct, and I prefer to do the transferring of the file to another 
server with my existing AGI.
My AGIs are written in java. Today I the upload is done over http.
Today I schedule the upload in the AGI script a couple of seconds after the 
channel is hang up. But the two
lines might not be hung up at the same time.
Your suggestion of always fixing the file is wise, it now seems to work fine 
after having been processed with sox.

So now I think that this case 1 is ok for me :-)

2.
> 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?

The idea is to perform a "probe call" with the only task of recording what the 
other party says.
It will be merged "by hand" on a mobile phone to an ongoing call with another 
party.
This could be done by calling out and letting AGI execute a RECORD FILE but if 
there is a way to just
dial out and then let the server side of the call "Keep the channel up but do 
nothing forever until the call is hang up"
Then I could easily use the MixMonitor and write the whole conversation in the 
dialplan with uploading similar to the first case.
Any suggestions?

Regards,
Henrik



Från: "Yves A." <yves...@gmx.de<mailto:yves...@gmx.de>>
Svara till: Asterisk Users Mailing List - Non-Commercial Discussion 
<asterisk-users@lists.digium.com<mailto:asterisk-users@lists.digium.com>>
Datum: torsdag 7 mars 2013 20:10
Till: Asterisk Users Mailing List - Non-Commercial Discussion 
<asterisk-users@lists.digium.com<mailto:asterisk-users@lists.digium.com>>
Ämne: Re: [asterisk-users] Recording with MixMonitor and AGI

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<mailto: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<mailto: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@outgoing-originate with context set 
to outgoing-originate-rec and extension to 0888888888.
The result will be something like this:

    -- Executing [s@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@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@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@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@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@outgoing-originate-rec-dev2:1] 
StopMixMonitor("SIP/upps-ccm-tq01-00000043", "") in new stack
  == MixMonitor close filestream (mixed)
    -- Executing [h@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

--
_____________________________________________________________________
-- 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

Reply via email to