Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //if there is more than one domain then set the default context to the domain name /* if (count($_SESSION['domains']) > 1) { $sql = "select * from v_dialplans "; $sql .= "where dialplan_context = 'default' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $domain_uuid = $row["domain_uuid"]; $dialplan_uuid = $row["dialplan_uuid"]; $dialplan_context = $_SESSION['domains'][$domain_uuid]['domain_name']; $sql = "update v_dialplans set "; $sql .= "dialplan_context = '$dialplan_context' "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and dialplan_uuid = '$dialplan_uuid' "; $db->exec(check_sql($sql)); unset($sql); } } */ //only run the following code if the directory exists if (is_dir($_SESSION['switch']['dialplan']['dir'])) { //write the dialplan/default.xml if it does not exist //get the contents of the dialplan/default.xml $file_default_path = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/resources/templates/conf/dialplan/default.xml'; $file_default_contents = file_get_contents($file_default_path); //prepare the file contents and the path //replace the variables in the template in the future loop through all the line numbers to do a replace for each possible line number $file_default_contents = str_replace("{v_domain}", $context, $file_default_contents); //set the file path $file_path = $_SESSION['switch']['conf']['dir'].'/dialplan/'.$context.'.xml'; //write the default dialplan if (!file_exists($file_path)) { $fh = fopen($file_path,'w') or die('Unable to write to '.$file_path.'. Make sure the path exists and permissons are set correctly.'); fwrite($fh, $file_default_contents); fclose($fh); } } //get the $apps array from the installed apps from the core and mod directories $xml_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/resources/switch/conf/dialplan/*.xml"); foreach ($xml_list as &$xml_file) { //get and parse the xml $xml_string = file_get_contents($xml_file); //get the order number prefix from the file name $name_array = explode('_', basename($xml_file)); if (is_numeric($name_array[0])) { $dialplan_order = $name_array[0]; } else { $dialplan_order = 0; } //dialplan class $dialplan = new dialplan; $dialplan->domain_uuid = $domain_uuid; $dialplan->dialplan_order = $dialplan_order; $dialplan->default_context = $context; if ($display_type == "text") { $dialplan->display_type = 'text'; } $dialplan->xml = $xml_string; $dialplan->import(); } //add the global dialplan to inbound routes if ($domains_processed == 1) { $sql = "select count(*) as num_rows from v_dialplans "; $sql .= "where dialplan_uuid = 'd4e06654-e394-444a-b3af-4c3d54aebbec' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] == 0) { //create the dialplan array $array["app_uuid"] = "c03b422e-13a8-bd1b-e42b-b6b9b4d27ce4"; $array["dialplan_context"] = "public"; $array["dialplan_name"] = "global"; $array["dialplan_continue"] = "true"; $array["dialplan_order"] = "0"; $array["dialplan_enabled"] = "true"; $y = 0; $array["dialplan_details"][$y]["dialplan_detail_uuid"] = "5e1062d8-6842-4890-a78a-388e8dd5bbaf"; $array["dialplan_details"][$y]["dialplan_detail_tag"] = "condition"; $array["dialplan_details"][$y]["dialplan_detail_type"] = "context"; $array["dialplan_details"][$y]["dialplan_detail_data"] = "public"; $array["dialplan_details"][$y]["dialplan_detail_order"] = "10"; $y++; $array["dialplan_details"][$y]["dialplan_detail_uuid"] = "bdafd4aa-6633-48fc-970e-bc2778f3f022"; $array["dialplan_details"][$y]["dialplan_detail_tag"] = "action"; $array["dialplan_details"][$y]["dialplan_detail_type"] = "lua"; $array["dialplan_details"][$y]["dialplan_detail_data"] = "app.lua dialplan"; $array["dialplan_details"][$y]["dialplan_detail_order"] = "20"; //save the dialplan with a specific uuid $orm = new orm; $orm->domain_uuid = $domain_uuid; $orm->uuid('d4e06654-e394-444a-b3af-4c3d54aebbec'); $orm->name('dialplans'); $orm->save($array); //$message = $orm->message; unset($array); } } } ?>