I have setup a feature where users who have dialed outbound have the option to transfer the b-leg to a separate outbound number, like so:

    <extension name="outbound_9">
      <condition field="destination_number" expression="^9(\d{10})$">
        <action application="set" data="ringback=${us-ring}"/>
        <action application="set" data="transfer_ringback=$${hold_music}"/>
        <action application="set" data="continue_on_fail=true"/>
        <action application="set" data="bind_meta_key=*"/>
        <action application="bind_meta_app" data="1 a s execute_extension::dx XML mycontext"/>
        <action application="transfer" data="to_outbound XML mycontext"/>
      </condition>
    </extension>

    <extension name="dx">
      <condition field="destination_number" expression="^dx$">
        <action application="log" data="INFO transferring the b-leg..."/>
        <action application="answer"/>
        <action application="sleep" data="1000"/>
        <action application="playback" data="/usr/local/freeswitch/sounds/en/us/callie/misc/8000/transfer2.wav"/>
        <action application="read" data="11 11 'tone_stream://%(10000,0,350,440)' digits 5000 #"/>
        <action application="execute_extension" data="is_transfer XML mycontext"/>
      </condition>
    </extension>

A delay sometimes occurs after users have pressed *1 and before the message "transferring the b-leg..." appears in the console. This delay happens ~1/3 of the time and lasts for ~5s. Do you know how I should execute this functionality in a way that will not cause such a delay?

thanks,
elijah