Page 1 of 1

call transfer recording

PostPosted: Tue Jun 21, 2011 3:59 pm
by belat25
If the agent leaves the 3way call, How are we going to continue the recording?

Thanks.


VICIBOX 3.1.8
VERSION: 2.4-304a
BUILD: 110301-1206
Single Server

PostPosted: Tue Jun 21, 2011 8:39 pm
by williamconley
Because the "agent" left the meetme room, but the meetme room is where the recording is happening. so the recording continues until the call ends if it is in the campaign to record instead of being initiated by the agent.

thanks, by the way, for posting your installer AND your version WITH build. I like it when that happens.

PostPosted: Tue Jun 21, 2011 11:08 pm
by belat25
actually all recording was set ALL FORCE up on campaign. Yes when the agent leave the conference the recording will stop.

And since we are only transferring the call to an extension, was there any special dial plan entry or agi script to use to record incoming calls on specific extension? And will that solve that problem?

PostPosted: Tue Aug 23, 2011 8:26 am
by Arjene
same problem:

(settings to: ALL FORCE) Yes when the agent leave the conference the recording will stop. (transfered the call)

Single server
VERSION: 2.4-309a
BUILD: 110430-1642

PostPosted: Wed Aug 24, 2011 8:31 pm
by friendlysol
We have the same issue.

PostPosted: Wed Aug 24, 2011 9:07 pm
by williamconley
when you transfer the call to an extension, it is no longer associated with that Campaign. So I would suspect the recording is expected to stop.

Perhaps you should test by transferring the call to a closer in that same campaign and see if the recording continues.

If you want to record calls to external numbers ... i believe there is a recent addition to allow recording of Remote Agents. But the memory is vague. Check the more recent tweets and changelog entries. I haven't used it yet.

PostPosted: Thu Aug 25, 2011 6:43 am
by mflorell
You can transfer a call through a different dial prefix that can start a recording using the agi-NVA_recording.agi script.

PostPosted: Tue Oct 18, 2011 5:38 am
by jaylabade
will it create single recording of three way call or it will create another recording Agent leaves three way transfer call?

PostPosted: Tue Oct 18, 2011 6:09 am
by mflorell
It will create a new recording when the 3-way is launched, and it will stay recording after the agent leaves.

PostPosted: Tue Oct 18, 2011 6:43 am
by jaylabade
mflorell wrote:It will create a new recording when the 3-way is launched, and it will stay recording after the agent leaves.

so again here i have to maintain two recordings for each conversation.
for ex.
1. first agents will dial manual call and if the call gets connected the he will keep caller on hold and dial another call
2. If this call gets connected then agent will press Leave 3-way transfer call.

I want all this conversation in single recording file only. is that possible?

PostPosted: Tue Oct 18, 2011 6:52 am
by mflorell
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.

PostPosted: Wed Oct 19, 2011 2:52 am
by jaylabade
any hints this task?
i need to make single recording only..
any help is appreciated.

PostPosted: Wed Oct 19, 2011 8:25 am
by mflorell
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.

PostPosted: Tue Nov 29, 2011 1:00 pm
by boybawang
You can try to edit the code agi-NVA_recording.agi

and find this line

Code: Select all
 ### code to record call goes here ###
$AGI->exec("Monitor wav|/var/spool/asterisk/monitor/MIX/$filename");


try changing it to
Code: Select all
$AGI->exec("MixMonitor /var/spool/asterisk/monitor/MIX/$filename |b");


you can also manipulate the directory of where to output the transferred call filenames

PostPosted: Tue Nov 29, 2011 1:02 pm
by boybawang
This is an example dialplan

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


So for example if your trying to transfer to 6502045055 you should use 716502045055 in your transfer prefix, you should have a 10 digit dialplan that calls out to your provider.

here is an excerp from the script so you know why its Y N Y N BOTH


Code: Select all
# 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!!!

PostPosted: Tue Nov 29, 2011 2:00 pm
by Acidshock
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.

PostPosted: Tue Nov 29, 2011 5:12 pm
by williamconley
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)

Re: call transfer recording

PostPosted: Sat Sep 21, 2013 2:32 am
by urmi.l
Hello,

I m having vicidial and working fine.
VERSION: 2.4-364a | Asterisk 1.4.44 | Single Server | No Extra Software After Installation | CentOS release 5.5

I have the same issue of recording 3 way call in single file. I tried AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N). We are getting two different files. When there are multiple calls going on, how can we manage these files. How to recognise and mix the transfered files ?

@mflorell :
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.


I wrote the script which mix the two files. But I dont knw how can I recognised which two files to mix. Will you please give some idea of how to get the files dependign upon the timestamp ?

Is this feature developed now ? if so will you please give me the link ?

-Thanks

Re: call transfer recording

PostPosted: Fri Nov 08, 2013 6:04 am
by urmi.l
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)


Will you please guide me, how can I do this ? I want to have 3way calling and also want the recordings. I tried a lot. But cant succeed.
viewtopic.php?f=4&t=29203

-Thanks.

Re: call transfer recording

PostPosted: Mon Jul 10, 2017 9:58 am
by webudo
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?

Re: call transfer recording

PostPosted: Thu Aug 17, 2017 12:38 pm
by kieran333
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?



Same here, it saves a 0 second recording.

Re: call transfer recording

PostPosted: Thu Aug 24, 2017 8:24 am
by kieran333
UPDATE -

It works whilst selecting blind transfer however none of the other options work, they just have a 0 second recording.

Re: call transfer recording

PostPosted: Mon Sep 25, 2017 9:03 am
by kieran333
Does anybody have a fix for this? I have upgraded to the latest build (Revision: 2819) and this issue still persists.

Just to confirm blind transfer works fine, but this is not suitable for our needs as we need to introduce the customer to the 3rd party.

Re: call transfer recording

PostPosted: Mon Sep 25, 2017 9:57 am
by mflorell
You could try sending the 3way call through the loopback trunk in IAX before it goes out the normal dialplan.

Re: call transfer recording

PostPosted: Mon Sep 25, 2017 3:05 pm
by kieran333
mflorell wrote:You could try sending the 3way call through the loopback trunk in IAX before it goes out the normal dialplan.


Hi Matt,

Thanks for the response, I have tried the following but still get a '0' seconds call. (Just the meetme sound) on recording.

Code: Select all
exten => _67.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N)
 same => n,Dial(${TRUNKloop}/44${EXTEN:4},,To)
 same => n,Hangup()

Re: call transfer recording

PostPosted: Mon Sep 25, 2017 3:14 pm
by mflorell
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.

Re: call transfer recording

PostPosted: Mon Sep 25, 2017 3:36 pm
by kieran333
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.


Hi Matt,

I tried the following but still no dice, I have included the CLI output... I will just keep plugging away... if you have any other suggestions it would be appreciated. As I do have a work-around, it's just messy and involves recording the files with MixMonitor which excludes them from the Vicidial lead / log.

Code: Select all
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()


CLI Output
Code: Select all
[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

Re: call transfer recording

PostPosted: Mon Sep 25, 2017 5:17 pm
by kieran333
Finally got it working as expected... I simply added the following code to system settings :)

Thanks for your assistance @mflorell - This is something that has plagued me for a while!

Code: Select all
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()

Re: call transfer recording

PostPosted: Mon Sep 25, 2017 10:24 pm
by mflorell
Thanks for the postback!

Yes, this can be a bit complex, and it's strange that some systems have to have it work this way, and some operate fine with the simpler method.