Kaynağa Gözat

Move the dialplan class to the dialplan/resources/classes directory.

Mark Crane 11 yıl önce
ebeveyn
işleme
b6b14fb83a
1 değiştirilmiş dosya ile 0 ekleme ve 365 silme
  1. 0 365
      resources/classes/dialplan.php

+ 0 - 365
resources/classes/dialplan.php

@@ -1,365 +0,0 @@
-<?php
-/*
-	FusionPBX
-	Version: MPL 1.1
-
-	The contents of this file are subject to the Mozilla Public License Version
-	1.1 (the "License"); you may not use this file except in compliance with
-	the License. You may obtain a copy of the License at
-	http://www.mozilla.org/MPL/
-
-	Software distributed under the License is distributed on an "AS IS" basis,
-	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-	for the specific language governing rights and limitations under the
-	License.
-
-	The Original Code is FusionPBX
-
-	The Initial Developer of the Original Code is
-	Mark J Crane <[email protected]>
-	Copyright (C) 2010
-	All Rights Reserved.
-
-	Contributor(s):
-	Mark J Crane <[email protected]>
-*/
-include "root.php";
-
-//define the dialplan class
-	if (!class_exists('dialplan')) {
-		class dialplan {
-			//variables
-			public $result;
-			public $domain_uuid;
-			public $dialplan_uuid;
-			public $xml;
-			public $json;
-			public $display_type;
-			public $default_context;
-
-			//dialplans
-			public $dialplan_name;
-			public $dialplan_continue;
-			public $dialplan_order;
-			public $dialplan_context;
-			public $dialplan_enabled;
-			public $dialplan_description;
-
-			//dialplan_details
-			public $dialplan_detail_tag;
-			public $dialplan_detail_order;
-			public $dialplan_detail_type;
-			public $dialplan_detail_data;
-			public $dialplan_detail_break;
-			public $dialplan_detail_inline;
-			public $dialplan_detail_group;
-
-			public function dialplan_add() {
-				global $db;
-				$sql = "insert into v_dialplans ";
-				$sql .= "(";
-				$sql .= "domain_uuid, ";
-				$sql .= "app_uuid, ";
-				$sql .= "dialplan_uuid, ";
-				$sql .= "dialplan_name, ";
-				$sql .= "dialplan_continue, ";
-				$sql .= "dialplan_order, ";
-				$sql .= "dialplan_context, ";
-				$sql .= "dialplan_enabled, ";
-				$sql .= "dialplan_description ";
-				$sql .= ")";
-				$sql .= "values ";
-				$sql .= "(";
-				$sql .= "'".check_str($this->domain_uuid)."', ";
-				$sql .= "'".check_str($this->app_uuid)."', ";
-				$sql .= "'".check_str($this->dialplan_uuid)."', ";
-				$sql .= "'".check_str($this->dialplan_name)."', ";
-				$sql .= "'".check_str($this->dialplan_continue)."', ";
-				$sql .= "'".check_str($this->dialplan_order)."', ";
-				$sql .= "'".check_str($this->dialplan_context)."', ";
-				$sql .= "'".check_str($this->dialplan_enabled)."', ";
-				$sql .= "'".check_str($this->dialplan_description)."' ";
-				$sql .= ")";
-				$db->exec(check_sql($sql));
-				unset($sql);
-			} //end function
-
-			public function dialplan_update() {
-				global $db;
-				$sql = "update v_dialplans set ";
-				$sql .= "dialplan_name = '".check_str($this->dialplan_name)."', ";
-				if (strlen($this->dialplan_continue) > 0) {
-					$sql .= "dialplan_continue = '".check_str($this->dialplan_continue)."', ";
-				}
-				$sql .= "dialplan_order = '".check_str($this->dialplan_order)."', ";
-				$sql .= "dialplan_context = '".check_str($this->dialplan_context)."', ";
-				$sql .= "dialplan_enabled = '".check_str($this->dialplan_enabled)."', ";
-				$sql .= "dialplan_description = '".check_str($this->dialplan_description)."' ";
-				$sql .= "where domain_uuid = '".check_str($this->domain_uuid)."' ";
-				$sql .= "and dialplan_uuid = '".check_str($this->dialplan_uuid)."' ";
-				//echo "sql: ".$sql."<br />";
-				$db->query($sql);
-				unset($sql);
-			}
-
-			public function dialplan_detail_add() {
-				global $db;
-				$dialplan_detail_uuid = uuid();
-				$sql = "insert into v_dialplan_details ";
-				$sql .= "(";
-				$sql .= "dialplan_detail_uuid, ";
-				$sql .= "domain_uuid, ";
-				$sql .= "dialplan_uuid, ";
-				$sql .= "dialplan_detail_tag, ";
-				$sql .= "dialplan_detail_order, ";
-				$sql .= "dialplan_detail_type, ";
-				$sql .= "dialplan_detail_data, ";
-				$sql .= "dialplan_detail_break, ";
-				$sql .= "dialplan_detail_inline, ";
-				$sql .= "dialplan_detail_group ";
-				$sql .= ") ";
-				$sql .= "values ";
-				$sql .= "( ";
-				$sql .= "'".$dialplan_detail_uuid."', ";
-				$sql .= "'".check_str($this->domain_uuid)."', ";
-				$sql .= "'".check_str($this->dialplan_uuid)."', ";
-				$sql .= "'".check_str($this->dialplan_detail_tag)."', ";
-				$sql .= "'".check_str($this->dialplan_detail_order)."', ";
-				$sql .= "'".check_str($this->dialplan_detail_type)."', ";
-				$sql .= "'".check_str($this->dialplan_detail_data)."', ";
-				if (strlen($this->dialplan_detail_break) == 0) {
-					$sql .= "null, ";
-				}
-				else {
-					$sql .= "'".check_str($this->dialplan_detail_break)."', ";
-				}
-				if (strlen($this->dialplan_detail_inline) == 0) {
-					$sql .= "null, ";
-				}
-				else {
-					$sql .= "'".check_str($this->dialplan_detail_inline)."', ";
-				}
-				if (strlen($this->dialplan_detail_group) == 0) {
-					$sql .= "null ";
-				}
-				else {
-					$sql .= "'".check_str($this->dialplan_detail_group)."' ";
-				}
-				$sql .= ")";
-				//echo $sql."\n\n";
-				$db->exec(check_sql($sql));
-				unset($sql);
-			} //end function
-
-			public function dialplan_detail_update() {
-				global $db;
-				$sql = "update v_dialplans set ";
-				$sql .= "dialplan_detail_order = '".check_str($this->dialplan_detail_order)."', ";
-				$sql .= "dialplan_detail_type = '".check_str($this->dialplan_detail_type)."', ";
-				$sql .= "dialplan_detail_data = '".check_str($this->dialplan_detail_data)."', ";
-				if (strlen($this->dialplan_detail_break) > 0) {
-					$sql .= "dialplan_detail_break = '".check_str($this->dialplan_detail_break)."', ";
-				}
-				if (strlen($this->dialplan_detail_inline) > 0) {
-					$sql .= "dialplan_detail_inline = '".check_str($this->dialplan_detail_inline)."', ";
-				}
-				if (strlen($this->dialplan_detail_group) > 0) {
-					$sql .= "dialplan_detail_group = '".check_str($this->dialplan_detail_group)."', ";
-				}
-				$sql .= "dialplan_detail_tag = '".check_str($this->dialplan_detail_tag)."' ";
-				$sql .= "where domain_uuid = '".check_str($this->domain_uuid)."' ";
-				$sql .= "and dialplan_uuid = '".check_str($this->dialplan_uuid)."' ";
-				//echo "sql: ".$sql."<br />";
-				$db->query($sql);
-				unset($sql);
-			} //end function
-
-			public function restore_advanced_xml() {
-				$switch_dialplan_dir = $this->switch_dialplan_dir;
-				if (is_dir($switch_dialplan_dir)) {
-					//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
-						if (count($_SESSION['domains']) < 2) {
-							//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}", 'default', $file_default_contents);
-							//set the file path
-								$file_path = $switch_dialplan_dir.'/default.xml';
-						}
-						else {
-							//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}", $_SESSION['domain_name'], $file_default_contents);
-							//set the file path
-								$file_path = $switch_dialplan_dir.'/'.$_SESSION['domain_name'].'.xml';
-						}
-					//write the default dialplan
-						$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);
-					//set the message
-						$this->result['dialplan']['restore']['msg'] = "Default Restored";
-				}
-			}
-
-			private function app_uuid_exists() {
-				global $db;
-				$sql = "select count(*) as num_rows from v_dialplans ";
-				$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
-				$sql .= "and app_uuid = '".$this->app_uuid."' ";
-				$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) {
-						return true;
-					}
-					else {
-						return false;
-					}
-				}
-				unset($prep_statement, $result);
-			}
-
-			public function dialplan_exists() {
-				global $db;
-				$sql = "select count(*) as num_rows from v_dialplans ";
-				$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
-				$sql .= "and dialplan_uuid = '".$this->dialplan_uuid."' ";
-				$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) {
-						return true;
-					}
-					else {
-						return false;
-					}
-				}
-				unset($prep_statement, $result);
-			}
-
-			public function import() {
-				if (strlen($this->xml) > 0) {
-					//replace the variables
-						$this->xml = str_replace("{v_context}", $this->default_context, $this->xml);
-						$this->xml = str_replace("{v_pin_number}", generate_password(8, 1), $this->xml);
-						$this->xml = str_replace("{v_switch_recordings_dir}", $_SESSION['switch']['recordings']['dir'], $this->xml);
-					//convert the xml string to an xml object
-						$xml = simplexml_load_string($this->xml);
-					//convert to json
-						$json = json_encode($xml);
-					//convert to an array
-						$dialplan = json_decode($json, true);
-				}
-				if (strlen($this->json) > 0) {
-					//convert to an array
-						$dialplan = json_decode($json, true);
-				}
-
-				//ensure the condition array 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;
-						}
-					}
-				//check if the dialplan app uuid exists
-					$this->app_uuid = $dialplan['extension']['@attributes']['app_uuid'];
-					if ($this->app_uuid_exists()) {
-						//dialplan entry already exists do nothing
-					}
-					else {
-						//get the attributes
-							$this->dialplan_uuid = uuid();
-							$this->dialplan_name = $dialplan['extension']['@attributes']['name'];
-							$this->dialplan_context = $dialplan['@attributes']['name'];
-							if ($this->display_type == "text") {
-								echo "	".$this->dialplan_name.":		added\n";
-							}
-							if (strlen($dialplan['extension']['@attributes']['continue']) > 0) {
-								$this->dialplan_continue = $dialplan['extension']['@attributes']['continue'];
-							}
-							if (strlen($dialplan['extension']['@attributes']['enabled']) > 0) {
-								$this->dialplan_enabled = $dialplan['extension']['@attributes']['enabled'];
-							}
-							else {
-								$this->dialplan_enabled = "true";
-							}
-							$this->dialplan_description = '';
-							$this->dialplan_add();
-						//loop through the condition array
-							$x = 0;
-							$group = 0;
-							$order = 5;
-							foreach ($dialplan['extension']['condition'] as &$row) {
-								unset($this->dialplan_detail_break);
-								unset($this->dialplan_detail_inline);
-								$this->dialplan_detail_tag = 'condition';
-								$this->dialplan_detail_type = $row['@attributes']['field'];
-								$this->dialplan_detail_data = $row['@attributes']['expression'];
-								$this->dialplan_detail_group = $group;
-								$this->dialplan_detail_order = $order;
-								if (strlen($row['@attributes']['break']) > 0) {
-									$this->dialplan_detail_break = $row['@attributes']['break'];
-								}
-								$this->dialplan_detail_add();
-								if (is_array($row['action']) || is_array($row['anti-action'])) {
-									$condition_self_closing_tag = false;
-									if (!is_array($row['action'][0])) {
-										if ($row['action']['@attributes']['application']) {
-											$tmp = $row['action'];
-											unset($row['action']);
-											$row['action'][0] = $tmp;
-										}
-									}
-									if (!is_array($row['anti-action'][0])) {
-										if ($row['anti-action']['@attributes']['application']) {
-											$tmp = $row['anti-action'];
-											unset($row['anti-action']);
-											$row['anti-action'][0] = $tmp;
-										}
-									}
-									$order = $order + 5;
-									unset($this->dialplan_detail_break);
-									unset($this->dialplan_detail_inline);
-									foreach ($row['action'] as &$row2) {
-										$this->dialplan_detail_tag = 'action';
-										$this->dialplan_detail_type = $row2['@attributes']['application'];
-										$this->dialplan_detail_data = $row2['@attributes']['data'];
-										if (strlen($row2['@attributes']['inline']) > 0) {
-											$this->dialplan_detail_inline = $row2['@attributes']['inline'];
-										}
-										$this->dialplan_detail_group = $group;
-										$this->dialplan_detail_order = $order;
-										$this->dialplan_detail_add();
-										$order = $order + 5;
-									}
-									foreach ($row['anti-action'] as &$row2) {
-										$this->dialplan_detail_tag = 'anti-action';
-										$this->dialplan_detail_type = $row2['@attributes']['application'];
-										$this->dialplan_detail_data = $row2['@attributes']['data'];
-										$this->dialplan_detail_group = $group;
-										$this->dialplan_detail_order = $order;
-										$this->dialplan_detail_add();
-										$order = $order + 5;
-									}
-								}
-								else {
-									$condition_self_closing_tag = true;
-								}
-								//if not a self closing tag then increment the group
-								if (!$condition_self_closing_tag) {
-									$group++;
-								}
-								$row['group'] = $group;
-								$order = $order + 5;
-								$x++;
-							}
-					}
-			}
-		}
-	}
-?>