fusionpbx/app/dialplan/resources/switch/conf/dialplan/999_local_extension.xml

52 lines
3.4 KiB
XML

<context name="{v_context}">
<extension name="local_extension" number="[ext]" continue="false" app_uuid="71cf1310-b6e3-415b-8745-3cbdc8e15212">
<condition field="${user_exists}" expression="true">
<!--<action application="pre_answer"/>-->
<action application="export" data="dialed_extension=${destination_number}" inline="true"/>
<action application="limit" data="hash ${domain_name} ${destination_number} ${limit_max} ${limit_destination}" inline="false" />
</condition>
<!--Allow transfer/record only for internal users-->
<condition field="${sip_authorized}" expression="true" break="never">
<action application="set" data="bind_target=both" inline="true"/>
<!-- set to `peer` to prevent manipulate of call by callee -->
<anti-action application="set" data="bind_target=both" inline="true"/>
</condition>
<condition>
<action application="bind_digit_action" data="local,*1,exec:execute_extension,dx XML ${context},${bind_target}"/>
<action application="bind_digit_action" data="local,*2,exec:record_session,$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext},${bind_target}"/>
<action application="bind_digit_action" data="local,*3,exec:execute_extension,cf XML ${context},${bind_target}"/>
<action application="bind_digit_action" data="local,*4,exec:execute_extension,att_xfer XML ${context},${bind_target}"/>
<action application="digit_action_set_realm" data="local"/>
</condition>
<condition>
<!--<action application="set" data="ringback=${ringback}"/>-->
<action application="set" data="hangup_after_bridge=true"/>
<!--<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
<action application="set" data="continue_on_fail=true"/>
<action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
<action application="set" data="called_party_call_group=${user_data(${dialed_extension}@${domain_name} var call_group)}"/>
<!--<action application="export" data="nolocal:sip_secure_media=${user_data(${dialed_extension}@${domain_name} var sip_secure_media)}"/>-->
<action application="hash" data="insert/${domain_name}-last_dial/${called_party_call_group}/${uuid}"/>
<action application="set" data="api_hangup_hook=lua app.lua hangup"/>
<!-- standard method -->
<action application="bridge" data="user/${destination_number}@${domain_name}"/>
<!-- sofia contact -->
<!--<action application="bridge" data="${sofia_contact(${dialed_extension}@${domain_name})}"/>-->
<!-- number-alias / https://confluence.freeswitch.org/display/FREESWITCH/XML+User+Directory -->
<!--<action application="bridge" data="user/${user_data(${destination_number}@${domain_name} attr id)}@${domain_name}"/> -->
<!-- handles bridge failures before answer -->
<action application="lua" data="app.lua failure_handler"/>
<action application="sleep" data="1000"/>
<!--<action application="voicemail" data="default ${domain_name} ${dialed_extension}"/>-->
<action application="set" data="voicemail_action=save"/>
<action application="set" data="voicemail_id=${dialed_extension}"/>
<action application="set" data="voicemail_profile=default"/>
<action application="lua" data="app.lua voicemail"/>
</condition>
</extension>
</context>