Cannot separate Inbound and Outbound audio stream

marcw

Member
Hello!
My Flashphoner starts simultansouly phone calls through Asterisk. (a prank call project where the user can enter and call a phone number, hearing the callee and playing pre-recorded audio clips to the callee). Technically Asterisk uses MeetMe and conferences to manage the calls and Monitor for recording the phone calls. It is no problem to record the calls but only the combined, means the callee (Inbound) and the audio clips which the user starts (Outbound). But I want to seperate them. Especially I need the audio track of the callee (without the pre-recorded prank audio clips). But I am absolutely not able to manage this. I replaced Monitor with MixMonitor, also tried SpyChan, AGI scripts and else. I played around with the parameter options but always get the recordings combined. Can someone help me?
I thought that my Asterisk version on my server with WCS 2.1 is too old for using MixMonitor but then I tried it on my other server (WCS 5.2) with Asterisk 14.7.6 where all that functions are included but still I fail.

Here a short overview about my extensions.conf
Code:
[general]
static          = yes
writeprotect    = yes
autofallthrough = yes
priorityjumping = yes
clearglobalvars = yes

[globals]
CONSOLE=Console/dsp
;# IAXINFO=guest

exten => _0049ZX.,1,NoOp(Starting Dialout Procedure app_sound_voippro INT ${EXTEN})
same => n,SIPAddHeader(P-Preferred-Identity: <sip:+49xxxxxxx@sip.telephone.org\;user=phone>)
same => n,Set(CALLERID(all)=+49xxxxxxxxx)
same => n,Set(__CONF=${EXTEN})
same => n,Set(__INIT_CHANNEL=${CDR(channel)})
;same => n,AGI(check_channel.sh,${INIT_CHANNEL}xxx${CONF})


same => n,Set(FILE(/var/lib/asterisk/conferences/${CONF})=${SIPCALLID})
same => n,Set(MONITOR_FILENAME=/srv/www/marcophono/html/recs/${EXTEN:1})
same => n,Monitor(wav,${MONITOR_FILENAME},i)
same => n,Dial(SIP/${EXTEN}@sipout_teleflash,30,rG(separator,s,1))
same => n,NoOp("Call should not end here")
same => n,Hangup()

[separator]
exten => s,1,Goto(fun1,s,1)
exten => s,2,Goto(fun2,s,1)

[fun1]
exten => s,1,NoOp(Data 1: CONF=${CONF} INIT_CHANNEL=${INIT_CHANNEL})
exten => s,n,Set(TIMEOUT(absolute)=305)
exten => s,n,MeetMe(${CONF},Akmqd)
exten => s,n,Hangup
exten => h,1,AGI(kill_channel.sh,${INIT_CHANNEL})

[fun2]
exten => s,1,NoOp(Data 2: CONF=${CONF} INIT_CHANNEL=${INIT_CHANNEL})
exten => s,n,Wait(0.5)
exten => s,n,Set(TIMEOUT(absolute)=305)
exten => s,n,MeetMe(${CONF},kxqd)
exten => s,n,AGI(kill_channel.sh,${INIT_CHANNEL})
exten => s,n,NoOp("NOT_IN_THE_MEETME")
exten => s,n,Hangup
exten => h,1,AGI(kill_channel.sh,${INIT_CHANNEL})

[inject-sound]
exten => s,1,MeetMe(${CONF},qd)
exten => s,n,NoOp("AFTER MEETME")
Thank you in advance!
Marc
 

Max

Administrator
Staff member
Good day.
You can try to record outbound and inbound audio separately at WCS side. Update WCS 5.2 instance to build 5.2.1921 and enable SIP calls recording:
Code:
record=/usr/local/FlashphonerWebCallServer/records
preserve_non_mixed_recorded_files=true
In this case, the 3 files will be created in the folder after a SIP call ends: inbound audio record file, outbound audio record file and the mixed file. Audio is recording in PCM format to WAV container. Please read also here: Any SIP calls recording.
 
Top