Update gateway_delete.php

This commit is contained in:
FusionPBX
2019-03-07 16:44:09 -07:00
committed by GitHub
parent 7ba3fd49c5
commit 3841c6f51c

View File

@@ -23,79 +23,85 @@
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('gateway_delete')) {
//access granted
}
else {
echo "access denied";
exit;
}
//includes
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('gateway_delete')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
if (strlen($_GET["id"])>0) {
//set the variable
$id = check_str($_GET["id"]);
//delete the gateway
if (is_array($_GET["id"])) {
//set the variable
$id = check_str($_GET["id"]);
//get the gateway name
$sql = "select * from v_gateways ";
$sql .= "where gateway_uuid = '$id' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$gateway_uuid = $row["gateway_uuid"];
$gateway = $row["gateway"];
$profile = $row["profile"];
}
unset ($prep_statement);
//remove gateway from session variable
unset($_SESSION['gateways'][$gateway_uuid]);
//delete the xml file
if ($_SESSION['switch']['sip_profiles']['dir'] != '') {
$gateway_xml_file = $_SESSION['switch']['sip_profiles']['dir']."/".$profile."/v_".$gateway_uuid.".xml";
if (file_exists($gateway_xml_file)) {
unlink($gateway_xml_file);
//get the gateway name
$sql = "select * from v_gateways ";
$sql .= "where gateway_uuid = '$id' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$gateway_uuid = $row["gateway_uuid"];
$gateway = $row["gateway"];
$profile = $row["profile"];
}
}
unset ($prep_statement);
//create the event socket connection and stop the gateway
if (!$fp) {
//remove gateway from session variable
unset($_SESSION['gateways'][$gateway_uuid]);
//delete the xml file
if ($_SESSION['switch']['sip_profiles']['dir'] != '') {
$gateway_xml_file = $_SESSION['switch']['sip_profiles']['dir']."/".$profile."/v_".$gateway_uuid.".xml";
if (file_exists($gateway_xml_file)) {
unlink($gateway_xml_file);
}
}
//create the event socket connection and stop the gateway
if (!$fp) {
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
}
//send the api gateway stop command over event socket
$cmd = 'api sofia profile '.$profile.' killgw '.$gateway_uuid;
$response = event_socket_request($fp, $cmd);
unset($cmd);
//delete the gateway
$sql = "delete from v_gateways ";
$sql .= "where gateway_uuid = '$id' ";
$db->query($sql);
unset($sql);
//syncrhonize configuration
save_gateway_xml();
//clear the cache
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
}
$hostname = trim(event_socket_request($fp, 'api switchname'));
$cache = new cache;
$cache->delete("configuration:sofia.conf:".$hostname);
//send the api gateway stop command over event socket
$cmd = 'api sofia profile '.$profile.' killgw '.$gateway_uuid;
$response = event_socket_request($fp, $cmd);
unset($cmd);
//delete the gateway
$sql = "delete from v_gateways ";
$sql .= "where gateway_uuid = '$id' ";
$db->query($sql);
unset($sql);
//syncrhonize configuration
save_gateway_xml();
//clear the cache
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
$hostname = trim(event_socket_request($fp, 'api switchname'));
$cache = new cache;
$cache->delete("configuration:sofia.conf:".$hostname);
//rescan the sip profile to look for new or stopped gateways
//create the event socket connection and send a command
if (!$fp) {
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
}
//rescan the sip profile to look for new or stopped gateways
if ($fp) {
//send the api commandover event socket
$cmd = 'api sofia profile '.$profile.' rescan';
@@ -108,7 +114,7 @@ if (strlen($_GET["id"])>0) {
//clear the apply settings reminder
$_SESSION["reload_xml"] = false;
}
}
//redirect the users
message::add($text['message-delete']);