Global

Global specific dialplans are global to all tennants(domains). These can be changed, however the changes apply to all tennants.

Not Found

Dialplan Detail Tag

Dialplan Detail Type

Dialplan Detail Data

Dialplan Detail Break

Dialplan Detail Inline

Dialplan Detail Group

Dialplan Detail Order

condition

Domain Specific

Domain specific dialplans are all the same initially but can be changed. Those changes are per domain, thus helps FusionPBX achieve multitenancy.

Hold Music

Dialplan Detail Tag

Dialplan Detail Type

Dialplan Detail Data

Dialplan Detail Break

Dialplan Detail Inline

Dialplan Detail Group

Dialplan Detail Order

condition

destination_number

^*9664$

condition

${sip_has_crypto}

^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$

action

answer

action

execute_extension

is_secure XML ${context}

action

playback

$${hold_music}

anti-action

zrtp_secure_media=true

anti-action

answer

anti-action

playback

silence_stream://2000

anti-action

execute_extension

is_zrtp_secure XML ${context}

anti-action

playback

$${hold_music}

action

extension_uuid=${user_data ${destination_number}@${domain_name} var extension_uuid}

action

hold_music=${user_data ${destination_number}@${domain_name} var hold_music}

action

forward_all_enabled=${user_data ${destination_number}@${domain_name} var forward_all_enabled}

action

forward_all_destination=${user_data ${destination_number}@${domain_name} var forward_all_destination}

action

forward_busy_enabled=${user_data ${destination_number}@${domain_name} var forward_busy_enabled}

action

forward_busy_destination=${user_data ${destination_number}@${domain_name} var forward_busy_destination}

action

forward_no_answer_enabled=${user_data ${destination_number}@${domain_name} var forward_no_answer_enabled}

action

forward_no_answer_destination=${user_data ${destination_number}@${domain_name} var forward_no_answer_destination}

action

forward_user_not_registered_enabled=${user_data ${destination_number}@${domain_name} var forward_user_not_registered_enabled}

action

forward_user_not_registered_destination=${user_data ${destination_number}@${domain_name} var forward_user_not_registered_destination}

action

do_not_disturb=${user_data ${destination_number}@${domain_name} var do_not_disturb}

action

call_timeout=${user_data ${destination_number}@${domain_name} var call_timeout}

action

missed_call_app=${user_data ${destination_number}@${domain_name} var missed_call_app}

action

missed_call_data=${user_data ${destination_number}@${domain_name} var missed_call_data}

action

toll_allow=${user_data ${destination_number}@${domain_name} var toll_allow}

action

call_screen_enabled=${user_data ${destination_number}@${domain_name} var call_screen_enabled}

action

record_path=${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}

action

record_name=${uuid}.${record_ext}

action

recording_follow_transfer=true

action

record_append=true

action

record_in_progress=true

action

record_session

${record_path}/${record_name}

FALSE

action

api_result=${conference(${conf_xfer_number} unmute ${conference_member_id} quiet)}

action

bind_digit_action

conf-xfer,*0,api:lua,transfer2.lua ${uuid} conf_enter_number::XML::conf-xfer@${domain_name} conf_enter_to::XML::conf-xfer@${domain_name}

action

bind_digit_action

conf-xfer,##,api:lua,transfer2.lua ${uuid} conf_enter_number::XML::conf-xfer@${domain_name} ::KILL::

action

bind_digit_action

conf-xfer,*#,api:lua,transfer2.lua ${uuid} conf_add_end::XML::conf-xfer@${domain_name} ::KILL::

action

bind_digit_action

conf,*#,exec:execute_extension,conf_add_begin XML conf-xfer@${domain_name}

action

bind_digit_action

none,NONE,api:sleep,1

action

continue_on_fail=true

action

transfer

conf_enter_number XML conf-xfer@${domain_name}

condition

destination_number

^conf_add_end$

on-true

action

digit_action_set_realm

action

api_result=${conference(${conf_xfer_number} mute ${conference_member_id})}

action

conference

${conf_xfer_number}@page

condition

destination_number

^conf_enter_number$

on-true

action

digit_action_set_realm

action

2 11 ‘tone_stream://%(10000,0,350,440)’ target_num 30000 #

action

execute_extension

conf_bridge_${target_num} XML conf-xfer@${domain_name}

condition

destination_number

^conf_bridge_$

on-true

action

execute_extension

conf_add_end XML conf-xfer@${domain_name}

condition

destination_number

^conf_bridge_*$

on-true

action

execute_extension

conf_add_end XML conf-xfer@${domain_name}

condition

destination_number

^conf_bridge_(\d{2,7})$

on-true

action

digit_action_set_realm

conf-xfer

action

bridge

{conf_xfer_number=${conf_xfer_number},transfer_after_bridge=conf_enter_to:XML:conf-xfer@${domain_name}}user/$1@${domain_name}

action

execute_extension

conf_enter_number XML conf-xfer@${domain_name}

condition

destination_number

^conf_bridge_

on-true

action

playback

voicemail/vm-that_was_an_invalid_ext.wav

action

execute_extension

conf_enter_number XML conf-xfer@${domain_name}

condition

destination_number

^conf_enter_to$

on-true

action

unbind_meta_app

action

bind_digit_action

conf,*#,exec:execute_extension,conf_add_begin XML conf-xfer@${domain_name}

action

digit_action_set_realm

action

answer

action

playback

tone_stream://L=1;%(500, 0, 640)

action

conference

${conf_xfer_number}@page

condition

destination_number

^conf_xfer_from_dialplan$

action

transfer2.lua ${uuid} conf_add_begin::XML::conf-xfer@${domain_name} conf_enter_to::XML::conf-xfer@${domain_name}

action

bind_digit_action

local,*2,exec:record_session,$${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext},${bind_target}

action

bind_digit_action

local,*3,exec:execute_extension,cf XML ${context},${bind_target}

action

bind_digit_action

local,*4,exec:execute_extension,att_xfer XML ${context},${bind_target}

action

digit_action_set_realm

local