From 440fedcb5fdcd419a43fb5955b401aad8683bd31 Mon Sep 17 00:00:00 2001 From: markjcrane Date: Wed, 8 Aug 2018 14:27:48 +0000 Subject: [PATCH] Add Grandstream Wave --- app/gswave/app_config.php | 31 +++ app/gswave/app_languages.php | 63 ++++++ app/gswave/app_menu.php | 28 +++ app/gswave/index.php | 179 ++++++++++++++++++ .../resources/images/apple_app_store.png | Bin 0 -> 35478 bytes app/gswave/resources/images/google_play.png | Bin 0 -> 13957 bytes app/gswave/root.php | 90 +++++++++ 7 files changed, 391 insertions(+) create mode 100644 app/gswave/app_config.php create mode 100644 app/gswave/app_languages.php create mode 100644 app/gswave/app_menu.php create mode 100644 app/gswave/index.php create mode 100644 app/gswave/resources/images/apple_app_store.png create mode 100644 app/gswave/resources/images/google_play.png create mode 100644 app/gswave/root.php diff --git a/app/gswave/app_config.php b/app/gswave/app_config.php new file mode 100644 index 0000000000..078856850f --- /dev/null +++ b/app/gswave/app_config.php @@ -0,0 +1,31 @@ + diff --git a/app/gswave/app_languages.php b/app/gswave/app_languages.php new file mode 100644 index 0000000000..a1654d9041 --- /dev/null +++ b/app/gswave/app_languages.php @@ -0,0 +1,63 @@ + \ No newline at end of file diff --git a/app/gswave/app_menu.php b/app/gswave/app_menu.php new file mode 100644 index 0000000000..a4d5490d3d --- /dev/null +++ b/app/gswave/app_menu.php @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/app/gswave/index.php b/app/gswave/index.php new file mode 100644 index 0000000000..05e036fa97 --- /dev/null +++ b/app/gswave/index.php @@ -0,0 +1,179 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//check permissions + if (permission_exists('extension_edit')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//verify the id is as uuid then set as a variable + if (is_uuid($_GET['id'])) { + $extension_uuid = $_GET['id']; + } + +//get the extensions + $sql = "select * from v_extensions "; + $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "and enabled = 'true' "; + $sql .= "order by extension asc "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $extensions = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset ($prep_statement, $sql); + +//get the extension + if (is_uuid($_GET['id'])) { + $sql = "select * from v_extensions "; + $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "and extension_uuid = '".$extension_uuid."' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $extension = $prep_statement->fetchAll(PDO::FETCH_NAMED); + $field = $extension[0]; + unset ($prep_statement, $sql); + } + +//get the username + $username = $field['extension']; + if (isset($row['number_alias']) && strlen($row['number_alias']) > 0) { + $username = $field['number_alias']; + } + +//build the xml + if (is_uuid($_GET['id'])) { + $xml = ""; + $xml .= ""; + $xml .= ""; + $xml .= "".$_SESSION['domain_name'].""; + //$xml .= "".$_SESSION['domain_name'].""; + //$xml .= "".$_SESSION['domain_name'].""; + $xml .= "".$_SESSION['domain_name'].":".$_SESSION['provision']['line_sip_port']['numeric'].""; + $xml .= "".$_SESSION['domain_name'].":".$_SESSION['provision']['line_sip_port']['numeric'].""; + $xml .= "".$username.""; + $xml .= "".$username.""; + $xml .= "".$field['password'].""; + $xml .= "".$username.""; + $xml .= "".$username.""; + $xml .= "{x+|*x+|*++}"; + $xml .= "0"; + $xml .= "*97"; + $xml .= ""; + $xml .= ""; + } + +//debian + //apt install qrencode + +//additional includes + require_once "resources/header.php"; + +//show the content + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
".$text['title-gswave']."\n"; + //echo " "; + echo "
\n"; + echo "
".$text['title_description-gswave']."

\n"; + echo "
\n"; + +//show the content + echo "
\n"; + echo "\n"; + + //echo "\n"; + //echo "\n"; + //echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + //echo "\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + //echo "
\n"; + //echo "
\n"; + echo " ".$text['label-extension']."\n"; + echo "\n"; + echo " \n"; + //echo "
\n"; + //echo $text['description-extension']."\n"; + echo "
".$text['title-message']."

\n"; + echo "
\n"; + echo " "; + echo " "; + echo "
"; + echo "
"; + //echo "
"; + +//stream the file + if (is_uuid($_GET['id'])) { + //header("Content-Type: image/png"); + $image = shell_exec('qrencode -o - -s 6 -m 5 "'.$xml.'"'); + } + +//html image + if (is_uuid($_GET['id'])) { + echo "\n"; + } + +//save to a file + //$output = '/tmp/'.$row['user_id'].'.'.$row['server_address'].'.png'; + //$result = shell_exec('qrencode -o '.$output.' -m 5 "'.$xml.'"'); + +//add the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/app/gswave/resources/images/apple_app_store.png b/app/gswave/resources/images/apple_app_store.png new file mode 100644 index 0000000000000000000000000000000000000000..a977a262ee921cb041c770672b5c5aff953b5d94 GIT binary patch literal 35478 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 z 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 CGh`M3 literal 0 HcmV?d00001 diff --git a/app/gswave/resources/images/google_play.png b/app/gswave/resources/images/google_play.png new file mode 100644 index 0000000000000000000000000000000000000000..c77b7464b049c7d6666155c61df5f486f241f760 GIT binary patch literal 13957 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 X%LPP+756@c3` + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +// make sure the PATH_SEPARATOR is defined + umask(2); + if (!defined("PATH_SEPARATOR")) { + if (strpos($_ENV["OS"], "Win") !== false) { + define("PATH_SEPARATOR", ";"); + } else { + define("PATH_SEPARATOR", ":"); + } + } + + if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html'; + + // make sure the document_root is set + $_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]); + if(PHP_SAPI == 'cli'){ + chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME)); + $script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]); + $dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME)); + if (file_exists('/project_root.php')) { + $path = '/'; + } else { + $i = 1; + $path = ''; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + } + $_SERVER["DOCUMENT_ROOT"] = $path; + }else{ + $_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]); + } + $_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]); +// try to detect if a project path is being used + if (!defined('PROJECT_PATH')) { + if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) { + define('PROJECT_PATH', '/fusionpbx'); + } elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) { + define('PROJECT_PATH', ''); + } else { + $dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME))); + $i = 1; + $path = $_SERVER["DOCUMENT_ROOT"]; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + if(!file_exists($path. '/project_root.php')){ + die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance"); + } + $project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path); + define('PROJECT_PATH', $project_path); + } + $_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH); + set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]); + } + +?> \ No newline at end of file