瀏覽代碼

Update domain_edit.php

FusionPBX 6 年之前
父節點
當前提交
4fa8ed8059
共有 1 個文件被更改,包括 140 次插入414 次删除
  1. 140 414
      core/domain_settings/domain_edit.php

+ 140 - 414
core/domain_settings/domain_edit.php

@@ -17,7 +17,7 @@
 
  The Initial Developer of the Original Code is
  Mark J Crane <[email protected]>
- Portions created by the Initial Developer are Copyright (C) 2008-2017
+ Portions created by the Initial Developer are Copyright (C) 2008-2019
  the Initial Developer. All Rights Reserved.
 
  Contributor(s):
@@ -136,86 +136,93 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
 				if ($original_domain_name != $domain_name) {
 
 					// update dialplans
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/dialplans/app_config.php")){
-							$sql = "update v_dialplans ";
-							$sql .= "set dialplan_context = :dialplan_context_new ";
-							$sql .= "where dialplan_context = :dialplan_context_old ";
-							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['dialplan_context_new'] = $domain_name;
-							$parameters['dialplan_context_old'] = $original_domain_name;
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/dialplans/app_config.php")) {
+							$sql = "update v_dialplans set ";
+							$sql .= "dialplan_context = replace(dialplan_context, :domain_name_old, :domain_name_new), ";
+							$sql .= "dialplan_xml = replace(dialplan_xml, :domain_name_old, :domain_name_new) ";
+							$sql .= "where domain_uuid = :domain_uuid ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
 
-							$sql = "update v_dialplans ";
-							$sql .= "set dialplan_xml = replace(dialplan_xml, :dialplan_xml_old, :dialplan_xml_new); ";
-							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['dialplan_xml_old'] = $original_domain_name;
-							$parameters['dialplan_xml_new'] = $domain_name;
+							$sql = "update v_dialplan_details set ";
+							$sql .= "dialplan_detail_data = replace(dialplan_detail_data, :domain_name_old, :domain_name_new) ";
+							$sql .= "where domain_uuid = :domain_uuid ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
 						}
 
 					// update destinations
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/destinations/app_config.php")){
-							$sql = "update v_destinations ";
-							$sql .= "set destination_data = replace(destination_data, :destination_data_old, :destination_data_new); ";
-							$sql .= "and domain_uuid = :domain_uuid ";
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/destinations/app_config.php")) {
+							$sql = "update v_destinations set ";
+							$sql .= "destination_data = replace(destination_data, :destination_data_old, :destination_data_new) ";
+							$sql .= "where domain_uuid = :domain_uuid ";
 							$parameters['destination_data_old'] = $original_domain_name;
 							$parameters['destination_data_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
 						}
 
 					// update extensions (accountcode, user_context, dial_domain)
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/extensions/app_config.php")){
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/extensions/app_config.php")) {
 							$sql = "update v_extensions set ";
-							$sql .= "accountcode = :account_code_new ";
-							$sql .= "where accountcode = :account_code_old ";
-							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['account_code_new'] = $domain_name;
-							$parameters['account_code_old'] = $original_domain_name;
+							$sql .= "user_context = replace(user_context, :domain_name_old, :domain_name_new), ";
+							$sql .= "accountcode = replace(accountcode, :domain_name_old, :domain_name_new), ";
+							$sql .= "dial_domain = replace(dial_domain, :domain_name_old, :domain_name_new) ";
+							$sql .= "where domain_uuid = :domain_uuid ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
+						}
 
-							$sql = "update v_extensions set ";
-							$sql .= "user_context = :user_context_new ";
-							$sql .= "where user_context = :user_context_old ";
-							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['user_context_new'] = $domain_name;
-							$parameters['user_context_old'] = $original_domain_name;
+					// update ivr_menus (ivr_menu_context, ivr_menu_greet_long, ivr_menu_greet_short) and ivr_menu_options (ivr_menu_option_param)
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ivr_menus/app_config.php")) {
+							$sql = "update v_ivr_menus set ";
+							$sql .= "ivr_menu_context = replace(ivr_menu_context, :domain_name_old, :domain_name_new), ";
+							$sql .= "ivr_menu_greet_long = replace(ivr_menu_greet_long, :domain_name_old, :domain_name_new), ";
+							$sql .= "ivr_menu_greet_short = replace(ivr_menu_greet_short, :domain_name_old, :domain_name_new) ";
+							$sql .= "where domain_uuid = :domain_uuid ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
+	
+							$sql = "update v_ivr_menu_options set ";
+							$sql .= "ivr_menu_option_param = replace(ivr_menu_option_param, :domain_name_old, :domain_name_new) ";
+							$sql .= "where domain_uuid = :domain_uuid ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
+							$parameters['domain_uuid'] = $domain_uuid;
+							$database = new database;
+							$database->execute($sql, $parameters);
+							unset($sql, $parameters);
+						}
 
-							$sql = "update v_extensions set ";
-							$sql .= "dial_domain = :dial_domain_new ";
-							$sql .= "where dial_domain = :dial_domain_old ";
-							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['dial_domain_new'] = $domain_name;
-							$parameters['dial_domain_old'] = $original_domain_name;
+					// update ring_groups (ring_group_context, ring_group_forward_destination, ring_group_timeout_data)
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ring_groups/app_config.php")) {
+							$sql = "update v_ring_groups set ";
+							$sql .= "ring_group_context = replace(ring_group_context, :domain_name_old, :domain_name_new), ";
+							$sql .= "ring_group_forward_destination = replace(ring_group_forward_destination, :domain_name_old, :domain_name_new), ";
+							$sql .= "ring_group_timeout_data = replace(ring_group_timeout_data, :domain_name_old, :domain_name_new) ";
+							$sql .= "where domain_uuid = :domain_uuid ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
 						}
@@ -226,25 +233,21 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
 							$sql .= "domain_name = :domain_name_new ";
 							$sql .= "where domain_name = :domain_name_old ";
 							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
 
 							$sql = "update v_xml_cdr set ";
-							$sql .= "context = :context_new ";
+							$sql .= "context = replace(user_context, :context_old, :context_new), ";
 							$sql .= "where context = :context_old ";
 							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['context_new'] = $domain_name;
 							$parameters['context_old'] = $original_domain_name;
+							$parameters['context_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
 						}
@@ -255,389 +258,144 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
 							$sql .= "type_value = :type_value_new ";
 							$sql .= "where type_value = :type_value_old ";
 							$sql .= "and domain_uuid = :domain_uuid ";
-							$parameters['type_value_new'] = $domain_name;
 							$parameters['type_value_old'] = $original_domain_name;
+							$parameters['type_value_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
 							$database = new database;
-							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
 							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
 						}
 
-					// rename switch/storage/voicemail/default/[domain] (folder)
-						if ( isset($_SESSION['switch']['voicemail']['dir']) && file_exists($_SESSION['switch']['voicemail']['dir']."/default/".$original_domain_name) ) {
-							@rename($_SESSION['switch']['voicemail']['dir']."/default/".$original_domain_name, $_SESSION['switch']['voicemail']['dir']."/default/".$domain_name); // folder
-						}
-
-					// rename switch/storage/fax/[domain] (folder)
-						if ( isset($_SESSION['switch']['storage']['dir']) && file_exists($_SESSION['switch']['storage']['dir']."/fax/".$original_domain_name) ) {
-							@rename($_SESSION['switch']['storage']['dir']."/fax/".$original_domain_name, $_SESSION['switch']['storage']['dir']."/fax/".$domain_name); // folder
-						}
-
-					// rename switch/conf/dialplan/[domain] (folder/file)
-						if ( isset($_SESSION['switch']['dialplan']['dir']) ) {
-							if ( file_exists($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name) ) {
-								@rename($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name, $_SESSION['switch']['dialplan']['dir']."/".$domain_name); // folder
-							}
-							if ( file_exists($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name.".xml") ) {
-								@rename($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name.".xml", $_SESSION['switch']['dialplan']['dir']."/".$domain_name.".xml"); // file
-							}
-						}
-
-					// rename switch/conf/dialplan/public/[domain] (folder/file)
-						if ( isset($_SESSION['switch']['dialplan']['dir']) ) {
-							if ( file_exists($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name) ) {
-								@rename($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name, $_SESSION['switch']['dialplan']['dir']."/public/".$domain_name); // folder
-							}
-							if ( file_exists($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name.".xml") ) {
-								@rename($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name.".xml", $_SESSION['switch']['dialplan']['dir']."/public/".$domain_name.".xml"); // file
-							}
-						}
-
-					// rename switch/conf/directory/[domain] (folder/file)
-						if ( isset($_SESSION['switch']['extensions']['dir']) ) {
-							if ( file_exists($_SESSION['switch']['extensions']['dir']."/".$original_domain_name) ) {
-								@rename($_SESSION['switch']['extensions']['dir']."/".$original_domain_name, $_SESSION['switch']['extensions']['dir']."/".$domain_name); // folder
-							}
-							if ( file_exists($_SESSION['switch']['extensions']['dir']."/".$original_domain_name.".xml") ) {
-								@rename($_SESSION['switch']['extensions']['dir']."/".$original_domain_name.".xml", $_SESSION['switch']['extensions']['dir']."/".$domain_name.".xml"); // file
-							}
-						}
-
-					// rename switch/recordings/[domain] (folder)
-						if ( file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']) ) {
-							$switch_recordings_dir = str_replace("/".$_SESSION["domain_name"], "", $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']);
-							if ( file_exists($switch_recordings_dir."/".$original_domain_name) ) {
-								@rename($switch_recordings_dir."/".$original_domain_name, $switch_recordings_dir."/".$domain_name); // folder
-							}
-						}
-
 					// update conference session recording paths
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/conference_centers/app_config.php")){
-							$sql = "select conference_session_uuid, recording from v_conference_sessions ";
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/conference_centers/app_config.php")) {
+							$sql = "update v_conference_sessions set ";
+							$sql .= "recording = replace(recording, :domain_name_old, :domain_name_new) ";
 							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and recording like :recording ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['recording'] = '%'.$original_domain_name.'%';
 							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
+							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
-
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['conference_sessions'][$index]['conference_session_uuid'] = $row["conference_session_uuid"];
-									$array['conference_sessions'][$index]['recording'] = str_replace($original_domain_name, $domain_name, $row["recording"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('conference_session_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('conference_session_edit', 'temp');
-								}
-							}
-							unset($result);
 						}
 
 					// update conference center greetings
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/conference_centers/app_config.php")){
-							$sql = "select conference_center_uuid, conference_center_greeting from v_conference_centers ";
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/conference_centers/app_config.php")) {
+							$sql = "update v_conference_centers set ";
+							$sql .= "conference_center_greeting = replace(conference_center_greeting, :domain_name_old, :domain_name_new) ";
 							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and conference_center_greeting like :conference_center_greeting ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['conference_center_greeting'] = '%'.$original_domain_name.'%';
 							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
+							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
-
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['conference_centers'][$index]['conference_center_uuid'] = $row["conference_center_uuid"];
-									$array['conference_centers'][$index]['conference_center_greeting'] = str_replace($original_domain_name, $domain_name, $row["conference_center_greeting"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('conference_center_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('conference_center_edit', 'temp');
-								}
-							}
-							unset($result);
 						}
 
-					// update ivr menu greetings
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ivr_menu/app_config.php")){
-							$sql = "select ivr_menu_uuid, ivr_menu_greet_long, ivr_menu_greet_short from v_ivr_menus ";
+					// update call center queue record templates
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_center/app_config.php")) {
+							$sql = "update v_call_center_queues set ";
+							$sql .= "queue_record_template = replace(queue_record_template, :domain_name_old, :domain_name_new) ";
 							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and ( ";
-							$sql .= "ivr_menu_greet_long like :ivr_menu_greet_long or ";
-							$sql .= "ivr_menu_greet_short like :ivr_menu_greet_short ";
-							$sql .= ") ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['ivr_menu_greet_long'] = '%'.$original_domain_name.'%';
-							$parameters['ivr_menu_greet_short'] = '%'.$original_domain_name.'%';
 							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
+							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
-
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['ivr_menus'][$index]['ivr_menu_uuid'] = $row["ivr_menu_uuid"];
-									$array['ivr_menus'][$index]['ivr_menu_greet_long'] = str_replace($original_domain_name, $domain_name, $row["ivr_menu_greet_long"]);
-									$array['ivr_menus'][$index]['ivr_menu_greet_short'] = str_replace($original_domain_name, $domain_name, $row["ivr_menu_greet_short"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('ivr_menu_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('ivr_menu_edit', 'temp');
-								}
-							}
-							unset($result);
 						}
 
-					// update ivr menu option parameters
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ivr_menu/app_config.php")){
-							$sql = "select ivr_menu_option_uuid, ivr_menu_option_param from v_ivr_menu_options ";
+					// update call center agent contacts
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_center/app_config.php")) {
+							$sql = "update v_call_center_agents set ";
+							$sql .= "agent_contact = replace(agent_contact, :domain_name_old, :domain_name_new) ";
 							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and ivr_menu_option_param like :ivr_menu_option_param ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['ivr_menu_option_param'] = '%'.$original_domain_name.'%';
 							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
+							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
-
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['ivr_menu_options'][$index]['ivr_menu_option_uuid'] = $row["ivr_menu_option_uuid"];
-									$array['ivr_menu_options'][$index]['ivr_menu_option_param'] = str_replace($original_domain_name, $domain_name, $row["ivr_menu_option_param"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('ivr_menu_option_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('ivr_menu_option_edit', 'temp');
-								}
-							}
-							unset($result);
 						}
 
-					// update call center queue record templates
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_center/app_config.php")){
-							$sql = "select call_center_queue_uuid, queue_record_template from v_call_center_queues ";
+					// update call flows data, alternate-data and contexts
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_flows/app_config.php")) {
+							$sql = "update v_call_flows set ";
+							$sql .= "call_flow_data = replace(call_flow_data, :domain_name_old, :domain_name_new), ";
+							$sql .= "call_flow_alternate_data = replace(call_flow_alternate_data, :domain_name_old, :domain_name_new), ";
+							$sql .= "call_flow_context = replace(call_flow_context, :domain_name_old, :domain_name_new) ";
 							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and queue_record_template like :queue_record_template ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['queue_record_template'] = '%'.$original_domain_name.'%';
 							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
+							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
-
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['call_center_queues'][$index]['call_center_queue_uuid'] = $row["call_center_queue_uuid"];
-									$array['call_center_queues'][$index]['queue_record_template'] = str_replace($original_domain_name, $domain_name, $row["queue_record_template"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('call_center_queue_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('call_center_queue_edit', 'temp');
-								}
-							}
-							unset($result);
 						}
 
-					// update call center agent contacts
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_center/app_config.php")){
-							$sql = "select call_center_agent_uuid, agent_contact from v_call_center_agents ";
+					// update device lines server_address, server_address_primary, server_address_secondary, outbound_proxy_primary, outbound_proxy_secondary
+						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/devices/app_config.php")) {
+							$sql = "update v_device_lines set ";
+							$sql .= "server_address = replace(server_address, :domain_name_old, :domain_name_new), ";
+							$sql .= "server_address_primary = replace(server_address_primary, :domain_name_old, :domain_name_new), ";
+							$sql .= "server_address_secondary = replace(server_address_secondary, :domain_name_old, :domain_name_new), ";
+							$sql .= "outbound_proxy_primary = replace(outbound_proxy_primary, :domain_name_old, :domain_name_new), ";
+							$sql .= "outbound_proxy_secondary = replace(outbound_proxy_secondary, :domain_name_old, :domain_name_new) ";
 							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and agent_contact like :agent_contact ";
+							$parameters['domain_name_old'] = $original_domain_name;
+							$parameters['domain_name_new'] = $domain_name;
 							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['agent_contact'] = '%'.$original_domain_name.'%';
 							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
+							$database->execute($sql, $parameters);
 							unset($sql, $parameters);
+						}
 
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['call_center_agents'][$index]['call_center_agent_uuid'] = $row["call_center_agent_uuid"];
-									$array['call_center_agents'][$index]['agent_contact'] = str_replace($original_domain_name, $domain_name, $row["agent_contact"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('call_center_agent_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('call_center_agent_edit', 'temp');
-								}
-							}
-							unset($result);
+					// rename switch/storage/voicemail/default/[domain] (folder)
+						if (isset($_SESSION['switch']['voicemail']['dir']) && file_exists($_SESSION['switch']['voicemail']['dir']."/default/".$original_domain_name)) {
+							@rename($_SESSION['switch']['voicemail']['dir']."/default/".$original_domain_name, $_SESSION['switch']['voicemail']['dir']."/default/".$domain_name); // folder
 						}
 
-					// update call flows data, alternate-data and contexts
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_flows/app_config.php")){
-							$sql = "select call_flow_uuid, call_flow_data, call_flow_alternate_data, call_flow_context from v_call_flows ";
-							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and ( ";
-							$sql .= "call_flow_data like :call_flow_data or ";
-							$sql .= "call_flow_alternate_data like :call_flow_alternate_data or ";
-							$sql .= "call_flow_context like :call_flow_context ";
-							$sql .= ") ";
-							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['call_flow_data'] = '%'.$original_domain_name.'%';
-							$parameters['call_flow_alternate_data'] = '%'.$original_domain_name.'%';
-							$parameters['call_flow_context'] = '%'.$original_domain_name.'%';
-							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
-							unset($sql, $parameters);
+					// rename switch/storage/fax/[domain] (folder)
+						if (isset($_SESSION['switch']['storage']['dir']) && file_exists($_SESSION['switch']['storage']['dir']."/fax/".$original_domain_name)) {
+							@rename($_SESSION['switch']['storage']['dir']."/fax/".$original_domain_name, $_SESSION['switch']['storage']['dir']."/fax/".$domain_name); // folder
+						}
 
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['call_flows'][$index]['call_flow_uuid'] = $row["call_flow_uuid"];
-									$array['call_flows'][$index]['call_flow_data'] = str_replace($original_domain_name, $domain_name, $row["call_flow_data"]);
-									$array['call_flows'][$index]['call_flow_alternate_data'] = str_replace($original_domain_name, $domain_name, $row["call_flow_alternate_data"]);
-									$array['call_flows'][$index]['call_flow_context'] = str_replace($original_domain_name, $domain_name, $row["call_flow_context"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('call_flow_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('call_flow_edit', 'temp');
-								}
+					// rename switch/conf/dialplan/[domain] (folder/file)
+						if (isset($_SESSION['switch']['dialplan']['dir'])) {
+							if (file_exists($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name)) {
+								@rename($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name, $_SESSION['switch']['dialplan']['dir']."/".$domain_name); // folder
+							}
+							if (file_exists($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name.".xml")) {
+								@rename($_SESSION['switch']['dialplan']['dir']."/".$original_domain_name.".xml", $_SESSION['switch']['dialplan']['dir']."/".$domain_name.".xml"); // file
 							}
-							unset($result);
 						}
 
-					// update ring group context, forward destination, timeout data
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ring_groups/app_config.php")){
-							$sql = "select ring_group_uuid, ring_group_context, ring_group_forward_destination, ring_group_timeout_data from v_ring_groups ";
-							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and ( ";
-							$sql .= "ring_group_context like :ring_group_context or ";
-							$sql .= "ring_group_forward_destination like :ring_group_forward_destination or ";
-							$sql .= "ring_group_timeout_data like :ring_group_timeout_data ";
-							$sql .= ") ";
-							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['ring_group_context'] = '%'.$original_domain_name.'%';
-							$parameters['ring_group_forward_destination'] = '%'.$original_domain_name.'%';
-							$parameters['ring_group_timeout_data'] = '%'.$original_domain_name.'%';
-							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
-							unset($sql, $parameters);
-
-							if (is_array($result) && sizeof($result) != 0) {							$database->app_name = 'domain_settings';
-							$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['ring_groups'][$index]['ring_group_uuid'] = $row["ring_group_uuid"];
-									$array['ring_groups'][$index]['ring_group_context'] = str_replace($original_domain_name, $domain_name, $row["ring_group_context"]);
-									$array['ring_groups'][$index]['ring_group_forward_destination'] = str_replace($original_domain_name, $domain_name, $row["ring_group_forward_destination"]);
-									$array['ring_groups'][$index]['ring_group_timeout_data'] = str_replace($original_domain_name, $domain_name, $row["ring_group_timeout_data"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('ring_group_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('ring_group_edit', 'temp');
-								}
+					// rename switch/conf/dialplan/public/[domain] (folder/file)
+						if (isset($_SESSION['switch']['dialplan']['dir'])) {
+							if (file_exists($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name)) {
+								@rename($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name, $_SESSION['switch']['dialplan']['dir']."/public/".$domain_name); // folder
+							}
+							if (file_exists($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name.".xml")) {
+								@rename($_SESSION['switch']['dialplan']['dir']."/public/".$original_domain_name.".xml", $_SESSION['switch']['dialplan']['dir']."/public/".$domain_name.".xml"); // file
 							}
-							unset($result);
 						}
 
-					// update device lines server address, outbound proxy
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/devices/app_config.php")){
-							$sql = "select device_line_uuid, server_address, outbound_proxy_primary, outbound_proxy_secondary from v_device_lines ";
-							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and ( ";
-							$sql .= "server_address like :server_address or ";
-							$sql .= "outbound_proxy_primary like :outbound_proxy_primary or ";
-							$sql .= "outbound_proxy_secondary like :outbound_proxy_secondary ";
-							$sql .= ") ";
-							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['server_address'] = '%'.$original_domain_name.'%';
-							$parameters['outbound_proxy_primary'] = '%'.$original_domain_name.'%';
-							$parameters['outbound_proxy_secondary'] = '%'.$original_domain_name.'%';
-							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
-							unset($sql, $parameters);
+					// rename switch/conf/directory/[domain] (folder/file)
+						if (isset($_SESSION['switch']['extensions']['dir'])) {
+							if (file_exists($_SESSION['switch']['extensions']['dir']."/".$original_domain_name)) {
+								@rename($_SESSION['switch']['extensions']['dir']."/".$original_domain_name, $_SESSION['switch']['extensions']['dir']."/".$domain_name); // folder
+							}
+							if (file_exists($_SESSION['switch']['extensions']['dir']."/".$original_domain_name.".xml")) {
+								@rename($_SESSION['switch']['extensions']['dir']."/".$original_domain_name.".xml", $_SESSION['switch']['extensions']['dir']."/".$domain_name.".xml"); // file
+							}
+						}
 
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									// update db record
-									$array['device_lines'][$index]['device_line_uuid'] = $row["device_line_uuid"];
-									$array['device_lines'][$index]['server_address'] = str_replace($original_domain_name, $domain_name, $row["server_address"]);
-									$array['device_lines'][$index]['outbound_proxy_primary'] = str_replace($original_domain_name, $domain_name, $row["outbound_proxy_primary"]);
-									$array['device_lines'][$index]['outbound_proxy_secondary'] = str_replace($original_domain_name, $domain_name, $row["outbound_proxy_secondary"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('device_line_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('device_line_edit', 'temp');
-								}
+					// rename switch/recordings/[domain] (folder)
+						if (file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'])) {
+							$switch_recordings_dir = str_replace("/".$_SESSION["domain_name"], "", $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']);
+							if (file_exists($switch_recordings_dir."/".$original_domain_name)) {
+								@rename($switch_recordings_dir."/".$original_domain_name, $switch_recordings_dir."/".$domain_name); // folder
 							}
-							unset($result);
 						}
 
 					// update dialplan, dialplan/public xml files
@@ -651,38 +409,6 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
 						file_put_contents($_SESSION['switch']['dialplan']['dir']."/public/".$domain_name.".xml", $dialplan_public_xml);
 						unset($dialplan_public_xml);
 
-					// update dialplan details
-						if (file_exists($_SERVER["PROJECT_ROOT"]."/app/dialplans/app_config.php")){
-							$sql = "select dialplan_detail_uuid, dialplan_detail_data from v_dialplan_details ";
-							$sql .= "where domain_uuid = :domain_uuid ";
-							$sql .= "and dialplan_detail_data like :dialplan_detail_data ";
-							$parameters['domain_uuid'] = $domain_uuid;
-							$parameters['dialplan_detail_data'] = '%'.$original_domain_name.'%';
-							$database = new database;
-							$result = $database->select($sql, $parameters, 'all');
-							unset($sql, $parameters);
-
-							if (is_array($result) && sizeof($result) != 0) {
-								foreach ($result as $index => &$row) {
-									$array['dialplan_detail'][$index]['dialplan_detail_uuid'] = $row["dialplan_detail_uuid"];
-									$array['dialplan_detail'][$index]['dialplan_detail_data'] = str_replace($original_domain_name, $domain_name, $row["dialplan_detail_data"]);
-								}
-								if (is_array($array) && sizeof($array) != 0) {
-									$p = new permissions;
-									$p->add('dialplan_detail_edit', 'temp');
-
-									$database = new database;
-									$database->app_name = 'domain_settings';
-									$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
-									$database->save($array);
-									unset($array);
-
-									$p->delete('dialplan_detail_edit', 'temp');
-								}
-							}
-							unset($result);
-						}
-
 					// update session domain name
 						$_SESSION['domains'][$domain_uuid]['domain_name'] = $domain_name;