Hi, Thank you very much for your prompt response. I actually did try to put the "read" app in a separate extension, but what happened was that when *1 was pressed, Freeswitch would play MOH and both both soft phone couldn't hear each other anymore. After MOH is played, Freeswitch just continues to place it forever. What I need is for the record to take place at the background without interrupting the existing call. That part can be accomplished by using <action application="bind_meta_app" data="2 a s record_session::$${base_dir}/ recordings/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/> In addition to that, the party that presses *1 would hear a BEEP sound, indicating the beginning of the recording. I think the problem may due to a misconfigured dialplan, but I can't figure out what's wrong. Here is my dialplan: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <document type="freeswitch/xml"> <section name="dialplan" description="Redirect to agent dialplan"> <context name="public"> <extension name="test9"> <condition field="destination_number" expression="^(.*)$"> <action application="bind_meta_app" data="3 a a execute_extension::transfer XML features"/> <action application="bind_meta_app" data="1 a a execute_extension::record XML features"/> <action application="bind_meta_app" data="2 a a stop_record_session::/mnt/app/recordings/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/> <action application="bind_meta_app" data="4 a s execute_extension::att_xfer XML features"/> <action application="bridge" data="sofia/gateway/mygateway/1000"/> <action application="hangup" /> </condition> </extension> </context> <context name="features"> <extension name="features"> <condition field="destination_number" expression="^att_xfer" break="on-true"> <action application="read" data="1 10 'tone_stream://%(10000,0,350,440)' digits 30000 #"/> <action application="set" data="action=att-xfer" /> <action application="execute_extension" data="att${digits} XML public"/> </condition> <condition field="destination_number" expression="^record" break="on-true"> <action application="record" data="/mnt/app/recordings/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/> </condition> </extension> </context> </section> </document> The Freeswitch log shows that it plays a MOH after *1 is pressed, which is not what I want: 2008-10-25 17:05:13 [DEBUG] switch_ivr_async.c:1425 meta_on_dtmf() sofia/internal/5454@192.168.1.101 Processing meta digit '1' [execute_extension::record XML features] 2008-10-25 17:05:13 [DEBUG] switch_core_session.c:616 switch_core_session_queue_private_event() Kill sofia/internal/ 5454@192.168.1.101 [BREAK] 2008-10-25 17:05:13 [DEBUG] switch_core_session.c:435 switch_core_session_receive_message() Kill sofia/internal/5454@192.168.1.101[BREAK] 2008-10-25 17:05:13 [DEBUG] switch_core_session.c:616 switch_core_session_queue_private_event() Kill sofia/external/1000 [BREAK] 2008-10-25 17:05:13 [DEBUG] switch_core_session.c:435 switch_core_session_receive_message() Kill sofia/external/1000 [BREAK] 2008-10-25 17:05:13 [DEBUG] switch_ivr.c:382 switch_ivr_parse_event() sofia/external/1000 Command Execute playback(local_stream://moh) 2008-10-25 17:05:13 [DEBUG] switch_ivr.c:382 switch_ivr_parse_event() sofia/internal/5454@192.168.1.101 Command Execute execute_extension(record XML features) 2008-10-25 17:05:13 [INFO] mod_dialplan_xml.c:232 dialplan_hunt() Processing 5454->record in context features 2008-10-25 17:05:13 [DEBUG] mod_local_stream.c:320 local_stream_file_open() Opening Stream [moh/8000] 8000hz 2008-10-25 17:05:14 [DEBUG] switch_ivr_play_say.c:928 switch_ivr_play_file() Codec Activated L16@8000hz 1 channels 30ms 2008-10-25 17:05:14 [DEBUG] switch_core_session.c:435 switch_core_session_receive_message() Kill sofia/external/1000 [BREAK] 2008-10-25 17:05:14 [CONSOLE] mod_xml_curl.c:206 xml_url_fetch() XML response is in /tmp/4384f1d4-b856-4817-8ac7-d6f9fb3dd866.tmp.xml 2008-10-25 17:05:14 [DEBUG] mod_dialplan_xml.c:117 parse_exten() Regex: [features] destination_number(record) =~ /^att_xfer/ 2008-10-25 17:05:14 [DEBUG] mod_dialplan_xml.c:119 parse_exten() Regex mismatch 2008-10-25 17:05:14 [DEBUG] mod_dialplan_xml.c:117 parse_exten() Regex: [features] destination_number(record) =~ /^record/ 2008-10-25 17:05:14 [NOTICE] switch_core_session.c:1219 switch_core_session_execute_exten() Execute record(/mnt/app/recordings/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav) Thank you so much for all your help. Woody