[Freeswitch-users] Transfer A-Leg in a callcenter queue bridged to an agent to another queue

Mimiko vbvbrj at gmail.com
Mon Sep 30 15:04:53 MSD 2013


On 30.09.2013 10:33, Cal Leeming [Simplicity Media Ltd] wrote:
> Can you please try the following on your dialplan;
> https://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_record_session#Continue_recording_on_transfer
> <action application="set" data="recording_follow_transfer=false"/>
>
> Apparently setting that to false will stop the call recording after a
> transfer - which is the behavior I think you are looking for.
>
> Please let me know if I have misinterpreted your problem.

Well this will stop recording on a transfer. Only is that I need the 
recording to continue on transfer to any extension from callcenter 
application, except to extensions associated with another queue in 
callcenter. Ie, record_follow_transfer=true is the default on the whole 
FS system. Only in case of transfer from one queue to another queue 
record must not follow transfer.

I obtained this behavior explicitly stopping recording when transferred 
to any extension associated with a callcenter application. So the 
dialplan contains this:

<extension name="cc1">
  <condition field="destination_number" expression="^777$" break="on-false">
   <action application="set" data="default_language=ro"/>
   <action application="answer"/>
  </condition>
  <condition field="${cc_record_filename}" expression="^$" break="never">
   <anti-action application="stop_record_session" 
data="${cc_record_filename}"/>
  </condition>
  <condition field="${cc_member_uuid}" expression="^$" break="never">
   <anti-action application="set" data="cc_base_score=300"/>
   <!-- play a message before entering the queue. -->
   <action application="playback" data="phrase:cc_intro"/>
   <!-- hangup after successful bridge to agent -->
   <action application="set" data="hangup_after_bridge=true"/>
   <!-- queue caller -->
   <action application="set" data="RECORD_STEREO=true"/>
   <action application="set" data="record_sample_rate=8000"/>
  </condition>
  <condition>
   <action application="bind_meta_app" data="1 b s 
execute_extension::redir_from_cc XML features_local"/>
   <action application="callcenter" data="cc1"/>
   <!-- if no agent was reached and using max-wait-time - send to 
general voicemail -->
   <action application="set" data="playback_terminators=#"/>
   <action application="playback" data="phrase:no_agents_leave_message"/>
   <action application="set" data="skip_greeting=true"/>
   <action application="set" data="skip_instructions=true"/>
   <action application="voicemail" data="default ${domain_name} cc1"/>
   <action application="hangup"/>
  </condition>
</extension>

<extension name="cc2">
  <condition field="destination_number" expression="^888$" break="on-false">
   <action application="set" data="default_language=ro"/>
   <action application="answer"/>
  </condition>
  <condition field="${cc_record_filename}" expression="^$" break="never">
   <anti-action application="stop_record_session" 
data="${cc_record_filename}"/>
  </condition>
  <condition field="${cc_member_uuid}" expression="^$" break="never">
   <anti-action application="set" data="cc_base_score=300"/>
   <!-- play a message before entering the queue. -->
   <action application="playback" data="phrase:cc_intro"/>
   <!-- hangup after successful bridge to agent -->
   <action application="set" data="hangup_after_bridge=true"/>
   <!-- queue caller -->
   <action application="set" data="RECORD_STEREO=true"/>
   <action application="set" data="record_sample_rate=8000"/>
  </condition>
  <condition>
   <action application="bind_meta_app" data="1 b s 
execute_extension::redir_from_cc XML features_local"/>
   <action application="callcenter" data="cc2"/>
   <action application="transfer" data="cc1 XML default"/>
  </condition>
</extension>

features_local contains:

<extension name="redir_from_cc">
  <condition field="destination_number" expression="^redir_from_cc$">
   <action application="answer"/>
   <action application="read" data="11 11 
'tone_stream://%(10000,0,350,440)' digits 5000 #"/>
   <action application="execute_extension" data="is_transfer_from_cc XML 
features_local"/>
  </condition>
</extension>

<extension name="is_transfer_from_cc">
  <condition field="destination_number" expression="^is_transfer_from_cc$"/>
  <condition field="${digits}" expression="^(\d+)$">
   <action application="transfer" data="-bleg ${digits} XML default"/>
   <anti-action application="eval" data="cancel transfer"/>
  </condition>
</extension>


-- 
Mimiko desu.



Join us at ClueCon 2013 Aug 6-8, 2013
More information about the FreeSWITCH-users mailing list