Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N
mflorell wrote:It will create a new recording when the 3-way is launched, and it will stay recording after the agent leaves.
### code to record call goes here ###
$AGI->exec("Monitor wav|/var/spool/asterisk/monitor/MIX/$filename");
$AGI->exec("MixMonitor /var/spool/asterisk/monitor/MIX/$filename |b");
exten => _71.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N)
exten => _71.,n,Goto(default,${EXTEN:2},1)
exten => _71.,n,Hangup
# agi-NVA_recording.agi version 2.4
#
# This script is designed to give recording ability to agents not the using
# ViciDial agent screen
#
# ; 1. logging output (NONE|STDERR|FILE|BOTH)
# ; 2. the ViciDial user ID, if empty it defaults to accountcode(usually phone extension)
# ; 3. log this call in user_call_log (Y|N) default N
# ; 4. log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND AND INTERSYSTEM CALLS!!!
# ; 5. audio record this call (Y|N) default N
# ; 6. double-log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND CALLMENU FORWARDED CALLS!!!
i think that would be a great workaround, temporarily or permanently. i have a few clients who do this already because they are required to have all recordings and this was in place before Vicidial, so they continue to use it.Acidshock wrote:Another very quick and dirty way is to setup another asterisk server as a "gateway" to capture and record the calls. Its hokey, has a lot of downfalls but sometimes has its advantages depending on what you are trying to accomplish.
You would have to write a custom script that would go and pull the two recordings and the times of the recordings, then chop off the end of the first recording with SoX and add the second recording on to the end of it to make your single recording. It won't be perfect, and it will be noticeable that the recording was spliced.
Not under the current code. I'm sure it is possible to mix the two together using a time stamp, but that is not a trivial piece of programming.
Acidshock wrote:Another very quick and dirty way is to setup another asterisk server as a "gateway" to capture and record the calls. Its hokey, has a lot of downfalls but sometimes has its advantages depending on what you are trying to accomplish.
i think that would be a great workaround, temporarily or permanently. i have a few clients who do this already because they are required to have all recordings and this was in place before Vicidial, so they continue to use it.
it would also be possible, i believe, to initiate recording upon the start of the call and NEVER stop recording. so the entire call from the client perspective is recorded (including hold music, burping, everything)
exten => _71.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N)
exten => _71.,n,Goto(default,${EXTEN:2},1)
exten => _71.,n,Hangup
webudo wrote:I'm using the example:
- Code: Select all
exten => _71.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N)
exten => _71.,n,Goto(default,${EXTEN:2},1)
exten => _71.,n,Hangup
The call starts recording during ringback, but when the called party answers, recording stops. (when making 3way conference).
Any ideas?
mflorell wrote:You could try sending the 3way call through the loopback trunk in IAX before it goes out the normal dialplan.
exten => _67.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N)
same => n,Dial(${TRUNKloop}/44${EXTEN:4},,To)
same => n,Hangup()
mflorell wrote:Try triggering the recording after the loop instead of before. We usually do this by having a different dialplan entry for the carrier dialing out with a different dial prefix that only the loop trunk calls use.
exten => _67.,1,NoOp(TestXfer)
same => n,Dial(${TRUNKloop}/44${EXTEN:4},,To)
same => n,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N)
same => n,Hangup()
[Sep 25 21:26:28] -- Executing [58600052@default:1] MeetMe("Local/58600052@default-00000077;2", "8600052,Fmq") in new stack
[Sep 25 21:26:28] > Channel Local/58600052@default-00000077;1 was answered
[Sep 25 21:26:28] -- Executing [8309@default:1] Answer("Local/58600052@default-00000077;1", "") in new stack
[Sep 25 21:26:28] -- Executing [8309@default:2] Monitor("Local/58600052@default-00000077;1", "wav,1000_MYNUMBER_AgentX_20170925-212627") in new stack
[Sep 25 21:26:28] -- Executing [8309@default:3] Wait("Local/58600052@default-00000077;1", "7200") in new stack
[Sep 25 21:26:33] -- Executing [67EXTERNALNUM@default:1] NoOp("Local/67EXTERNALNUM@default-00000078;2", "TestXfer") in new stack
[Sep 25 21:26:33] -- Executing [67EXTERNALNUM@default:2] Dial("Local/67EXTERNALNUM@default-00000078;2", "IAX2/ASTloop:xxxxxxxxxx@127.0.0.1:40569/EXTERNALNUM,,To") in new stack
[Sep 25 21:26:33] -- Accepting AUTHENTICATED call from 127.0.0.1:
[Sep 25 21:26:33] -- > requested format = gsm,
[Sep 25 21:26:33] -- > requested prefs = (gsm|ulaw),
[Sep 25 21:26:33] -- > actual format = ulaw,
[Sep 25 21:26:33] -- > host prefs = (ulaw),
[Sep 25 21:26:33] -- > priority = mine
[Sep 25 21:26:33] -- Call accepted by 127.0.0.1 (format ulaw)
[Sep 25 21:26:33] -- Format for call is (ulaw)
[Sep 25 21:26:33] -- Called IAX2/ASTloop:xxxxxxxxxx@127.0.0.1:40569/EXTERNALNUM
[Sep 25 21:26:33] -- Executing [EXTERNALNUM@default:1] AGI("IAX2/ASTloop-8231", "agi://127.0.0.1:4577/call_log") in new stack
[Sep 25 21:26:33] -- <IAX2/ASTloop-8231>AGI Script agi://127.0.0.1:4577/call_log completed, returning 0
[Sep 25 21:26:33] -- Executing [EXTERNALNUM@default:2] Progress("IAX2/ASTloop-8231", "") in new stack
[Sep 25 21:26:33] -- Executing [EXTERNALNUM@default:3] Dial("IAX2/ASTloop-8231", "SIP/VOIPNETWORK/EXTERNALNUM,,tToR") in new stack
[Sep 25 21:26:33] == Using SIP RTP CoS mark 5
[Sep 25 21:26:33] -- Called SIP/VOIPNETWORK/EXTERNALNUM
[Sep 25 21:26:33] -- IAX2/127.0.0.1:40569-2927 is making progress passing it to Local/67EXTERNALNUM@default-00000078;2
[Sep 25 21:26:36] -- SIP/VOIPNETWORK-0000004a answered IAX2/ASTloop-8231
[Sep 25 21:26:36] -- IAX2/127.0.0.1:40569-2927 answered Local/67EXTERNALNUM@default-00000078;2
[Sep 25 21:26:36] > Channel Local/67EXTERNALNUM@default-00000078;1 was answered
[Sep 25 21:26:36] -- Executing [8600052@default:1] MeetMe("Local/67EXTERNALNUM@default-00000078;1", "8600052,F") in new stack
[Sep 25 21:26:36] > 0x7f1be8025910 -- Probation passed - setting RTP source address to EXTERNALRTP:40952
[Sep 25 21:26:36] -- Executing [h@default:1] AGI("Local/67EXTERNALNUM@default-00000078;2", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----16-----ANSWER-----3-----0") in new stack
[Sep 25 21:26:36] -- <Local/67EXTERNALNUM@default-00000078;2>AGI Script agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----16-----ANSWER-----3-----0 completed, returning 0
[Sep 25 21:26:36] == Spawn extension (default, 67EXTERNALNUM, 2) exited non-zero on 'Local/67EXTERNALNUM@default-00000078;2'
[Sep 25 21:27:08] == Spawn extension (default, 58600052, 1) exited non-zero on 'Local/58600052@default-00000077;2'
[Sep 25 21:27:08] -- Executing [h@default:1] AGI("Local/58600052@default-00000077;2", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----0---------------") in new stack
[Sep 25 21:27:08] -- <Local/58600052@default-00000077;2>AGI Script agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----0--------------- completed, returning 0
[Sep 25 21:27:08] == Spawn extension (default, 8309, 3) exited non-zero on 'Local/58600052@default-00000077;1'
[Sep 25 21:27:08] -- Executing [h@default:1] AGI("Local/58600052@default-00000077;1", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----0---------------") in new stack
[Sep 25 21:27:08] -- <Local/58600052@default-00000077;1>AGI Script agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----0--------------- completed, returning 0
[Sep 25 21:27:26] -- Executing [h@default:1] AGI("Local/8600052@default-00000076;1", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----16-----ANSWER-----65-----62") in new stack
[Sep 25 21:27:26] -- <Local/8600052@default-00000076;1>AGI Script agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----16-----ANSWER-----65-----62 completed, returning 0
[Sep 25 21:27:26] == Spawn extension (default, 44MYNUMBER, 3) exited non-zero on 'Local/8600052@default-00000076;1'
[Sep 25 21:27:26] == Spawn extension (default, 8600052, 1) exited non-zero on 'Local/8600052@default-00000076;2'
[Sep 25 21:27:26] -- Executing [h@default:1] AGI("Local/8600052@default-00000076;2", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----0---------------") in new stack
[Sep 25 21:27:26] -- <Local/8600052@default-00000076;2>AGI Script agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----0--------------- completed, returning 0
exten => _87.,1,Dial(${TRUNKloop}/86${EXTEN:2},,To)
same => n,Hangup()
exten => _86.,1,Answer()
same => n,Goto(defaultlog,${EXTEN:2},1)
same => n,Hangup()
Users browsing this forum: Google [Bot] and 96 guests