[Freeswitch-users] transfer_fallback_extension + transfer_on_fail

Paul Muaddib paul.muaddib83 at gmail.com
Sun Oct 28 22:20:36 UTC 2018


Hi,

I setup the following:
When someone calls an extensions the phone rings for 30 seconds. After that
the phone keeps ringing but also the phones at front desk, here 10 and 11
When the user is busy (USER_BUSY) or when the extensions does not exist
(NO_PICKUP) the caller will be transferred to the front desk. This is
working with transfer_on_fail

Now I would like to accomplish the following:
When someone does a blind transfer and the callee does not answer after 30
seconds, how can I transfer the callee back to the extension that initiated
the transfer?
In the documentation I found the channel variable
transfer_fallback_extension. But there is not explanation to it and how
does this work together with transfer_on_fail?

Best regards,
Paul

<extension name="Extension">
      <condition field="destination_number" expression="^([1-9][0-9])$">
        <action application="set" data="dialed_extension=$1"/>

        <action application="set"
data="transfer_on_fail=NO_PICKUP,USER_BUSY,NO_ANSWER,SUBSCRIBER_ABSENT
BRIDGE_FAILED_EXTENSION xml"/>
        <action application="set" data="hangup_after_bridge=true"/>
        <action application="set" data="continue_on_fail=true"/>

        <action application="bind_digit_action"
data="get_digits,~^([1-9][0-9])$,exec:lua,get_digits.lua,peer,self"/>
        <action application="digit_action_set_realm" data="get_digits"/>

        <action application="bridge"
data="<ignore_early_media=true>[leg_timeout=30]user/${dialed_extension},
pickup/global, pickup/${dialed_extension}"/>

        <action application="bridge"
data="<originate_timeout=90,ignore_early_media=true>
                                                user/${dialed_extension},
                                                user/10,
                                                user/11,
                                                pickup/global,

pickup/${dialed_extension}"/>
        <action application="hangup"/>

      </condition>
</extension>

<extension name="BRIDGE_FAILED_EXTENSION">
        <condition>
                <action application="log" data="INFO ######## Extension
failed - ${originate_disposition} ########" />

                <condition field="${originate_failed_cause}"
expression="(NO_PICKUP)|(USER_BUSY)|(NO_ANSWER)" break="on-true">
                        <action application="transfer" data="operator"/>
                </condition>

                <condition field="${originate_failed_cause}"
expression=".*" break="on-true">
                        <action application="transfer" data="operator"/>
                </condition>

        </condition>
</extension>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20181028/0eb6acd2/attachment-0001.html>


More information about the FreeSWITCH-users mailing list