Portions created by the Initial Developer are Copyright (C) 2008-2014 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane Luis Daniel Lucio Quiroz */ require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; if (permission_exists('call_center_queue_add') || permission_exists('call_center_queue_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //action add or update if (isset($_REQUEST["id"])) { $action = "update"; $call_center_queue_uuid = check_str($_REQUEST["id"]); } else { $action = "add"; } //get total call center queues count from the database, check limit, if defined if ($action == 'add') { if ($_SESSION['limit']['call_center_queues']['numeric'] != '') { $sql = "select count(*) as num_rows from v_call_center_queues where domain_uuid = '".$_SESSION['domain_uuid']."' "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); $total_call_center_queues = $row['num_rows']; } unset($prep_statement, $row); if ($total_call_center_queues >= $_SESSION['limit']['call_center_queues']['numeric']) { $_SESSION['message_mood'] = 'negative'; $_SESSION['message'] = $text['message-maximum_queues'].' '.$_SESSION['limit']['call_center_queues']['numeric']; header('Location: call_center_queues.php'); return; } } } //get http post variables and set them to php variables if (count($_POST) > 0) { //get the post variables a run a security chack on them //$domain_uuid = check_str($_POST["domain_uuid"]); $queue_name = check_str($_POST["queue_name"]); $queue_extension = check_str($_POST["queue_extension"]); $queue_strategy = check_str($_POST["queue_strategy"]); $queue_moh_sound = check_str($_POST["queue_moh_sound"]); $queue_record_template = check_str($_POST["queue_record_template"]); $queue_time_base_score = check_str($_POST["queue_time_base_score"]); $queue_max_wait_time = check_str($_POST["queue_max_wait_time"]); $queue_max_wait_time_with_no_agent = check_str($_POST["queue_max_wait_time_with_no_agent"]); $queue_max_wait_time_with_no_agent_time_reached = check_str($_POST["queue_max_wait_time_with_no_agent_time_reached"]); $queue_tier_rules_apply = check_str($_POST["queue_tier_rules_apply"]); $queue_tier_rule_wait_second = check_str($_POST["queue_tier_rule_wait_second"]); $queue_tier_rule_wait_multiply_level = check_str($_POST["queue_tier_rule_wait_multiply_level"]); $queue_tier_rule_no_agent_no_wait = check_str($_POST["queue_tier_rule_no_agent_no_wait"]); $queue_timeout_action = check_str($_POST["queue_timeout_action"]); $queue_discard_abandoned_after = check_str($_POST["queue_discard_abandoned_after"]); $queue_abandoned_resume_allowed = check_str($_POST["queue_abandoned_resume_allowed"]); $queue_cid_prefix = check_str($_POST["queue_cid_prefix"]); $queue_announce_sound = check_str($_POST["queue_announce_sound"]); $queue_announce_frequency = check_str($_POST["queue_announce_frequency"]); $queue_description = check_str($_POST["queue_description"]); //replace the space in the queue name with a dash $queue_name = str_replace(" ", "-", $queue_name); //remove invalid characters $queue_cid_prefix = str_replace(":", "-", $queue_cid_prefix); $queue_cid_prefix = str_replace("\"", "", $queue_cid_prefix); $queue_cid_prefix = str_replace("@", "", $queue_cid_prefix); $queue_cid_prefix = str_replace("\\", "", $queue_cid_prefix); $queue_cid_prefix = str_replace("/", "", $queue_cid_prefix); } //delete the tier (agent from the queue) if ($_REQUEST["delete_type"] == "tier" && strlen($_REQUEST["delete_uuid"]) > 0 && permission_exists("call_center_tier_delete")) { //set the variables $call_center_queue_uuid = check_str($_REQUEST["id"]); $tier_uuid = check_str($_REQUEST["delete_uuid"]); //get the agent details $sql = " select agent_name, queue_name from v_call_center_tiers where domain_uuid = '".$_SESSION['domain_uuid']."' and call_center_tier_uuid = '".$tier_uuid."' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $agent_name = $row["agent_name"]; $queue_name = $row["queue_name"]; break; //limit to 1 row } unset ($prep_statement); //delete the agent from freeswitch //get the domain using the $_SESSION['domain_uuid'] $tmp_domain = $_SESSION['domains'][$_SESSION['domain_uuid']]['domain_name']; //setup the event socket connection $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //delete the agent over event socket if ($fp) { //callcenter_config tier del [queue_name] [agent_name] $cmd = "api callcenter_config tier del ".$queue_name."@".$tmp_domain." ".$agent_name."@".$_SESSION['domains'][$_SESSION['domain_uuid']]['domain_name']; $response = event_socket_request($fp, $cmd); } //delete the tier from the database if (strlen($tier_uuid)>0) { $sql = "delete from v_call_center_tiers where domain_uuid = '".$_SESSION['domain_uuid']."' and call_center_tier_uuid = '".$tier_uuid."'"; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); unset($sql); } } if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { $msg = ''; if ($action == "update") { $call_center_queue_uuid = check_str($_POST["call_center_queue_uuid"]); } //check for all required data //if (strlen($domain_uuid) == 0) { $msg .= $text['message-required']."domain_uuid
\n"; } if (strlen($queue_name) == 0) { $msg .= $text['message-required'].$text['label-queue_name']."
\n"; } if (strlen($queue_extension) == 0) { $msg .= $text['message-required'].$text['label-extension']."
\n"; } if (strlen($queue_strategy) == 0) { $msg .= $text['message-required'].$text['label-strategy']."
\n"; } //if (strlen($queue_moh_sound) == 0) { $msg .= $text['message-required'].$text['label-music_on_hold']."
\n"; } //if (strlen($queue_record_template) == 0) { $msg .= $text['message-required'].$text['label-record_template']."
\n"; } //if (strlen($queue_time_base_score) == 0) { $msg .= $text['message-required'].$text['label-time_base_score']."
\n"; } //if (strlen($queue_max_wait_time) == 0) { $msg .= $text['message-required'].$text['label-max_wait_time']."
\n"; } //if (strlen($queue_max_wait_time_with_no_agent) == 0) { $msg .= $text['message-required'].$text['label-max_wait_time_with_no_agent']."
\n"; } //if (strlen($queue_max_wait_time_with_no_agent_time_reached) == 0) { $msg .= $text['message-required'].$text['label-max_wait_time_with_no_agent_time_reached']."
\n"; } //if (strlen($queue_tier_rules_apply) == 0) { $msg .= $text['message-required'].$text['label-tier_rules_apply']."
\n"; } //if (strlen($queue_tier_rule_wait_second) == 0) { $msg .= $text['message-required'].$text['label-tier_rule_wait_second']."
\n"; } //if (strlen($queue_tier_rule_wait_multiply_level) == 0) { $msg .= $text['message-required'].$text['label-tier_rule_wait_multiply_level']."
\n"; } //if (strlen($queue_tier_rule_no_agent_no_wait) == 0) { $msg .= $text['message-required'].$text['label-tier_rule_no_agent_no_wait']."
\n"; } //if (strlen($queue_timeout_action) == 0) { $msg .= $text['message-required'].$text['label-timeout_action']."
\n"; } //if (strlen($queue_discard_abandoned_after) == 0) { $msg .= $text['message-required'].$text['label-discard_abandoned_after']."
\n"; } //if (strlen($queue_abandoned_resume_allowed) == 0) { $msg .= $text['message-required'].$text['label-abandoned_resume_allowed']."
\n"; } //if (strlen($queue_cid_prefix) == 0) { $msg .= $text['message-required'].$text['label-caller_id_name_prefix']."
\n"; } //if (strlen($queue_description) == 0) { $msg .= $text['message-required'].$text['label-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; } //add or update the database if ($_POST["persistformvar"] != "true") { if ($action == "add") { //add the call center queue $call_center_queue_uuid = uuid(); $sql = "insert into v_call_center_queues "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "call_center_queue_uuid, "; $sql .= "queue_name, "; $sql .= "queue_extension, "; $sql .= "queue_strategy, "; $sql .= "queue_moh_sound, "; $sql .= "queue_record_template, "; $sql .= "queue_time_base_score, "; $sql .= "queue_max_wait_time, "; $sql .= "queue_max_wait_time_with_no_agent, "; $sql .= "queue_max_wait_time_with_no_agent_time_reached, "; $sql .= "queue_tier_rules_apply, "; $sql .= "queue_tier_rule_wait_second, "; $sql .= "queue_tier_rule_wait_multiply_level, "; $sql .= "queue_tier_rule_no_agent_no_wait, "; $sql .= "queue_timeout_action, "; $sql .= "queue_discard_abandoned_after, "; $sql .= "queue_abandoned_resume_allowed, "; $sql .= "queue_cid_prefix, "; if (strlen($queue_announce_sound) > 0) { $sql .= "queue_announce_sound, "; } if (strlen($queue_announce_frequency) > 0) { $sql .= "queue_announce_frequency, "; } $sql .= "queue_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".$_SESSION['domain_uuid']."', "; $sql .= "'$call_center_queue_uuid', "; $sql .= "'$queue_name', "; $sql .= "'$queue_extension', "; $sql .= "'$queue_strategy', "; $sql .= "'$queue_moh_sound', "; $sql .= "'$queue_record_template', "; $sql .= "'$queue_time_base_score', "; $sql .= "'$queue_max_wait_time', "; $sql .= "'$queue_max_wait_time_with_no_agent', "; $sql .= "'$queue_max_wait_time_with_no_agent_time_reached', "; $sql .= "'$queue_tier_rules_apply', "; $sql .= "'$queue_tier_rule_wait_second', "; $sql .= "'$queue_tier_rule_wait_multiply_level', "; $sql .= "'$queue_tier_rule_no_agent_no_wait', "; $sql .= "'$queue_timeout_action', "; $sql .= "'$queue_discard_abandoned_after', "; $sql .= "'$queue_abandoned_resume_allowed', "; $sql .= "'$queue_cid_prefix', "; if (strlen($queue_announce_sound) > 0) { $sql .= "'$queue_announce_sound', "; } if (strlen($queue_announce_frequency) > 0) { $sql .= "'$queue_announce_frequency', "; } $sql .= "'$queue_description' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //syncrhonize the configuration save_call_center_xml(); //delete the dialplan context from memcache $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); if ($fp) { $switch_cmd = "memcache delete dialplan:".$_SESSION["context"]."@".$_SESSION['domain_name']; $switch_result = event_socket_request($fp, 'api '.$switch_cmd); } $_SESSION["message"] = $text['message-add']; } //if ($action == "add") if ($action == "update") { //update the call center queue $sql = "update v_call_center_queues set "; $sql .= "queue_name = '$queue_name', "; $sql .= "queue_extension = '$queue_extension', "; $sql .= "queue_strategy = '$queue_strategy', "; $sql .= "queue_moh_sound = '$queue_moh_sound', "; $sql .= "queue_record_template = '$queue_record_template', "; $sql .= "queue_time_base_score = '$queue_time_base_score', "; $sql .= "queue_max_wait_time = '$queue_max_wait_time', "; $sql .= "queue_max_wait_time_with_no_agent = '$queue_max_wait_time_with_no_agent', "; $sql .= "queue_max_wait_time_with_no_agent_time_reached = '$queue_max_wait_time_with_no_agent_time_reached', "; $sql .= "queue_tier_rules_apply = '$queue_tier_rules_apply', "; $sql .= "queue_tier_rule_wait_second = '$queue_tier_rule_wait_second', "; $sql .= "queue_tier_rule_wait_multiply_level = '$queue_tier_rule_wait_multiply_level', "; $sql .= "queue_tier_rule_no_agent_no_wait = '$queue_tier_rule_no_agent_no_wait', "; $sql .= "queue_timeout_action = '$queue_timeout_action', "; $sql .= "queue_discard_abandoned_after = '$queue_discard_abandoned_after', "; $sql .= "queue_abandoned_resume_allowed = '$queue_abandoned_resume_allowed', "; $sql .= "queue_cid_prefix = '$queue_cid_prefix', "; $sql .= "queue_announce_sound = '$queue_announce_sound', "; if (strlen($queue_announce_frequency) > 0) { $sql .= "queue_announce_frequency = '$queue_announce_frequency', "; } $sql .= "queue_description = '$queue_description' "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "and call_center_queue_uuid = '$call_center_queue_uuid'"; $db->exec(check_sql($sql)); unset($sql); //syncrhonize the configuration save_call_center_xml(); //clear the cache $cache = new cache; $cache->delete("memcache delete dialplan:".$_SESSION["context"]); $_SESSION["message"] = $text['message-update']; } //if ($action == "update") //add agent/tier to queue $agent_name = check_str($_POST["agent_name"]); $tier_level = check_str($_POST["tier_level"]); $tier_position = check_str($_POST["tier_position"]); if ($agent_name != '') { //add the agent //setup the event socket connection $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //add the agent using event socket if ($fp) { //get the domain using the $domain_uuid $tmp_domain = $_SESSION['domains'][$domain_uuid]['domain_name']; /* syntax: callcenter_config tier add [queue_name] [agent_name] [level] [position] callcenter_config tier set state [queue_name] [agent_name] [state] callcenter_config tier set level [queue_name] [agent_name] [level] callcenter_config tier set position [queue_name] [agent_name] [position] */ //add the agent $cmd = "api callcenter_config tier add ".$queue_name."@".$tmp_domain." ".$agent_name."@".$tmp_domain." ".$tier_level." ".$tier_position; $response = event_socket_request($fp, $cmd); usleep(200); //agent set level $cmd = "api callcenter_config tier set level ".$queue_name."@".$tmp_domain." ".$agent_name."@".$tmp_domain." ".$tier_level; $response = event_socket_request($fp, $cmd); usleep(200); //agent set position $cmd = "api callcenter_config tier set position ".$queue_name."@".$tmp_domain." ".$agent_name."@".$tmp_domain." ".$tier_position; $response = event_socket_request($fp, $cmd); usleep(200); } //add tier to database $call_center_tier_uuid = uuid(); $sql = "insert into v_call_center_tiers "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "call_center_tier_uuid, "; $sql .= "agent_name, "; $sql .= "queue_name, "; $sql .= "tier_level, "; $sql .= "tier_position "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".$_SESSION['domain_uuid']."', "; $sql .= "'$call_center_tier_uuid', "; $sql .= "'$agent_name', "; $sql .= "'$queue_name', "; $sql .= "'$tier_level', "; $sql .= "'$tier_position' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //syncrhonize configuration save_call_center_xml(); } //redirect header("Location: call_center_queue_edit.php?id=".$call_center_queue_uuid); return; } //if ($_POST["persistformvar"] != "true") } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) //pre-populate the form if (count($_GET)>0 && $_POST["persistformvar"] != "true") { $call_center_queue_uuid = $_GET["id"]; $sql = "select * from v_call_center_queues "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "and call_center_queue_uuid = '$call_center_queue_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $queue_name = $row["queue_name"]; $database_queue_name = $row["queue_name"]; $queue_extension = $row["queue_extension"]; $queue_strategy = $row["queue_strategy"]; $queue_moh_sound = $row["queue_moh_sound"]; $queue_record_template = $row["queue_record_template"]; $queue_time_base_score = $row["queue_time_base_score"]; $queue_max_wait_time = $row["queue_max_wait_time"]; $queue_max_wait_time_with_no_agent = $row["queue_max_wait_time_with_no_agent"]; $queue_max_wait_time_with_no_agent_time_reached = $row["queue_max_wait_time_with_no_agent_time_reached"]; $queue_timeout_action = $row["queue_timeout_action"]; $queue_tier_rules_apply = $row["queue_tier_rules_apply"]; $queue_tier_rule_wait_second = $row["queue_tier_rule_wait_second"]; $queue_tier_rule_wait_multiply_level = $row["queue_tier_rule_wait_multiply_level"]; $queue_tier_rule_no_agent_no_wait = $row["queue_tier_rule_no_agent_no_wait"]; $queue_discard_abandoned_after = $row["queue_discard_abandoned_after"]; $queue_abandoned_resume_allowed = $row["queue_abandoned_resume_allowed"]; $queue_cid_prefix = $row["queue_cid_prefix"]; $queue_announce_sound = $row["queue_announce_sound"]; $queue_announce_frequency = $row["queue_announce_frequency"]; $queue_description = $row["queue_description"]; } unset ($prep_statement); } //replace the dash in the queue name with a space $queue_name = str_replace("-", " ", $queue_name); //set default values if (strlen($queue_strategy) == 0) { $queue_strategy = "longest-idle-agent"; } if (strlen($queue_moh_sound) == 0) { $queue_moh_sound = "\$\${hold_music}"; } if (strlen($queue_time_base_score) == 0) { $queue_time_base_score = "system"; } if (strlen($queue_max_wait_time) == 0) { $queue_max_wait_time = "0"; } if (strlen($queue_max_wait_time_with_no_agent) == 0) { $queue_max_wait_time_with_no_agent = "90"; } if (strlen($queue_max_wait_time_with_no_agent_time_reached) == 0) { $queue_max_wait_time_with_no_agent_time_reached = "30"; } if (strlen($queue_tier_rules_apply) == 0) { $queue_tier_rules_apply = "false"; } if (strlen($queue_tier_rule_wait_second) == 0) { $queue_tier_rule_wait_second = "30"; } if (strlen($queue_tier_rule_wait_multiply_level) == 0) { $queue_tier_rule_wait_multiply_level = "true"; } if (strlen($queue_tier_rule_no_agent_no_wait) == 0) { $queue_tier_rule_no_agent_no_wait = "true"; } if (strlen($queue_discard_abandoned_after) == 0) { $queue_discard_abandoned_after = "900"; } if (strlen($queue_abandoned_resume_allowed) == 0) { $queue_abandoned_resume_allowed = "false"; } //show the header require_once "resources/header.php"; if ($action == "add") { $document['title'] = $text['title-call_center_queue_add']; } if ($action == "update") { $document['title'] = $text['title-call_center_queue_edit']; } //show the content echo "
\n"; echo "\n"; echo "\n"; if ($action == "add") { echo "\n"; } if ($action == "update") { echo "\n"; } echo "\n"; echo "\n"; echo "
".$text['header-call_center_queue_add']."".$text['header-call_center_queue_edit']."\n"; echo " \n"; if ($action == "update") { echo "    "; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "    "; } 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"; if (permission_exists('call_center_tier_view')) { echo ""; echo " "; echo " "; echo ""; } 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 "\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 "\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 "\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 "
\n"; echo " ".$text['label-queue_name']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-queue_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-strategy']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-strategy']."\n"; echo "
".$text['label-tiers'].""; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; if ($call_center_queue_uuid != '') { //replace the space in the queue name with a dash $db_queue_name = str_replace(" ", "-", $queue_name); $sql = "select * from v_call_center_tiers "; $sql .= "where queue_name = '".$db_queue_name."' "; $sql .= "and domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "order by tier_level asc, tier_position asc, agent_name asc"; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach($result as $field) { echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; $assigned_agents[] = $field['agent_name']; } unset ($prep_statement, $sql, $result); } if (permission_exists('call_center_tier_add')) { //get agents $sql = "select agent_name from v_call_center_agents where domain_uuid = '".$_SESSION['domain_uuid']."' "; foreach($assigned_agents as $assigned_agent) { $sql .= "and agent_name <> '".$assigned_agent."' "; } $sql .= "order by agent_name asc"; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); if (sizeof($result) > 0) { echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; } } echo "
".$text['label-agent_name']."".$text['label-tier_level']."".$text['label-tier_position']."
".$field['agent_name']."".$field['tier_level']." ".$field['tier_position']." "; if (permission_exists('call_center_tier_edit')) { echo "".$v_link_label_edit.""; } if (permission_exists('call_center_tier_delete')) { echo "".$v_link_label_delete.""; } echo "
\n"; echo ""; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " "; echo " \n"; echo "
\n"; echo "
\n"; echo " ".$text['description-tiers']."\n"; echo "
\n"; echo "
\n"; echo " ".$text['label-music_on_hold']."\n"; echo "\n"; $select_options = ""; if ($queue_moh_sound == "tone_stream://\$\${us-ring};loops=-1" || $queue_moh_sound == "us-ring") { $select_options .= " \n"; } else { $select_options .= " \n"; } if ($queue_moh_sound == "tone_stream://\$\${pt-ring};loops=-1" || $queue_moh_sound == "pt-ring") { $select_options .= " \n"; } else { $select_options .= " \n"; } if ($queue_moh_sound == "tone_stream://\$\${fr-ring};loops=-1" || $queue_moh_sound == "fr-ring") { $select_options .= " \n"; } else { $select_options .= " \n"; } if ($queue_moh_sound == "tone_stream://\$\${uk-ring};loops=-1" || $queue_moh_sound == "uk-ring") { $select_options .= " \n"; } else { $select_options .= " \n"; } if ($queue_moh_sound == "tone_stream://\$\${rs-ring};loops=-1" || $queue_moh_sound == "rs-ring") { $select_options .= " \n"; } else { $select_options .= " \n"; } if ($queue_moh_sound == "tone_stream://\$\${it-ring};loops=-1" || $queue_moh_sound == "it-ring") { $select_options .= " \n"; } else { $select_options .= " \n"; } require_once "app/music_on_hold/resources/classes/switch_music_on_hold.php"; $moh= new switch_music_on_hold; $moh->select_name = "queue_moh_sound"; $moh->select_value = $queue_moh_sound; $moh->select_options = $select_options; echo $moh->select(); echo "
\n"; echo $text['description-music_on_hold']."\n"; echo "
\n"; echo " ".$text['label-record_template']."\n"; echo "\n"; $record_ext=($_SESSION['record_ext']=='mp3'?'mp3':'wav'); $record_template = $_SESSION['switch']['recordings']['dir']."/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.".$record_ext; echo " \n"; echo "
\n"; echo $text['description-record_template']."\n"; echo "
\n"; echo " ".$text['label-time_base_score']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-time_base_score']."\n"; echo "
\n"; echo " ".$text['label-max_wait_time']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-max_wait_time']."\n"; echo "
\n"; echo " ".$text['label-max_wait_time_with_no_agent']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-max_wait_time_with_no_agent']."\n"; echo "
\n"; echo " ".$text['label-max_wait_time_with_no_agent_time_reached']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-max_wait_time_with_no_agent_time_reached']."\n"; echo "
\n"; echo " ".$text['label-timeout_action']."\n"; echo "\n"; //switch_select_destination(select_type, select_label, select_name, select_value, select_style, action); switch_select_destination("dialplan", "", "queue_timeout_action", $queue_timeout_action, "", ""); echo "
\n"; echo $text['description-timeout_action']."\n"; echo "
\n"; echo " ".$text['label-tier_rules_apply']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-tier_rules_apply']."\n"; echo "
\n"; echo " ".$text['label-tier_rule_wait_second']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-tier_rule_wait_second']."\n"; echo "
\n"; echo " ".$text['label-tier_rule_wait_multiply_level']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-tier_rule_wait_multiply_level']."\n"; echo "
\n"; echo " ".$text['label-tier_rule_no_agent_no_wait']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-tier_rule_no_agent_no_wait']."\n"; echo "
\n"; echo " ".$text['label-discard_abandoned_after']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-discard_abandoned_after']."\n"; echo "
\n"; echo " ".$text['label-abandoned_resume_allowed']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-abandoned_resume_allowed']."\n"; echo "
\n"; echo " ".$text['label-caller_id_name_prefix']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-caller_id_name_prefix']."\n"; echo "
\n"; echo " ".$text['label-caller_announce_sound']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-caller_announce_sound']."\n"; echo "
\n"; echo " ".$text['label-caller_announce_frequency']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-caller_announce_frequency']."\n"; echo "
\n"; echo " ".$text['label-description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-description']."\n"; echo "
\n"; if ($action == "update") { echo " \n"; echo " "; echo " "; echo " "; } echo "
"; echo " \n"; echo "
"; echo "

"; echo "
"; require_once "resources/footer.php"; ?>