Portions created by the Initial Developer are Copyright (C) 2008-2018 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; require_once "resources/paging.php"; //check permissions if (permission_exists('gateway_add')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //set the http get/post variable(s) to a php variable if (isset($_REQUEST["id"])) { $gateway_uuid = check_str($_REQUEST["id"]); } //get the data $sql = "select * from v_gateways "; $sql .= "where gateway_uuid = '$gateway_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $gateways = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($gateways as &$row) { $domain_uuid = $row["domain_uuid"]; $gateway = $row["gateway"]; $username = $row["username"]; $password = $row["password"]; $auth_username = $row["auth_username"]; $realm = $row["realm"]; $from_user = $row["from_user"]; $from_domain = $row["from_domain"]; $proxy = $row["proxy"]; $register_proxy = $row["register_proxy"]; $outbound_proxy = $row["outbound_proxy"]; $expire_seconds = $row["expire_seconds"]; $register = $row["register"]; $register_transport = $row["register_transport"]; $retry_seconds = $row["retry_seconds"]; $extension = $row["extension"]; $codec_prefs = $row["codec_prefs"]; $ping = $row["ping"]; $channels = $row["channels"]; $caller_id_in_from = $row["caller_id_in_from"]; $supress_cng = $row["supress_cng"]; $extension_in_contact = $row["extension_in_contact"]; $effective_caller_id_name = $row["effective_caller_id_name"]; $effective_caller_id_number = $row["effective_caller_id_number"]; $outbound_caller_id_name = $row["outbound_caller_id_name"]; $outbound_caller_id_number = $row["outbound_caller_id_number"]; $context = $row["context"]; $enabled = $row["enabled"]; $description = 'copy: '.$row["description"]; } unset ($prep_statement); //set defaults if (strlen($expire_seconds) == 0) { $expire_seconds = '800'; } if (strlen($retry_seconds) == 0) { $retry_seconds = '30'; } //copy the gateways $gateway_uuid = uuid(); $sql = "insert into v_gateways "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "gateway_uuid, "; $sql .= "gateway, "; $sql .= "username, "; $sql .= "password, "; $sql .= "auth_username, "; $sql .= "realm, "; $sql .= "from_user, "; $sql .= "from_domain, "; $sql .= "proxy, "; $sql .= "register_proxy, "; $sql .= "outbound_proxy, "; $sql .= "expire_seconds, "; $sql .= "register, "; $sql .= "register_transport, "; $sql .= "retry_seconds, "; $sql .= "extension, "; $sql .= "codec_prefs, "; $sql .= "ping, "; //$sql .= "channels, "; $sql .= "caller_id_in_from, "; $sql .= "supress_cng, "; $sql .= "extension_in_contact, "; $sql .= "context, "; $sql .= "enabled, "; $sql .= "description "; $sql .= ")"; $sql .= "values "; $sql .= "("; if (strlen($domain_uuid) > 0) { $sql .= "'$domain_uuid', "; } else { $sql .= "null, "; } $sql .= "'$gateway_uuid', "; $sql .= "'$gateway', "; $sql .= "'$username', "; $sql .= "'$password', "; $sql .= "'$auth_username', "; $sql .= "'$realm', "; $sql .= "'$from_user', "; $sql .= "'$from_domain', "; $sql .= "'$proxy', "; $sql .= "'$register_proxy', "; $sql .= "'$outbound_proxy', "; $sql .= "'$expire_seconds', "; $sql .= "'$register', "; $sql .= "'$register_transport', "; $sql .= "'$retry_seconds', "; $sql .= "'$extension', "; $sql .= "'$codec_prefs', "; $sql .= "'$ping', "; //$sql .= "'$channels', "; $sql .= "'$caller_id_in_from', "; $sql .= "'$supress_cng', "; $sql .= "'$extension_in_contact', "; $sql .= "'$context', "; $sql .= "'$enabled', "; $sql .= "'$description' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //add new gateway to session variable if ($enabled == 'true') { $_SESSION['gateways'][$gateway_uuid] = $gateway; } //synchronize the xml config 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); //redirect the user message::add($text['message-copy']); header("Location: gateways.php"); return; ?>