Portions created by the Initial Developer are Copyright (C) 2010-2020 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane James Rose Luis Daniel Lucio Quiroz */ //includes require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; require_once "resources/classes/ringbacks.php"; //check permissions if (permission_exists('ring_group_add') || permission_exists('ring_group_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //initialize the destinations object $destination = new destinations; //get total domain ring group count $sql = "select count(*) from v_ring_groups "; $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; $database = new database; $total_ring_groups = $database->select($sql, $parameters, 'column'); unset($sql, $parameters); //action add or update if (is_uuid($_REQUEST["id"]) || is_uuid($_REQUEST["ring_group_uuid"])) { $action = "update"; //get the ring_group_uuid $ring_group_uuid = $_REQUEST["id"]; if (is_uuid($_REQUEST["ring_group_uuid"])) { $ring_group_uuid = $_REQUEST["ring_group_uuid"]; } //get the domain_uuid if (is_uuid($ring_group_uuid) && permission_exists('ring_group_all')) { $sql = "select domain_uuid from v_ring_groups "; $sql .= "where ring_group_uuid = :ring_group_uuid "; $parameters['ring_group_uuid'] = $ring_group_uuid; $database = new database; $domain_uuid = $database->select($sql, $parameters, 'column'); unset($sql, $parameters); } else { $domain_uuid = $_SESSION['domain_uuid']; } } else { $action = "add"; $domain_uuid = $_SESSION['domain_uuid']; } //delete the user from the ring group if ( $_GET["a"] == "delete" && is_uuid($_REQUEST["user_uuid"]) && permission_exists("ring_group_edit") ) { //set the variables $user_uuid = $_REQUEST["user_uuid"]; //build array $array['ring_group_users'][0]['domain_uuid'] = $domain_uuid; $array['ring_group_users'][0]['ring_group_uuid'] = $ring_group_uuid; $array['ring_group_users'][0]['user_uuid'] = $user_uuid; //grant temporary permissions $p = new permissions; $p->add('ring_group_user_delete', 'temp'); //execute delete $database = new database; $database->app_name = 'ring_groups'; $database->app_uuid = '1d61fb65-1eec-bc73-a6ee-a6203b4fe6f2'; $database->delete($array); unset($array); //revoke temporary permissions $p->delete('ring_group_user_delete', 'temp'); //save the message to a session variable message::add($text['message-delete']); //redirect the browser header("Location: ring_group_edit.php?id=$ring_group_uuid"); exit; } //get total ring group count from the database, check limit, if defined if ($action == 'add') { if ($_SESSION['limit']['ring_groups']['numeric'] != '') { $sql = "select count(*) from v_ring_groups "; $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; $database = new database; $total_ring_groups = $database->select($sql, $parameters, 'column'); unset($sql, $parameters); if (is_numeric($_SESSION['limit']['ring_groups']['numeric']) && $total_ring_groups >= $_SESSION['limit']['ring_groups']['numeric']) { message::add($text['message-maximum_ring_groups'].' '.$_SESSION['limit']['ring_groups']['numeric'], 'negative'); header('Location: ring_groups.php'); exit; } } } //get http post variables and set them to php variables if (count($_POST) > 0) { //process the http post data by submitted action if ($_POST['action'] != '' && is_uuid($ring_group_uuid)) { $array[0]['checked'] = 'true'; $array[0]['uuid'] = $ring_group_uuid; switch ($_POST['action']) { case 'copy': if (permission_exists('ring_group_add')) { $obj = new ring_groups; $obj->copy($array); } break; case 'delete': if (permission_exists('ring_group_delete')) { $obj = new ring_groups; $obj->delete($array); } break; } header('Location: ring_groups.php'); exit; } //set variables from http values $ring_group_name = $_POST["ring_group_name"]; $ring_group_extension = $_POST["ring_group_extension"]; $ring_group_greeting = $_POST["ring_group_greeting"]; $ring_group_strategy = $_POST["ring_group_strategy"]; $ring_group_destinations = $_POST["ring_group_destinations"]; $ring_group_timeout_action = $_POST["ring_group_timeout_action"]; $ring_group_call_timeout = $_POST["ring_group_call_timeout"]; $ring_group_caller_id_name = $_POST["ring_group_caller_id_name"]; $ring_group_caller_id_number = $_POST["ring_group_caller_id_number"]; $ring_group_cid_name_prefix = $_POST["ring_group_cid_name_prefix"]; $ring_group_cid_number_prefix = $_POST["ring_group_cid_number_prefix"]; $ring_group_distinctive_ring = $_POST["ring_group_distinctive_ring"]; $ring_group_ringback = $_POST["ring_group_ringback"]; $ring_group_call_forward_enabled = $_POST["ring_group_call_forward_enabled"]; $ring_group_follow_me_enabled = $_POST["ring_group_follow_me_enabled"]; $ring_group_missed_call_app = $_POST["ring_group_missed_call_app"]; $ring_group_missed_call_data = $_POST["ring_group_missed_call_data"]; $ring_group_forward_enabled = $_POST["ring_group_forward_enabled"]; $ring_group_forward_destination = $_POST["ring_group_forward_destination"]; $ring_group_forward_toll_allow = $_POST["ring_group_forward_toll_allow"]; $ring_group_enabled = $_POST["ring_group_enabled"]; $ring_group_description = $_POST["ring_group_description"]; $dialplan_uuid = $_POST["dialplan_uuid"]; //$ring_group_timeout_action = "transfer:1001 XML default"; $ring_group_timeout_array = explode(":", $ring_group_timeout_action); $ring_group_timeout_app = array_shift($ring_group_timeout_array); $ring_group_timeout_data = join(':', $ring_group_timeout_array); $destination_number = $_POST["destination_number"]; $destination_delay = $_POST["destination_delay"]; $destination_timeout = $_POST["destination_timeout"]; $destination_prompt = $_POST["destination_prompt"]; $ring_group_destinations_delete = $_POST["ring_group_destinations_delete"]; //set the context for users that do not have the permission if (permission_exists('ring_group_context')) { $ring_group_context = $_POST["ring_group_context"]; } else if ($action == 'add') { $ring_group_context = $_SESSION['domain_name']; } } //assign the user to the ring group if (is_uuid($_REQUEST["user_uuid"]) && is_uuid($_REQUEST["id"]) && $_GET["a"] != "delete" && permission_exists("ring_group_edit")) { //set the variables $user_uuid = $_REQUEST["user_uuid"]; //build array $array['ring_group_users'][0]['ring_group_user_uuid'] = uuid(); $array['ring_group_users'][0]['domain_uuid'] = $domain_uuid; $array['ring_group_users'][0]['ring_group_uuid'] = $ring_group_uuid; $array['ring_group_users'][0]['user_uuid'] = $user_uuid; //grant temporary permissions $p = new permissions; $p->add('ring_group_user_add', 'temp'); //execute delete $database = new database; $database->app_name = 'ring_groups'; $database->app_uuid = '1d61fb65-1eec-bc73-a6ee-a6203b4fe6f2'; $database->save($array); unset($array); //revoke temporary permissions $p->delete('ring_group_user_add', 'temp'); //set message message::add($text['message-add']); //redirect the browser header("Location: ring_group_edit.php?id=".urlencode($ring_group_uuid)); exit; } //process the HTTP POST if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: ring_groups.php'); exit; } //check for all required data $msg = ''; if (strlen($ring_group_name) == 0) { $msg .= $text['message-name']."
\n"; } if (strlen($ring_group_extension) == 0) { $msg .= $text['message-extension']."
\n"; } //if (strlen($ring_group_greeting) == 0) { $msg .= $text['message-greeting']."
\n"; } if (strlen($ring_group_strategy) == 0) { $msg .= $text['message-strategy']."
\n"; } if (strlen($ring_group_call_timeout) == 0) { $msg .= $text['message-call_timeout']."
\n"; } //if (strlen($ring_group_timeout_app) == 0) { $msg .= $text['message-timeout_action']."
\n"; } //if (strlen($ring_group_cid_name_prefix) == 0) { $msg .= "Please provide: Caller ID Name Prefix
\n"; } //if (strlen($ring_group_cid_number_prefix) == 0) { $msg .= "Please provide: Caller ID Number Prefix
\n"; } //if (strlen($ring_group_ringback) == 0) { $msg .= "Please provide: Ringback
\n"; } if (strlen($ring_group_enabled) == 0) { $msg .= $text['message-enabled']."
\n"; } //if (strlen($ring_group_description) == 0) { $msg .= "Please provide: Description
\n"; } if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //prep missed call values for db insert/update switch ($ring_group_missed_call_app) { case 'email': $ring_group_missed_call_data = str_replace(';',',',$ring_group_missed_call_data); $ring_group_missed_call_data = str_replace(' ','',$ring_group_missed_call_data); if (substr_count($ring_group_missed_call_data, ',') > 0) { $ring_group_missed_call_data_array = explode(',', $ring_group_missed_call_data); foreach ($ring_group_missed_call_data_array as $array_index => $email_address) { if (!valid_email($email_address)) { unset($ring_group_missed_call_data_array[$array_index]); } } if (sizeof($ring_group_missed_call_data_array) > 0) { $ring_group_missed_call_data = implode(',', $ring_group_missed_call_data_array); } else { unset($ring_group_missed_call_app, $ring_group_missed_call_data); } } else { if (!valid_email($ring_group_missed_call_data)) { unset($ring_group_missed_call_app, $ring_group_missed_call_data); } } break; case 'text': $ring_group_missed_call_data = str_replace('-','',$ring_group_missed_call_data); $ring_group_missed_call_data = str_replace('.','',$ring_group_missed_call_data); $ring_group_missed_call_data = str_replace('(','',$ring_group_missed_call_data); $ring_group_missed_call_data = str_replace(')','',$ring_group_missed_call_data); $ring_group_missed_call_data = str_replace(' ','',$ring_group_missed_call_data); if (!is_numeric($ring_group_missed_call_data)) { unset($ring_group_missed_call_app, $ring_group_missed_call_data); } break; default: unset($ring_group_missed_call_app, $ring_group_missed_call_data); } //set the app and data $ring_group_timeout_array = explode(":", $ring_group_timeout_action); $ring_group_timeout_app = array_shift($ring_group_timeout_array); $ring_group_timeout_data = join(':', $ring_group_timeout_array); //add a uuid to ring_group_uuid if it is empty if ($action == 'add') { $ring_group_uuid = uuid(); } //add the dialplan_uuid if (!is_uuid($_POST["dialplan_uuid"])) { $dialplan_uuid = uuid(); } //build the array $array["ring_groups"][0]["ring_group_uuid"] = $ring_group_uuid; $array["ring_groups"][0]["domain_uuid"] = $domain_uuid; $array['ring_groups'][0]["ring_group_name"] = $ring_group_name; $array['ring_groups'][0]["ring_group_extension"] = $ring_group_extension; $array['ring_groups'][0]["ring_group_greeting"] = $ring_group_greeting; $array['ring_groups'][0]["ring_group_strategy"] = $ring_group_strategy; $array["ring_groups"][0]["ring_group_call_timeout"] = $ring_group_call_timeout; if (permission_exists('ring_group_caller_id_name')) { $array["ring_groups"][0]["ring_group_caller_id_name"] = $ring_group_caller_id_name; } if (permission_exists('ring_group_caller_id_number')) { $array["ring_groups"][0]["ring_group_caller_id_number"] = $ring_group_caller_id_number; } if (permission_exists('ring_group_cid_name_prefix')) { $array["ring_groups"][0]["ring_group_cid_name_prefix"] = $ring_group_cid_name_prefix; } if (permission_exists('ring_group_cid_number_prefix')) { $array["ring_groups"][0]["ring_group_cid_number_prefix"] = $ring_group_cid_number_prefix; } $array["ring_groups"][0]["ring_group_distinctive_ring"] = $ring_group_distinctive_ring; $array["ring_groups"][0]["ring_group_ringback"] = $ring_group_ringback; $array["ring_groups"][0]["ring_group_call_forward_enabled"] = $ring_group_call_forward_enabled; $array["ring_groups"][0]["ring_group_follow_me_enabled"] = $ring_group_follow_me_enabled; if (permission_exists('ring_group_missed_call')) { $array["ring_groups"][0]["ring_group_missed_call_app"] = $ring_group_missed_call_app; $array["ring_groups"][0]["ring_group_missed_call_data"] = $ring_group_missed_call_data; } if (permission_exists('ring_group_forward')) { $array["ring_groups"][0]["ring_group_forward_enabled"] = $ring_group_forward_enabled; $array["ring_groups"][0]["ring_group_forward_destination"] = $ring_group_forward_destination; } $array["ring_groups"][0]["ring_group_forward_toll_allow"] = $ring_group_forward_toll_allow; if (isset($ring_group_context)) { $array["ring_groups"][0]["ring_group_context"] = $ring_group_context; } $array["ring_groups"][0]["ring_group_enabled"] = $ring_group_enabled; $array["ring_groups"][0]["ring_group_description"] = $ring_group_description; $array["ring_groups"][0]["dialplan_uuid"] = $dialplan_uuid; if ($destination->valid($ring_group_timeout_app.':'.$ring_group_timeout_data)) { $array["ring_groups"][0]["ring_group_timeout_app"] = $ring_group_timeout_app; $array["ring_groups"][0]["ring_group_timeout_data"] = $ring_group_timeout_data; } $y = 0; foreach ($ring_group_destinations as $row) { if (is_uuid($row['ring_group_destination_uuid'])) { $ring_group_destination_uuid = $row['ring_group_destination_uuid']; } else { $ring_group_destination_uuid = uuid(); } if (strlen($row['destination_number']) > 0) { $array["ring_groups"][0]["ring_group_destinations"][$y]["ring_group_uuid"] = $ring_group_uuid; $array['ring_groups'][0]["ring_group_destinations"][$y]["ring_group_destination_uuid"] = $ring_group_destination_uuid; $array['ring_groups'][0]["ring_group_destinations"][$y]["destination_number"] = $row['destination_number']; $array['ring_groups'][0]["ring_group_destinations"][$y]["destination_delay"] = $row['destination_delay']; $array['ring_groups'][0]["ring_group_destinations"][$y]["destination_timeout"] = $row['destination_timeout']; $array['ring_groups'][0]["ring_group_destinations"][$y]["destination_prompt"] = $row['destination_prompt']; $array['ring_groups'][0]["ring_group_destinations"][$y]["domain_uuid"] = $domain_uuid; } $y++; } //build the xml dialplan $dialplan_xml = "\n"; $dialplan_xml .= " \n"; $dialplan_xml .= " \n"; $dialplan_xml .= " \n"; $dialplan_xml .= " \n"; $dialplan_xml .= " \n"; $dialplan_xml .= "\n"; //build the dialplan array $array["dialplans"][0]["domain_uuid"] = $domain_uuid; $array["dialplans"][0]["dialplan_uuid"] = $dialplan_uuid; $array["dialplans"][0]["dialplan_name"] = $ring_group_name; $array["dialplans"][0]["dialplan_number"] = $ring_group_extension; if (isset($ring_group_context)) { $array["dialplans"][0]["dialplan_context"] = $ring_group_context; } $array["dialplans"][0]["dialplan_continue"] = "false"; $array["dialplans"][0]["dialplan_xml"] = $dialplan_xml; $array["dialplans"][0]["dialplan_order"] = "101"; $array["dialplans"][0]["dialplan_enabled"] = $ring_group_enabled; $array["dialplans"][0]["dialplan_description"] = $ring_group_description; $array["dialplans"][0]["app_uuid"] = "1d61fb65-1eec-bc73-a6ee-a6203b4fe6f2"; //add the dialplan permission $p = new permissions; $p->add("dialplan_add", "temp"); $p->add("dialplan_edit", "temp"); //save to the data $database = new database; $database->app_name = 'ring_groups'; $database->app_uuid = '1d61fb65-1eec-bc73-a6ee-a6203b4fe6f2'; $database->save($array); $message = $database->message; //remove the temporary permission $p->delete("dialplan_add", "temp"); $p->delete("dialplan_edit", "temp"); //remove checked destinations if ( $action == 'update' && permission_exists('ring_group_destination_delete') && is_array($ring_group_destinations_delete) && @sizeof($ring_group_destinations_delete) != 0 ) { $obj = new ring_groups; $obj->ring_group_uuid = $ring_group_uuid; $obj->delete_destinations($ring_group_destinations_delete); } //apply settings reminder $_SESSION["reload_xml"] = true; //clear the cache $cache = new cache; $cache->delete("dialplan:".$ring_group_context); //clear the destinations session array if (isset($_SESSION['destinations']['array'])) { unset($_SESSION['destinations']['array']); } //set the message if ($action == "add") { //save the message to a session variable message::add($text['message-add']); } if ($action == "update") { //save the message to a session variable message::add($text['message-update']); } //redirect the browser header("Location: ring_group_edit.php?id=".urlencode($ring_group_uuid)); exit; } //pre-populate the form if (is_uuid($ring_group_uuid)) { $sql = "select * from v_ring_groups "; $sql .= "where ring_group_uuid = :ring_group_uuid "; $parameters['ring_group_uuid'] = $ring_group_uuid; $database = new database; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && @sizeof($row) != 0) { $domain_uuid = $row["domain_uuid"]; $ring_group_name = $row["ring_group_name"]; $ring_group_extension = $row["ring_group_extension"]; $ring_group_greeting = $row["ring_group_greeting"]; $ring_group_context = $row["ring_group_context"]; $ring_group_strategy = $row["ring_group_strategy"]; $ring_group_timeout_app = $row["ring_group_timeout_app"]; $ring_group_timeout_data = $row["ring_group_timeout_data"]; $ring_group_call_timeout = $row["ring_group_call_timeout"]; $ring_group_caller_id_name = $row["ring_group_caller_id_name"]; $ring_group_caller_id_number = $row["ring_group_caller_id_number"]; $ring_group_cid_name_prefix = $row["ring_group_cid_name_prefix"]; $ring_group_cid_number_prefix = $row["ring_group_cid_number_prefix"]; $ring_group_distinctive_ring = $row["ring_group_distinctive_ring"]; $ring_group_ringback = $row["ring_group_ringback"]; $ring_group_call_forward_enabled = $row["ring_group_call_forward_enabled"]; $ring_group_follow_me_enabled = $row["ring_group_follow_me_enabled"]; $ring_group_missed_call_app = $row["ring_group_missed_call_app"]; $ring_group_missed_call_data = $row["ring_group_missed_call_data"]; $ring_group_forward_enabled = $row["ring_group_forward_enabled"]; $ring_group_forward_destination = $row["ring_group_forward_destination"]; $ring_group_forward_toll_allow = $row["ring_group_forward_toll_allow"]; $ring_group_enabled = $row["ring_group_enabled"]; $ring_group_description = $row["ring_group_description"]; $dialplan_uuid = $row["dialplan_uuid"]; } unset($sql, $parameters, $row); if (strlen($ring_group_timeout_app) > 0) { $ring_group_timeout_action = $ring_group_timeout_app.":".$ring_group_timeout_data; } } //set the default $destination_delay_max = $_SESSION['ring_group']['destination_delay_max']['numeric']; $destination_timeout_max = $_SESSION['ring_group']['destination_timeout_max']['numeric']; if (strlen($ring_group_ringback) == 0) { $ring_group_ringback = '${us-ring}'; } if (strlen($ring_group_call_timeout) == 0) { $ring_group_call_timeout = '30'; } //get the ring group destination array if ($action == "add") { $x = 0; $limit = 5; } if (is_uuid($ring_group_uuid)) { $sql = "select * from v_ring_group_destinations "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and ring_group_uuid = :ring_group_uuid "; $sql .= "order by destination_delay, destination_number asc "; $parameters['domain_uuid'] = $domain_uuid; $parameters['ring_group_uuid'] = $ring_group_uuid; $database = new database; $ring_group_destinations = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); } //add an empty row to the options array if (!is_array($ring_group_destinations) || count($ring_group_destinations) == 0) { $rows = $_SESSION['ring_group']['destination_add_rows']['numeric']; $id = 0; $show_destination_delete = false; } if (is_array($ring_group_destinations) && count($ring_group_destinations) > 0) { $rows = $_SESSION['ring_group']['destination_edit_rows']['numeric']; $id = count($ring_group_destinations)+1; $show_destination_delete = true; } for ($x = 0; $x < $rows; $x++) { $ring_group_destinations[$id]['destination_number'] = ''; $ring_group_destinations[$id]['destination_delay'] = ''; $ring_group_destinations[$id]['destination_timeout'] = ''; $ring_group_destinations[$id]['destination_prompt'] = ''; $id++; } //get the ring group users if (is_uuid($ring_group_uuid)) { $sql = "select u.username, r.user_uuid, r.ring_group_uuid "; $sql .= "from v_ring_group_users as r, v_users as u "; $sql .= "where r.user_uuid = u.user_uuid "; $sql .= "and u.user_enabled = 'true' "; $sql .= "and r.domain_uuid = :domain_uuid "; $sql .= "and r.ring_group_uuid = :ring_group_uuid "; $sql .= "order by u.username asc "; $parameters['domain_uuid'] = $domain_uuid; $parameters['ring_group_uuid'] = $ring_group_uuid; $database = new database; $ring_group_users = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); } //get the users $sql = "select * from v_users "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and user_enabled = 'true' "; $sql .= "order by username asc "; $parameters['domain_uuid'] = $domain_uuid; $database = new database; $users = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); //set defaults if (strlen($ring_group_enabled) == 0) { $ring_group_enabled = 'true'; } //set the default ring group context if (strlen($ring_group_context) == 0) { $ring_group_context = $_SESSION['domain_name']; } //get the ring backs $ringbacks = new ringbacks; $ringbacks = $ringbacks->select('ring_group_ringback', $ring_group_ringback); //get the sounds $sounds = new sounds; $sounds = $sounds->get(); //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //show the header $document['title'] = $text['title-ring_group']; require_once "resources/header.php"; //option to change select to text if (if_group("superadmin")) { echo "\n"; echo "\n"; } //show the content echo "
\n"; echo "
\n"; echo "
".$text['title-ring_group']."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'ring_groups.php']); if ($action == 'update') { $button_margin = 'margin-left: 15px;'; if (permission_exists('ring_group_add') && (!is_numeric($_SESSION['limit']['ring_groups']['numeric']) || ($total_ring_groups < $_SESSION['limit']['ring_groups']['numeric']))) { echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'name'=>'btn_copy','style'=>$button_margin,'onclick'=>"modal_open('modal-copy','btn_copy');"]); unset($button_margin); } if (permission_exists('ring_group_delete') || permission_exists('ring_group_destination_delete')) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'name'=>'btn_delete','style'=>$button_margin,'onclick'=>"modal_open('modal-delete','btn_delete');"]); unset($button_margin); } } echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','style'=>'margin-left: 15px;']); echo "
\n"; echo "
\n"; echo "
\n"; if ($action == "update") { if (permission_exists('ring_group_add') && (!is_numeric($_SESSION['limit']['ring_groups']['numeric']) || ($total_ring_groups < $_SESSION['limit']['ring_groups']['numeric']))) { echo modal::create(['id'=>'modal-copy','type'=>'copy','actions'=>button::create(['type'=>'submit','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_copy','style'=>'float: right; margin-left: 15px;','collapse'=>'never','name'=>'action','value'=>'copy','onclick'=>"modal_close();"])]); } if (permission_exists('ring_group_delete') || permission_exists('ring_group_destination_delete')) { echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'submit','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','name'=>'action','value'=>'delete','onclick'=>"modal_close();"])]); } } echo $text['description']."\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 "\n"; echo "\n"; echo "\n"; echo " "; echo " "; echo " "; echo " "; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; if (permission_exists('ring_group_caller_id_name')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists('ring_group_caller_id_number')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists('ring_group_cid_name_prefix')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists('ring_group_cid_number_prefix')) { 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 " "; echo " "; echo " "; echo " "; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; if (permission_exists('ring_group_missed_call')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists('ring_group_forward')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists('ring_group_forward_toll_allow')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists("ring_group_context")) { 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-name']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-name']."\n"; echo "
\n"; echo " ".$text['label-extension']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-extension']."\n"; echo "
\n"; echo " ".$text['label-greeting']."\n"; echo "\n"; echo "\n"; echo "
\n"; echo $text['description-greeting']."\n"; echo "
\n"; echo " ".$text['label-strategy']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-strategy']."\n"; echo "
".$text['label-destinations'].""; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (permission_exists('ring_group_prompt')) { echo " \n"; } if ($show_destination_delete && permission_exists('ring_group_destination_delete')) { echo " \n"; } echo " \n"; $x = 0; foreach ($ring_group_destinations as $row) { if (strlen($row['destination_delay']) == 0) { $row['destination_delay'] = "0"; } if (strlen($row['destination_timeout']) == 0) { $row['destination_timeout'] = "30"; } if (strlen($row['ring_group_destination_uuid']) > 0) { echo " \n"; } echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (permission_exists('ring_group_prompt')) { echo " \n"; } if ($show_destination_delete && permission_exists('ring_group_destination_delete')) { if (is_uuid($row['ring_group_destination_uuid'])) { echo " \n"; } echo " \n"; $x++; } echo "
".$text['label-destination_number'].""; echo ($ring_group_strategy == 'sequence' || $ring_group_strategy == 'rollover') ? $text['label-destination_order'] : $text['label-destination_delay']; echo " ".$text['label-destination_timeout']."".$text['label-destination_prompt']."\n"; echo " ".$text['label-delete']."\n"; echo " \n"; echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " "; echo " \n"; echo " \n"; } else { echo " \n"; } echo "
\n"; echo " ".$text['description-destinations']."\n"; echo "
\n"; echo "
\n"; echo " ".$text['label-timeout_destination']."\n"; echo "\n"; echo $destination->select('dialplan', 'ring_group_timeout_action', $ring_group_timeout_action); echo "
\n"; echo " ".$text['description-timeout_destination']."\n"; echo "
\n"; echo " ".$text['label-call_timeout']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-ring_group_call_timeout']." \n"; echo "
\n"; echo " ".$text['label-caller_id_name']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-caller_id_name']." \n"; echo "
\n"; echo " ".$text['label-caller_id_number']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-caller_id_number']." \n"; echo "
\n"; echo " ".$text['label-cid-name-prefix']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-cid-name-prefix']." \n"; echo "
\n"; echo " ".$text['label-cid-number-prefix']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-cid-number-prefix']." \n"; echo "
\n"; echo " ".$text['label-distinctive_ring']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-distinctive_ring']." \n"; echo "
\n"; echo " ".$text['label-ringback']."\n"; echo "\n"; echo " ".$ringbacks; echo "
\n"; echo $text['description-ringback']."\n"; echo "
".$text['label-user_list'].""; if (is_array($ring_group_users) && @sizeof($ring_group_users) != 0) { echo " \n"; foreach ($ring_group_users as $field) { echo " \n"; echo " \n"; echo " \n"; echo " \n"; } echo "
".escape($field['username'])."\n"; echo " ".$v_link_label_delete."\n"; echo "
\n"; echo "
\n"; } echo " "; echo button::create(['type'=>'submit','label'=>$text['button-add'],'icon'=>$_SESSION['theme']['button_icon_add'],'collapse'=>'never']); echo "
\n"; echo " ".$text['description-user_list']."\n"; echo "
\n"; echo "
\n"; echo " ".$text['label-ring_group_call_forward_enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-ring_group_call_forward_enabled']."\n"; echo "
\n"; echo " ".$text['label-ring_group_follow_me_enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-ring_group_follow_me_enabled']."\n"; echo "
\n"; echo " ".$text['label-missed_call']."\n"; echo "\n"; echo " \n"; $ring_group_missed_call_data = ($ring_group_missed_call_app == 'text') ? format_phone($ring_group_missed_call_data) : $ring_group_missed_call_data; echo " \n"; echo "
\n"; echo $text['description-missed_call']."\n"; echo "
\n"; echo " ".$text['label-ring_group_forward']."\n"; echo "\n"; echo " "; echo ""; echo "
\n"; echo $text['description-ring-group-forward']."\n"; echo "
\n"; echo " ".$text['label-ring_group_forward_toll_allow']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-ring_group_forward_toll_allow']."\n"; echo "
\n"; echo " ".$text['label-context']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-enter-context']."\n"; echo "
\n"; echo " ".$text['label-enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-enabled']."\n"; echo "
\n"; echo " ".$text['label-description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-description']."\n"; echo "
"; echo "

"; if (is_uuid($dialplan_uuid)) { echo "\n"; } if (is_uuid($ring_group_uuid)) { echo "\n"; } echo "\n"; echo "
"; //include the footer require_once "resources/footer.php"; ?>