diff --git a/app/dialplan/resources/xml/dialplan/999_local_extension.xml b/app/dialplan/resources/xml/dialplan/999_local_extension.xml index 840c8933f5..2e58d417f0 100644 --- a/app/dialplan/resources/xml/dialplan/999_local_extension.xml +++ b/app/dialplan/resources/xml/dialplan/999_local_extension.xml @@ -9,8 +9,8 @@ - - + + diff --git a/app/hunt_group/v_hunt_group_edit.php b/app/hunt_group/v_hunt_group_edit.php index 9baa225652..df69b86c20 100644 --- a/app/hunt_group/v_hunt_group_edit.php +++ b/app/hunt_group/v_hunt_group_edit.php @@ -469,12 +469,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; echo " \n"; echo "
\n"; - echo "Defines what the caller will hear while destination is being called. The choices are music (music on hold) ring (ring tone.) default: music \n"; + echo "Defines what the caller will hear while the destination is being called. The choices are music (music on hold) ring (ring tone.) default: music \n"; echo "\n"; echo "\n"; diff --git a/app/ivr_menu/app_config.php b/app/ivr_menu/app_config.php index 5e8f0adb8a..bf4501ec07 100644 --- a/app/ivr_menu/app_config.php +++ b/app/ivr_menu/app_config.php @@ -153,6 +153,10 @@ $apps[$x]['db'][$y]['fields'][$z]['type'] = 'text'; $apps[$x]['db'][$y]['fields'][$z]['description']['en'] = ''; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = 'ivr_menu_ringback'; + $apps[$x]['db'][$y]['fields'][$z]['type'] = 'text'; + $apps[$x]['db'][$y]['fields'][$z]['description']['en'] = ''; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = 'ivr_menu_enabled'; $apps[$x]['db'][$y]['fields'][$z]['type'] = 'text'; $apps[$x]['db'][$y]['fields'][$z]['description']['en'] = ''; diff --git a/app/ivr_menu/v_ivr_menu_edit.php b/app/ivr_menu/v_ivr_menu_edit.php index 24ed555dc6..f1c3b7ac82 100644 --- a/app/ivr_menu/v_ivr_menu_edit.php +++ b/app/ivr_menu/v_ivr_menu_edit.php @@ -112,6 +112,7 @@ if (count($_POST)>0) { $ivr_menu_max_timeouts = check_str($_POST["ivr_menu_max_timeouts"]); $ivr_menu_digit_len = check_str($_POST["ivr_menu_digit_len"]); $ivr_menu_direct_dial = check_str($_POST["ivr_menu_direct_dial"]); + $ivr_menu_ringback = check_str($_POST["ivr_menu_ringback"]); $ivr_menu_enabled = check_str($_POST["ivr_menu_enabled"]); $ivr_menu_description = check_str($_POST["ivr_menu_description"]); @@ -150,6 +151,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { if (strlen($ivr_menu_max_timeouts) == 0) { $msg .= "Please provide: Max Timeouts
\n"; } if (strlen($ivr_menu_digit_len) == 0) { $msg .= "Please provide: Digit Length
\n"; } if (strlen($ivr_menu_direct_dial) == 0) { $msg .= "Please provide: Direct Dial
\n"; } + //if (strlen($ivr_menu_ringback) == 0) { $msg .= "Please provide: Ringback
\n"; } if (strlen($ivr_menu_enabled) == 0) { $msg .= "Please provide: Enabled
\n"; } //if (strlen($ivr_menu_description) == 0) { $msg .= "Please provide: Description
\n"; } if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { @@ -193,7 +195,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { $ivr->ivr_menu_digit_len = $ivr_menu_digit_len; $ivr->ivr_menu_digit_len = $ivr_menu_digit_len; $ivr->ivr_menu_direct_dial = $ivr_menu_direct_dial; - $ivr->ivr_menu_direct_dial = $ivr_menu_direct_dial; + $ivr->ivr_menu_ringback = $ivr_menu_ringback; $ivr->ivr_menu_enabled = $ivr_menu_enabled; $ivr->ivr_menu_description = $ivr_menu_description; @@ -268,6 +270,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { $ivr_menu_max_timeouts = $row["ivr_menu_max_timeouts"]; $ivr_menu_digit_len = $row["ivr_menu_digit_len"]; $ivr_menu_direct_dial = $row["ivr_menu_direct_dial"]; + $ivr_menu_ringback = $row["ivr_menu_ringback"]; $ivr_menu_enabled = $row["ivr_menu_enabled"]; $ivr_menu_description = $row["ivr_menu_description"]; @@ -290,6 +293,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { if (strlen($ivr_menu_max_timeouts) == 0) { $ivr_menu_max_timeouts = '3'; } if (strlen($ivr_menu_digit_len) == 0) { $ivr_menu_digit_len = '5'; } if (strlen($ivr_menu_direct_dial) == 0) { $ivr_menu_direct_dial = 'false'; } + if (strlen($ivr_menu_ringback) == 0) { $ivr_menu_ringback = 'music'; } if (strlen($ivr_menu_enabled) == 0) { $ivr_menu_enabled = 'true'; } //content @@ -610,6 +614,49 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; + echo " Ring Back:\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo "Defines what the caller will hear while the destination is being called. The choices are music (music on hold) ring (ring tone.) default: music \n"; + echo "\n"; + echo "\n"; + //--- begin: show_advanced ----------------------- echo "\n"; echo "\n"; diff --git a/includes/classes/switch_ivr_menu.php b/includes/classes/switch_ivr_menu.php index 87cf000c0a..66814fc25e 100644 --- a/includes/classes/switch_ivr_menu.php +++ b/includes/classes/switch_ivr_menu.php @@ -52,6 +52,7 @@ require_once "includes/classes/switch_dialplan.php"; public $ivr_menu_max_timeouts; public $ivr_menu_digit_len; public $ivr_menu_direct_dial; + public $ivr_menu_ringback; public $ivr_menu_enabled; public $ivr_menu_description; public $ivr_menu_option_uuid; @@ -223,6 +224,36 @@ require_once "includes/classes/switch_dialplan.php"; $database->fields['dialplan_detail_order'] = '020'; $database->add(); + $database->table = "v_dialplan_details"; + $database->fields['domain_uuid'] = $this->domain_uuid; + $database->fields['dialplan_uuid'] = $this->dialplan_uuid; + $database->fields['dialplan_detail_uuid'] = uuid(); + $database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction + $database->fields['dialplan_detail_type'] = 'set'; + if ($this->ivr_menu_ringback == "music" || $this->ivr_menu_ringback == "") { + $database->fields['dialplan_detail_data'] = 'ringback=${hold_music}'; + } + else { + $database->fields['dialplan_detail_data'] = 'ringback=${'.$this->ivr_menu_ringback.'}'; + } + $database->fields['dialplan_detail_order'] = '025'; + $database->add(); + + $database->table = "v_dialplan_details"; + $database->fields['domain_uuid'] = $this->domain_uuid; + $database->fields['dialplan_uuid'] = $this->dialplan_uuid; + $database->fields['dialplan_detail_uuid'] = uuid(); + $database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction + $database->fields['dialplan_detail_type'] = 'set'; + if ($this->ivr_menu_ringback == "music" || $this->ivr_menu_ringback == "") { + $database->fields['dialplan_detail_data'] = 'transfer_ringback=${hold_music}'; + } + else { + $database->fields['dialplan_detail_data'] = 'transfer_ringback=${'.$this->ivr_menu_ringback.'}'; + } + $database->fields['dialplan_detail_order'] = '030'; + $database->add(); + $database->table = "v_dialplan_details"; $database->fields['domain_uuid'] = $this->domain_uuid; $database->fields['dialplan_uuid'] = $this->dialplan_uuid; @@ -235,7 +266,7 @@ require_once "includes/classes/switch_dialplan.php"; else { $database->fields['dialplan_detail_data'] = $this->ivr_menu_name; } - $database->fields['dialplan_detail_order'] = '025'; + $database->fields['dialplan_detail_order'] = '035'; $database->add(); if (strlen($this->ivr_menu_exit_app) > 0) { @@ -246,7 +277,7 @@ require_once "includes/classes/switch_dialplan.php"; $database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction $database->fields['dialplan_detail_type'] = $this->ivr_menu_exit_app; $database->fields['dialplan_detail_data'] = $this->ivr_menu_exit_data; - $database->fields['dialplan_detail_order'] = '030'; + $database->fields['dialplan_detail_order'] = '040'; $database->add(); } } @@ -284,7 +315,7 @@ require_once "includes/classes/switch_dialplan.php"; $database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len; $database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len; $database->fields['ivr_menu_direct_dial'] = $this->ivr_menu_direct_dial; - $database->fields['ivr_menu_direct_dial'] = $this->ivr_menu_direct_dial; + $database->fields['ivr_menu_ringback'] = $this->ivr_menu_ringback; $database->fields['ivr_menu_enabled'] = $this->ivr_menu_enabled; $database->fields['ivr_menu_description'] = $this->ivr_menu_description; $database->add(); @@ -388,7 +419,7 @@ require_once "includes/classes/switch_dialplan.php"; $database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len; $database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len; $database->fields['ivr_menu_direct_dial'] = $this->ivr_menu_direct_dial; - $database->fields['ivr_menu_direct_dial'] = $this->ivr_menu_direct_dial; + $database->fields['ivr_menu_ringback'] = $this->ivr_menu_ringback; $database->fields['ivr_menu_enabled'] = $this->ivr_menu_enabled; $database->fields['ivr_menu_description'] = $this->ivr_menu_description; $database->where[0]['name'] = 'domain_uuid'; @@ -494,6 +525,36 @@ require_once "includes/classes/switch_dialplan.php"; $database->fields['dialplan_detail_order'] = '020'; $database->add(); + $database->table = "v_dialplan_details"; + $database->fields['domain_uuid'] = $this->domain_uuid; + $database->fields['dialplan_uuid'] = $this->dialplan_uuid; + $database->fields['dialplan_detail_uuid'] = uuid(); + $database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction + $database->fields['dialplan_detail_type'] = 'set'; + if ($this->ivr_menu_ringback == "music" || $this->ivr_menu_ringback == "") { + $database->fields['dialplan_detail_data'] = 'ringback=${hold_music}'; + } + else { + $database->fields['dialplan_detail_data'] = 'ringback=${'.$this->ivr_menu_ringback.'}'; + } + $database->fields['dialplan_detail_order'] = '025'; + $database->add(); + + $database->table = "v_dialplan_details"; + $database->fields['domain_uuid'] = $this->domain_uuid; + $database->fields['dialplan_uuid'] = $this->dialplan_uuid; + $database->fields['dialplan_detail_uuid'] = uuid(); + $database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction + $database->fields['dialplan_detail_type'] = 'set'; + if ($this->ivr_menu_ringback == "music" || $this->ivr_menu_ringback == "") { + $database->fields['dialplan_detail_data'] = 'transfer_ringback=${hold_music}'; + } + else { + $database->fields['dialplan_detail_data'] = 'transfer_ringback=${'.$this->ivr_menu_ringback.'}'; + } + $database->fields['dialplan_detail_order'] = '030'; + $database->add(); + $database->table = "v_dialplan_details"; $database->fields['domain_uuid'] = $this->domain_uuid; $database->fields['dialplan_uuid'] = $this->dialplan_uuid; @@ -506,7 +567,7 @@ require_once "includes/classes/switch_dialplan.php"; else { $database->fields['dialplan_detail_data'] = $this->ivr_menu_name; } - $database->fields['dialplan_detail_order'] = '025'; + $database->fields['dialplan_detail_order'] = '035'; $database->add(); if (strlen($this->ivr_menu_exit_app) > 0) { @@ -517,7 +578,7 @@ require_once "includes/classes/switch_dialplan.php"; $database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction $database->fields['dialplan_detail_type'] = $this->ivr_menu_exit_app; $database->fields['dialplan_detail_data'] = $this->ivr_menu_exit_data; - $database->fields['dialplan_detail_order'] = '030'; + $database->fields['dialplan_detail_order'] = '040'; $database->add(); } }