Call Recording On Demand for Call Center Queues (mod_callcenter)
Hi, We’re trying to setup call recording on demand for call center queues (mod_callcenter) but are experiencing tremendous trouble. Is it possible for the agent to perform pause\resume call recording on mod_callcenter calls which are recorded by default upon answer? Here’s the important elements of our dialplan: <condition field="${rec_file}" expression="^(.)+"> <action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="export" inline="true" data="rec_file=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/> </condition> <condition field="destination_number" expression="^SETUP_RECORDING$"> <action application="log" data="INFO Configuring bind_digit_action to do recording on this session..."/> <action application="bind_digit_action" data="features,*1,exec:execute_extension,START_RECORDING XML ${domain_name}"/> <action application="bind_digit_action" data="features,*0,exec:execute_extension,STOP_RECORDING XML ${domain_name}"/> <action application="digit_action_set_realm" data=" features"/> </condition> <condition field="destination_number" expression="^START_RECORDING$"> <action application="log" data="INFO Starting recording..."/> <action application="record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^STOP_RECORDING$"> <action application="log" data="INFO Stopping recording..."/> <action application="stop_record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^837$"> <action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/> <action application="set" data="cc_export_vars=rec_file"/> <action application="set" data="bridge_pre_execute_bleg_app=execute_extension"/> <action application="set" data="bridge_pre_execute_bleg_data=SETUP_RECORDING XML ${domain_name}"/> <action application="callcenter" data="Test-bench@tester"/> </condition> Here’s the log of the call as it comes in: SET [RECORD_APPEND]=[true] Configuring bind_digit_action to do recording on this session... Digit parser DPTOOLS: binding *1/features/0 callback: 0x7f37720eed10 data: 0x7f367c7dd918 Digit parser DPTOOLS: binding *0/features/0 callback: 0x7f37720eed10 data: 0x7f367c7ddab8 Digit parser DPTOOLS: Setting realm to 'features' EXPORT (export_vars) (REMOTE ONLY) [execute_on_answer]=[record_session /usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3] The call is then answered by the agent, we see the recording file has been created, the agent presses *0 but the call continues recording, log as follows: SET [RECORD_APPEND]=[true] RTP RECV DTMF *:1536 RTP RECV DTMF 0:1536 Stopping recording... stop_record_session(/usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3) The configuration looks as though it should work, any ideas? Is there another method we should be using? Many Thanks, Shaun ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
We have been troubleshooting this further, it seems that this line has no effect when using mod_callcenter: <action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/> This parameter is set in callcenter.conf if we remove this the call doesn’t record: <param name="record-template" value="=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/> The file path\name from the above matches that of the call we’re trying to pause, but it seems we can’t pause the recording if this has been started by mod_callcenter, there are no errors. We can only start and pause call recording when this isn’t started using mod_callcenter by default. Is there any way around this, maybe a different command for mod_callcenter that can be executed on the agent leg using dtmf to stop the recording, or another way we can start recording after being answered by the agent? Thanks, Shaun From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Shaun Stokes Sent: 22 April 2016 14:56 To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Subject: [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter) Hi, We’re trying to setup call recording on demand for call center queues (mod_callcenter) but are experiencing tremendous trouble. Is it possible for the agent to perform pause\resume call recording on mod_callcenter calls which are recorded by default upon answer? Here’s the important elements of our dialplan: <condition field="${rec_file}" expression="^(.)+"> <action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="export" inline="true" data="rec_file=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/> </condition> <condition field="destination_number" expression="^SETUP_RECORDING$"> <action application="log" data="INFO Configuring bind_digit_action to do recording on this session..."/> <action application="bind_digit_action" data="features,*1,exec:execute_extension,START_RECORDING XML ${domain_name}"/> <action application="bind_digit_action" data="features,*0,exec:execute_extension,STOP_RECORDING XML ${domain_name}"/> <action application="digit_action_set_realm" data=" features"/> </condition> <condition field="destination_number" expression="^START_RECORDING$"> <action application="log" data="INFO Starting recording..."/> <action application="record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^STOP_RECORDING$"> <action application="log" data="INFO Stopping recording..."/> <action application="stop_record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^837$"> <action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/> <action application="set" data="cc_export_vars=rec_file"/> <action application="set" data="bridge_pre_execute_bleg_app=execute_extension"/> <action application="set" data="bridge_pre_execute_bleg_data=SETUP_RECORDING XML ${domain_name}"/> <action application="callcenter" data="Test-bench@tester"/> </condition> Here’s the log of the call as it comes in: SET [RECORD_APPEND]=[true] Configuring bind_digit_action to do recording on this session... Digit parser DPTOOLS: binding *1/features/0 callback: 0x7f37720eed10 data: 0x7f367c7dd918 Digit parser DPTOOLS: binding *0/features/0 callback: 0x7f37720eed10 data: 0x7f367c7ddab8 Digit parser DPTOOLS: Setting realm to 'features' EXPORT (export_vars) (REMOTE ONLY) [execute_on_answer]=[record_session /usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3] The call is then answered by the agent, we see the recording file has been created, the agent presses *0 but the call continues recording, log as follows: SET [RECORD_APPEND]=[true] RTP RECV DTMF *:1536 RTP RECV DTMF 0:1536 Stopping recording... stop_record_session(/usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3) The configuration looks as though it should work, any ideas? Is there another method we should be using? Many Thanks, Shaun ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
Use cc_export_vars https://freeswitch.org/confluence/display/FREESWITCH/mod_callcenter#mod_call... Or you can set variables in the agent's contact field: {myvar=myvalue}user/number On Fri, Apr 22, 2016 at 12:25 PM, Shaun Stokes < shaun.stokes@itec-support.co.uk> wrote:
We have been troubleshooting this further, it seems that this line has no effect when using mod_callcenter:
<action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/>
This parameter is set in callcenter.conf if we remove this the call doesn’t record:
<param name="record-template" value=" =$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext} "/>
The file path\name from the above matches that of the call we’re trying to pause, but it seems we can’t pause the recording if this has been started by mod_callcenter, there are no errors. We can only start and pause call recording when this isn’t started using mod_callcenter by default.
Is there any way around this, maybe a different command for mod_callcenter that can be executed on the agent leg using dtmf to stop the recording, or another way we can start recording after being answered by the agent?
Thanks,
Shaun
*From:* freeswitch-users-bounces@lists.freeswitch.org [mailto: freeswitch-users-bounces@lists.freeswitch.org] *On Behalf Of *Shaun Stokes *Sent:* 22 April 2016 14:56 *To:* FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> *Subject:* [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter)
Hi,
We’re trying to setup call recording on demand for call center queues (mod_callcenter) but are experiencing tremendous trouble. Is it possible for the agent to perform pause\resume call recording on mod_callcenter calls which are recorded by default upon answer?
Here’s the important elements of our dialplan:
<condition field="${rec_file}" expression="^(.)+">
<action application="set" inline="true" data="RECORD_APPEND=true"/>
<anti-action application="set" inline="true" data="RECORD_APPEND=true"/>
<anti-action application="export" inline="true" data="rec_file=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/>
</condition>
<condition field="destination_number" expression="^SETUP_RECORDING$">
<action application="log" data="INFO Configuring bind_digit_action to do recording on this session..."/>
<action application="bind_digit_action" data="features,*1,exec:execute_extension,START_RECORDING XML ${domain_name}"/>
<action application="bind_digit_action" data="features,*0,exec:execute_extension,STOP_RECORDING XML ${domain_name}"/>
<action application="digit_action_set_realm" data=" features"/>
</condition>
<condition field="destination_number" expression="^START_RECORDING$">
<action application="log" data="INFO Starting recording..."/>
<action application="record_session" data="${rec_file}"/>
</condition>
<condition field="destination_number" expression="^STOP_RECORDING$">
<action application="log" data="INFO Stopping recording..."/>
<action application="stop_record_session" data="${rec_file}"/>
</condition>
<condition field="destination_number" expression="^837$">
<action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/>
<action application="set" data="cc_export_vars=rec_file"/>
<action application="set" data="bridge_pre_execute_bleg_app=execute_extension"/>
<action application="set" data="bridge_pre_execute_bleg_data=SETUP_RECORDING XML ${domain_name}"/>
<action application="callcenter" data="Test-bench@tester"/>
</condition>
Here’s the log of the call as it comes in:
SET [RECORD_APPEND]=[true]
Configuring bind_digit_action to do recording on this session...
Digit parser DPTOOLS: binding *1/features/0 callback: 0x7f37720eed10 data: 0x7f367c7dd918
Digit parser DPTOOLS: binding *0/features/0 callback: 0x7f37720eed10 data: 0x7f367c7ddab8
Digit parser DPTOOLS: Setting realm to 'features'
EXPORT (export_vars) (REMOTE ONLY) [execute_on_answer]=[record_session /usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3]
The call is then answered by the agent, we see the recording file has been created, the agent presses *0 but the call continues recording, log as follows:
SET [RECORD_APPEND]=[true]
RTP RECV DTMF *:1536
RTP RECV DTMF 0:1536
Stopping recording...
stop_record_session(/usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3)
The configuration looks as though it should work, any ideas? Is there another method we should be using?
Many Thanks,
Shaun
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Ítalo Rossi italo@freeswitch.org
Hi Ítalo, Unfortunately execute_on_answer doesn’t have any effect if we use this in cc_export_vars or in the agents contact field, with or with-out the nolocal: prefix. We have replaced our variable ${rec_file} with a fixed recording file path for testing purposes so we could rule that out. Here’s a list of variables we’ve tried in cc_export_vars and the agents contact field for testing purposes: execute_on_answer=nolocal:record_session /usr/local/freeswitch/recordings/test.mp3 execute_on_answer=record_session /usr/local/freeswitch/recordings/test.mp3 execute_on_answer='record_session /usr/local/freeswitch/recordings/test.mp3' api_on_answer=nolocal:uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3 api_on_answer=uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3 api_on_answer='uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3' If you or anyone else here has any other ideas that would be a great help to us. Many Thanks, Shaun From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Ítalo Rossi Sent: 22 April 2016 20:47 To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Subject: Re: [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter) Use cc_export_vars https://freeswitch.org/confluence/display/FREESWITCH/mod_callcenter#mod_call... Or you can set variables in the agent's contact field: {myvar=myvalue}user/number On Fri, Apr 22, 2016 at 12:25 PM, Shaun Stokes <shaun.stokes@itec-support.co.uk<mailto:shaun.stokes@itec-support.co.uk>> wrote: We have been troubleshooting this further, it seems that this line has no effect when using mod_callcenter: <action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/> This parameter is set in callcenter.conf if we remove this the call doesn’t record: <param name="record-template" value="=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/> The file path\name from the above matches that of the call we’re trying to pause, but it seems we can’t pause the recording if this has been started by mod_callcenter, there are no errors. We can only start and pause call recording when this isn’t started using mod_callcenter by default. Is there any way around this, maybe a different command for mod_callcenter that can be executed on the agent leg using dtmf to stop the recording, or another way we can start recording after being answered by the agent? Thanks, Shaun From: freeswitch-users-bounces@lists.freeswitch.org<mailto:freeswitch-users-bounces@lists.freeswitch.org> [mailto:freeswitch-users-bounces@lists.freeswitch.org<mailto:freeswitch-users-bounces@lists.freeswitch.org>] On Behalf Of Shaun Stokes Sent: 22 April 2016 14:56 To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org<mailto:freeswitch-users@lists.freeswitch.org>> Subject: [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter) Hi, We’re trying to setup call recording on demand for call center queues (mod_callcenter) but are experiencing tremendous trouble. Is it possible for the agent to perform pause\resume call recording on mod_callcenter calls which are recorded by default upon answer? Here’s the important elements of our dialplan: <condition field="${rec_file}" expression="^(.)+"> <action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="export" inline="true" data="rec_file=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/> </condition> <condition field="destination_number" expression="^SETUP_RECORDING$"> <action application="log" data="INFO Configuring bind_digit_action to do recording on this session..."/> <action application="bind_digit_action" data="features,*1,exec:execute_extension,START_RECORDING XML ${domain_name}"/> <action application="bind_digit_action" data="features,*0,exec:execute_extension,STOP_RECORDING XML ${domain_name}"/> <action application="digit_action_set_realm" data=" features"/> </condition> <condition field="destination_number" expression="^START_RECORDING$"> <action application="log" data="INFO Starting recording..."/> <action application="record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^STOP_RECORDING$"> <action application="log" data="INFO Stopping recording..."/> <action application="stop_record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^837$"> <action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/> <action application="set" data="cc_export_vars=rec_file"/> <action application="set" data="bridge_pre_execute_bleg_app=execute_extension"/> <action application="set" data="bridge_pre_execute_bleg_data=SETUP_RECORDING XML ${domain_name}"/> <action application="callcenter" data="Test-bench@tester"/> </condition> Here’s the log of the call as it comes in: SET [RECORD_APPEND]=[true] Configuring bind_digit_action to do recording on this session... Digit parser DPTOOLS: binding *1/features/0 callback: 0x7f37720eed10 data: 0x7f367c7dd918 Digit parser DPTOOLS: binding *0/features/0 callback: 0x7f37720eed10 data: 0x7f367c7ddab8 Digit parser DPTOOLS: Setting realm to 'features' EXPORT (export_vars) (REMOTE ONLY) [execute_on_answer]=[record_session /usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3] The call is then answered by the agent, we see the recording file has been created, the agent presses *0 but the call continues recording, log as follows: SET [RECORD_APPEND]=[true] RTP RECV DTMF *:1536 RTP RECV DTMF 0:1536 Stopping recording... stop_record_session(/usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3) The configuration looks as though it should work, any ideas? Is there another method we should be using? Many Thanks, Shaun ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org<mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Ítalo Rossi italo@freeswitch.org<mailto:italo@freeswitch.org> ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
I may have come across another solution for call recording on demand when using mod_cellcenter. I’ve tested using the uuid_record API command to stop a Call Center Queue recording and this works. When using uuid_record I’m not sure if it’s not possible to pause and resume, however it is possible to mask and unmask the audio with silence. We’re currently testing this further to see if we can make this work in our environment but thus far this looks promising. Shaun From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Shaun Stokes Sent: 25 April 2016 09:11 To: 'FreeSWITCH Users Help' <freeswitch-users@lists.freeswitch.org> Subject: Re: [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter) Hi Ítalo, Unfortunately execute_on_answer doesn’t have any effect if we use this in cc_export_vars or in the agents contact field, with or with-out the nolocal: prefix. We have replaced our variable ${rec_file} with a fixed recording file path for testing purposes so we could rule that out. Here’s a list of variables we’ve tried in cc_export_vars and the agents contact field for testing purposes: execute_on_answer=nolocal:record_session /usr/local/freeswitch/recordings/test.mp3 execute_on_answer=record_session /usr/local/freeswitch/recordings/test.mp3 execute_on_answer='record_session /usr/local/freeswitch/recordings/test.mp3' api_on_answer=nolocal:uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3 api_on_answer=uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3 api_on_answer='uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3' If you or anyone else here has any other ideas that would be a great help to us. Many Thanks, Shaun From: freeswitch-users-bounces@lists.freeswitch.org<mailto:freeswitch-users-bounces@lists.freeswitch.org> [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Ítalo Rossi Sent: 22 April 2016 20:47 To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org<mailto:freeswitch-users@lists.freeswitch.org>> Subject: Re: [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter) Use cc_export_vars https://freeswitch.org/confluence/display/FREESWITCH/mod_callcenter#mod_call... Or you can set variables in the agent's contact field: {myvar=myvalue}user/number On Fri, Apr 22, 2016 at 12:25 PM, Shaun Stokes <shaun.stokes@itec-support.co.uk<mailto:shaun.stokes@itec-support.co.uk>> wrote: We have been troubleshooting this further, it seems that this line has no effect when using mod_callcenter: <action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/> This parameter is set in callcenter.conf if we remove this the call doesn’t record: <param name="record-template" value="=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/> The file path\name from the above matches that of the call we’re trying to pause, but it seems we can’t pause the recording if this has been started by mod_callcenter, there are no errors. We can only start and pause call recording when this isn’t started using mod_callcenter by default. Is there any way around this, maybe a different command for mod_callcenter that can be executed on the agent leg using dtmf to stop the recording, or another way we can start recording after being answered by the agent? Thanks, Shaun From: freeswitch-users-bounces@lists.freeswitch.org<mailto:freeswitch-users-bounces@lists.freeswitch.org> [mailto:freeswitch-users-bounces@lists.freeswitch.org<mailto:freeswitch-users-bounces@lists.freeswitch.org>] On Behalf Of Shaun Stokes Sent: 22 April 2016 14:56 To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org<mailto:freeswitch-users@lists.freeswitch.org>> Subject: [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter) Hi, We’re trying to setup call recording on demand for call center queues (mod_callcenter) but are experiencing tremendous trouble. Is it possible for the agent to perform pause\resume call recording on mod_callcenter calls which are recorded by default upon answer? Here’s the important elements of our dialplan: <condition field="${rec_file}" expression="^(.)+"> <action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="set" inline="true" data="RECORD_APPEND=true"/> <anti-action application="export" inline="true" data="rec_file=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/> </condition> <condition field="destination_number" expression="^SETUP_RECORDING$"> <action application="log" data="INFO Configuring bind_digit_action to do recording on this session..."/> <action application="bind_digit_action" data="features,*1,exec:execute_extension,START_RECORDING XML ${domain_name}"/> <action application="bind_digit_action" data="features,*0,exec:execute_extension,STOP_RECORDING XML ${domain_name}"/> <action application="digit_action_set_realm" data=" features"/> </condition> <condition field="destination_number" expression="^START_RECORDING$"> <action application="log" data="INFO Starting recording..."/> <action application="record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^STOP_RECORDING$"> <action application="log" data="INFO Stopping recording..."/> <action application="stop_record_session" data="${rec_file}"/> </condition> <condition field="destination_number" expression="^837$"> <action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/> <action application="set" data="cc_export_vars=rec_file"/> <action application="set" data="bridge_pre_execute_bleg_app=execute_extension"/> <action application="set" data="bridge_pre_execute_bleg_data=SETUP_RECORDING XML ${domain_name}"/> <action application="callcenter" data="Test-bench@tester"/> </condition> Here’s the log of the call as it comes in: SET [RECORD_APPEND]=[true] Configuring bind_digit_action to do recording on this session... Digit parser DPTOOLS: binding *1/features/0 callback: 0x7f37720eed10 data: 0x7f367c7dd918 Digit parser DPTOOLS: binding *0/features/0 callback: 0x7f37720eed10 data: 0x7f367c7ddab8 Digit parser DPTOOLS: Setting realm to 'features' EXPORT (export_vars) (REMOTE ONLY) [execute_on_answer]=[record_session /usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3] The call is then answered by the agent, we see the recording file has been created, the agent presses *0 but the call continues recording, log as follows: SET [RECORD_APPEND]=[true] RTP RECV DTMF *:1536 RTP RECV DTMF 0:1536 Stopping recording... stop_record_session(/usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3) The configuration looks as though it should work, any ideas? Is there another method we should be using? Many Thanks, Shaun ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org<mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Ítalo Rossi italo@freeswitch.org<mailto:italo@freeswitch.org> ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________ ______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
it wouldn't because the calls are already answered On Monday, April 25, 2016, Shaun Stokes <shaun.stokes@itec-support.co.uk> wrote:
Hi Ítalo,
Unfortunately execute_on_answer doesn’t have any effect if we use this in cc_export_vars or in the agents contact field, with or with-out the nolocal: prefix. We have replaced our variable ${rec_file} with a fixed recording file path for testing purposes so we could rule that out.
Here’s a list of variables we’ve tried in cc_export_vars and the agents contact field for testing purposes:
execute_on_answer=nolocal:record_session /usr/local/freeswitch/recordings/test.mp3
execute_on_answer=record_session /usr/local/freeswitch/recordings/test.mp3
execute_on_answer='record_session /usr/local/freeswitch/recordings/test.mp3'
api_on_answer=nolocal:uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3
api_on_answer=uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3
api_on_answer='uuid_record ${uuid} start /usr/local/freeswitch/recordings/test.mp3'
If you or anyone else here has any other ideas that would be a great help to us.
Many Thanks,
Shaun
*From:* freeswitch-users-bounces@lists.freeswitch.org <javascript:_e(%7B%7D,'cvml','freeswitch-users-bounces@lists.freeswitch.org');> [mailto:freeswitch-users-bounces@lists.freeswitch.org <javascript:_e(%7B%7D,'cvml','freeswitch-users-bounces@lists.freeswitch.org');>] *On Behalf Of *Ítalo Rossi *Sent:* 22 April 2016 20:47 *To:* FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org <javascript:_e(%7B%7D,'cvml','freeswitch-users@lists.freeswitch.org');>> *Subject:* Re: [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter)
Use cc_export_vars https://freeswitch.org/confluence/display/FREESWITCH/mod_callcenter#mod_call...
Or you can set variables in the agent's contact field: {myvar=myvalue}user/number
On Fri, Apr 22, 2016 at 12:25 PM, Shaun Stokes < shaun.stokes@itec-support.co.uk <javascript:_e(%7B%7D,'cvml','shaun.stokes@itec-support.co.uk');>> wrote:
We have been troubleshooting this further, it seems that this line has no effect when using mod_callcenter:
<action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/>
This parameter is set in callcenter.conf if we remove this the call doesn’t record:
<param name="record-template" value="=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/>
The file path\name from the above matches that of the call we’re trying to pause, but it seems we can’t pause the recording if this has been started by mod_callcenter, there are no errors. We can only start and pause call recording when this isn’t started using mod_callcenter by default.
Is there any way around this, maybe a different command for mod_callcenter that can be executed on the agent leg using dtmf to stop the recording, or another way we can start recording after being answered by the agent?
Thanks,
Shaun
*From:* freeswitch-users-bounces@lists.freeswitch.org <javascript:_e(%7B%7D,'cvml','freeswitch-users-bounces@lists.freeswitch.org');> [mailto:freeswitch-users-bounces@lists.freeswitch.org <javascript:_e(%7B%7D,'cvml','freeswitch-users-bounces@lists.freeswitch.org');>] *On Behalf Of *Shaun Stokes *Sent:* 22 April 2016 14:56 *To:* FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org <javascript:_e(%7B%7D,'cvml','freeswitch-users@lists.freeswitch.org');>> *Subject:* [Freeswitch-users] Call Recording On Demand for Call Center Queues (mod_callcenter)
Hi,
We’re trying to setup call recording on demand for call center queues (mod_callcenter) but are experiencing tremendous trouble. Is it possible for the agent to perform pause\resume call recording on mod_callcenter calls which are recorded by default upon answer?
Here’s the important elements of our dialplan:
<condition field="${rec_file}" expression="^(.)+">
<action application="set" inline="true" data="RECORD_APPEND=true"/>
<anti-action application="set" inline="true" data="RECORD_APPEND=true"/>
<anti-action application="export" inline="true" data="rec_file=$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext}"/>
</condition>
<condition field="destination_number" expression="^SETUP_RECORDING$">
<action application="log" data="INFO Configuring bind_digit_action to do recording on this session..."/>
<action application="bind_digit_action" data="features,*1,exec:execute_extension,START_RECORDING XML ${domain_name}"/>
<action application="bind_digit_action" data="features,*0,exec:execute_extension,STOP_RECORDING XML ${domain_name}"/>
<action application="digit_action_set_realm" data=" features"/>
</condition>
<condition field="destination_number" expression="^START_RECORDING$">
<action application="log" data="INFO Starting recording..."/>
<action application="record_session" data="${rec_file}"/>
</condition>
<condition field="destination_number" expression="^STOP_RECORDING$">
<action application="log" data="INFO Stopping recording..."/>
<action application="stop_record_session" data="${rec_file}"/>
</condition>
<condition field="destination_number" expression="^837$">
<action application="export" data="nolocal:execute_on_answer=record_session ${rec_file}"/>
<action application="set" data="cc_export_vars=rec_file"/>
<action application="set" data="bridge_pre_execute_bleg_app=execute_extension"/>
<action application="set" data="bridge_pre_execute_bleg_data=SETUP_RECORDING XML ${domain_name}"/>
<action application="callcenter" data="Test-bench@tester"/>
</condition>
Here’s the log of the call as it comes in:
SET [RECORD_APPEND]=[true]
Configuring bind_digit_action to do recording on this session...
Digit parser DPTOOLS: binding *1/features/0 callback: 0x7f37720eed10 data: 0x7f367c7dd918
Digit parser DPTOOLS: binding *0/features/0 callback: 0x7f37720eed10 data: 0x7f367c7ddab8
Digit parser DPTOOLS: Setting realm to 'features'
EXPORT (export_vars) (REMOTE ONLY) [execute_on_answer]=[record_session /usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3]
The call is then answered by the agent, we see the recording file has been created, the agent presses *0 but the call continues recording, log as follows:
SET [RECORD_APPEND]=[true]
RTP RECV DTMF *:1536
RTP RECV DTMF 0:1536
Stopping recording...
stop_record_session(/usr/local/freeswitch/recordings/tester/archive/2016/Apr/22/cce7b636-088c-11e6-9458-f7ab40b1257a.mp3)
The configuration looks as though it should work, any ideas? Is there another method we should be using?
Many Thanks,
Shaun
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org <javascript:_e(%7B%7D,'cvml','consulting@freeswitch.org');> http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org <javascript:_e(%7B%7D,'cvml','FreeSWITCH-users@lists.freeswitch.org');> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
--
Ítalo Rossi
italo@freeswitch.org <javascript:_e(%7B%7D,'cvml','italo@freeswitch.org');>
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
______________________________________________________________________ This message has been checked for all known viruses by MessageLabs Virus Scanning Service. ______________________________________________________________________
participants (3)
-
Michael Jerris
-
Shaun Stokes
-
Ítalo Rossi