diff --git a/app/dialplans/resources/classes/dialplan.php b/app/dialplans/resources/classes/dialplan.php index 53c7007033..164807dd92 100644 --- a/app/dialplans/resources/classes/dialplan.php +++ b/app/dialplans/resources/classes/dialplan.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Copyright (C) 2010-2019 + Copyright (C) 2010-2023 All Rights Reserved. Contributor(s): @@ -255,37 +255,36 @@ //ensure the condition array is uniform if (is_array($dialplan)) { - if (!is_array($dialplan['extension']['condition'][0])) { - $tmp = $dialplan['extension']['condition']; - unset($dialplan['extension']['condition']); - $dialplan['extension']['condition'][0] = $tmp; + if (!is_array($dialplan['condition'][0])) { + $tmp = $dialplan['condition']; + unset($dialplan['condition']); + $dialplan['condition'][0] = $tmp; } } //determine if the dialplan already exists $app_uuid_exists = false; foreach($app_uuids as $row) { - if ($dialplan['extension']['@attributes']['app_uuid'] == $row['app_uuid']) { + if ($dialplan['@attributes']['app_uuid'] == $row['app_uuid']) { $app_uuid_exists = true; } } //check if the dialplan exists if (!$app_uuid_exists) { - - //debug info - //echo " dialplan name ".$dialplan['extension']['@attributes']['name']." not found\n"; //dialplan global - if (isset($dialplan['extension']['@attributes']['global']) && $dialplan['extension']['@attributes']['global'] == "true") { + if (isset($dialplan['@attributes']['global']) && $dialplan['@attributes']['global'] == "true") { $dialplan_global = true; - $dialplan_context = 'global'; } else { $dialplan_global = false; - $dialplan_context = $dialplan['@attributes']['name']; } + //get the dialplan context + $dialplan_context = $dialplan['@attributes']['context']; + $dialplan_context = str_replace("\${domain_name}", $domain['domain_name'], $dialplan_context); + //set the domain_uuid if ($dialplan_global) { $domain_uuid = null; @@ -299,31 +298,31 @@ $array['dialplans'][$x]['dialplan_uuid'] = $dialplan_uuid; $array['dialplans'][$x]['domain_uuid'] = $domain_uuid; - $array['dialplans'][$x]['app_uuid'] = $dialplan['extension']['@attributes']['app_uuid']; - $array['dialplans'][$x]['dialplan_name'] = $dialplan['extension']['@attributes']['name']; - $array['dialplans'][$x]['dialplan_number'] = $dialplan['extension']['@attributes']['number']; + $array['dialplans'][$x]['app_uuid'] = $dialplan['@attributes']['app_uuid']; + $array['dialplans'][$x]['dialplan_name'] = $dialplan['@attributes']['name']; + $array['dialplans'][$x]['dialplan_number'] = $dialplan['@attributes']['number']; $array['dialplans'][$x]['dialplan_context'] = $dialplan_context; - if (strlen($dialplan['extension']['@attributes']['destination']) > 0) { - $array['dialplans'][$x]['dialplan_destination'] = $dialplan['extension']['@attributes']['destination']; + if (strlen($dialplan['@attributes']['destination']) > 0) { + $array['dialplans'][$x]['dialplan_destination'] = $dialplan['@attributes']['destination']; } - if (strlen($dialplan['extension']['@attributes']['continue']) > 0) { - $array['dialplans'][$x]['dialplan_continue'] = $dialplan['extension']['@attributes']['continue']; + if (strlen($dialplan['@attributes']['continue']) > 0) { + $array['dialplans'][$x]['dialplan_continue'] = $dialplan['@attributes']['continue']; } - $array['dialplans'][$x]['dialplan_order'] = $dialplan['extension']['@attributes']['order']; - if (strlen($dialplan['extension']['@attributes']['enabled']) > 0) { - $array['dialplans'][$x]['dialplan_enabled'] = $dialplan['extension']['@attributes']['enabled']; + $array['dialplans'][$x]['dialplan_order'] = $dialplan['@attributes']['order']; + if (strlen($dialplan['@attributes']['enabled']) > 0) { + $array['dialplans'][$x]['dialplan_enabled'] = $dialplan['@attributes']['enabled']; } else { $array['dialplans'][$x]['dialplan_enabled'] = "true"; } - $array['dialplans'][$x]['dialplan_description'] = $dialplan['extension']['@attributes']['description']; + $array['dialplans'][$x]['dialplan_description'] = $dialplan['@attributes']['description']; //loop through the condition array $y = 0; $group = 0; $order = 5; - if (isset($dialplan['extension']['condition'])) { - foreach ($dialplan['extension']['condition'] as &$row) { + if (isset($dialplan['condition'])) { + foreach ($dialplan['condition'] as &$row) { $array['dialplans'][$x]['dialplan_details'][$y]['domain_uuid'] = $domain_uuid; $array['dialplans'][$x]['dialplan_details'][$y]['dialplan_uuid'] = $dialplan_uuid;