344 lines
11 KiB
PHP
344 lines
11 KiB
PHP
<?php
|
|
/*
|
|
FusionPBX
|
|
Version: MPL 1.1
|
|
|
|
The contents of this file are subject to the Mozilla Public License Version
|
|
1.1 (the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
for the specific language governing rights and limitations under the
|
|
License.
|
|
|
|
The Original Code is FusionPBX
|
|
|
|
The Initial Developer of the Original Code is
|
|
Mark J Crane <markjcrane@fusionpbx.com>
|
|
Portions created by the Initial Developer are Copyright (C) 2008-2012
|
|
the Initial Developer. All Rights Reserved.
|
|
|
|
Contributor(s):
|
|
Mark J Crane <markjcrane@fusionpbx.com>
|
|
*/
|
|
include "root.php";
|
|
require_once "includes/require.php";
|
|
require_once "resources/check_auth.php";
|
|
include "app_languages.php";
|
|
if (permission_exists('extensions_active_view')) {
|
|
//access granted
|
|
}
|
|
else {
|
|
echo "access denied";
|
|
exit;
|
|
}
|
|
|
|
//add multi-lingual support
|
|
foreach($text as $key => $value) {
|
|
$text[$key] = $value[$_SESSION['domain']['language']['code']];
|
|
}
|
|
|
|
//http get and set variables
|
|
$event_type = $_GET['event_type']; //open_window //iframe
|
|
if ($event_type=="iframe") {
|
|
$iframe_width = $_GET['iframe_width'];
|
|
$iframe_height = $_GET['iframe_height'];
|
|
$iframe_postition = $_GET['iframe_postition'];
|
|
if (strlen($iframe_postition) > 0) { $iframe_postition = 'right'; }
|
|
if (strlen($iframe_width) > 0) { $iframe_width = '25%'; }
|
|
if (strlen($iframe_height) > 0) { $iframe_height = '100%'; }
|
|
}
|
|
if (strlen($_GET['url']) > 0) {
|
|
$url = $_GET['url'];
|
|
}
|
|
if (strlen($_GET['rows']) > 0) {
|
|
$rows = $_GET['rows'];
|
|
}
|
|
else {
|
|
$rows = 0;
|
|
}
|
|
|
|
$conference_name = trim($_REQUEST["c"]);
|
|
$tmp_conference_name = str_replace("_", " ", $conference_name);
|
|
|
|
require_once "includes/header.php";
|
|
?><script type="text/javascript">
|
|
<!--
|
|
|
|
//declare variables
|
|
var previous_uuid_1 = '';
|
|
var previous_uuid_2 = '';
|
|
var url = '<?php echo $url; ?>';
|
|
|
|
//define the ajax function
|
|
function loadXmlHttp(url, id) {
|
|
var f = this;
|
|
f.xmlHttp = null;
|
|
/*@cc_on @*/ // used here and below, limits try/catch to those IE browsers that both benefit from and support it
|
|
/*@if(@_jscript_version >= 5) // prevents errors in old browsers that barf on try/catch & problems in IE if Active X disabled
|
|
try {f.ie = window.ActiveXObject}catch(e){f.ie = false;}
|
|
@end @*/
|
|
if (window.XMLHttpRequest&&!f.ie||/^http/.test(window.location.href))
|
|
f.xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari, others, IE 7+ when live - this is the standard method
|
|
else if (/(object)|(function)/.test(typeof createRequest))
|
|
f.xmlHttp = createRequest(); // ICEBrowser, perhaps others
|
|
else {
|
|
f.xmlHttp = null;
|
|
// Internet Explorer 5 to 6, includes IE 7+ when local //
|
|
/*@cc_on @*/
|
|
/*@if(@_jscript_version >= 5)
|
|
try{f.xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
|
|
catch (e){try{f.xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){f.xmlHttp=null;}}
|
|
@end @*/
|
|
}
|
|
if(f.xmlHttp != null){
|
|
f.el = document.getElementById(id);
|
|
f.xmlHttp.open("GET",url,true);
|
|
f.xmlHttp.onreadystatechange = function(){f.stateChanged();};
|
|
f.xmlHttp.send(null);
|
|
}
|
|
}
|
|
|
|
loadXmlHttp.prototype.stateChanged=function () {
|
|
if (this.xmlHttp.readyState == 4 && (this.xmlHttp.status == 200 || !/^http/.test(window.location.href)))
|
|
|
|
document.getElementById('ajax_reponse').innerHTML = this.xmlHttp.responseText;
|
|
|
|
if (document.getElementById('uuid_1')) {
|
|
uuid_1 = document.getElementById('uuid_1').innerHTML;
|
|
}
|
|
else {
|
|
uuid_1 = "";
|
|
}
|
|
|
|
if (document.getElementById('direction_1')) {
|
|
direction_1 = document.getElementById('direction_1').innerHTML;
|
|
}
|
|
else {
|
|
direction_1 = "";
|
|
}
|
|
|
|
if (document.getElementById('cid_name_1')) {
|
|
cid_name_1 = document.getElementById('cid_name_1').innerHTML;
|
|
}
|
|
else {
|
|
cid_name_1 = "";
|
|
}
|
|
|
|
if (document.getElementById('cid_num_1')) {
|
|
cid_num_1 = document.getElementById('cid_num_1').innerHTML;
|
|
}
|
|
else {
|
|
cid_num_1 = "";
|
|
}
|
|
|
|
//get the user_status from the database
|
|
if (document.getElementById('db_user_status')) {
|
|
db_user_status = document.getElementById('db_user_status').innerHTML;
|
|
}
|
|
|
|
if (previous_uuid_1 != uuid_1) {
|
|
if (cid_num_1.length > 6) {
|
|
var new_url = url;
|
|
new_url = new_url.replace("{cid_name}", cid_name_1);
|
|
new_url = new_url.replace("{cid_num}", cid_num_1);
|
|
new_url = new_url.replace("{uuid}", uuid_1);
|
|
previous_uuid_1 = uuid_1;
|
|
<?php
|
|
if ($event_type=="open_window") {
|
|
echo "open_window = window.open(new_url,'width='+window.innerWidth+',height='+window.innerHeight+',left=0px;toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');";
|
|
echo "if (window.focus) {open_window.focus()}\n";
|
|
}
|
|
if ($event_type=="iframe") {
|
|
echo "document.getElementById('iframe1').src = new_url;\n";
|
|
//iframe_postition
|
|
//iframe_width
|
|
//iframe_height
|
|
}
|
|
?>
|
|
}
|
|
else {
|
|
//hangup or initial page load detected
|
|
}
|
|
previous_uuid_1 = uuid_1;
|
|
}
|
|
}
|
|
|
|
var requestTime = function() {
|
|
<?php
|
|
echo "var url = 'calls_active_extensions_inc.php?". $_SERVER["QUERY_STRING"]."';\n";
|
|
echo "new loadXmlHttp(url, 'ajax_reponse');\n";
|
|
if (strlen($_SESSION["ajax_refresh_rate"]) == 0) { $_SESSION["ajax_refresh_rate"] = "900"; }
|
|
echo "setInterval(function(){new loadXmlHttp(url, 'ajax_reponse');}, ".$_SESSION["ajax_refresh_rate"].");";
|
|
?>
|
|
}
|
|
|
|
if (window.addEventListener) {
|
|
window.addEventListener('load', requestTime, false);
|
|
}
|
|
else if (window.attachEvent) {
|
|
window.attachEvent('onload', requestTime);
|
|
}
|
|
|
|
function send_cmd(url) {
|
|
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
|
|
xmlhttp=new XMLHttpRequest();
|
|
}
|
|
else {// code for IE6, IE5
|
|
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
|
|
}
|
|
xmlhttp.open("GET",url,false);
|
|
xmlhttp.send(null);
|
|
document.getElementById('cmd_reponse').innerHTML=xmlhttp.responseText;
|
|
}
|
|
|
|
var record_count = 0;
|
|
var cmd;
|
|
var destination;
|
|
// -->
|
|
</script>
|
|
|
|
<?php
|
|
|
|
echo "<div align='center'>";
|
|
|
|
echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
|
|
echo " <tr>\n";
|
|
echo " <td align='left' colspan='2' nowrap='nowrap'>\n";
|
|
echo " <b>".$text['title-2']."</b><br>\n";
|
|
echo " </td>\n";
|
|
|
|
//get the user status when the page loads
|
|
$sql = "";
|
|
$sql .= "select * from v_users ";
|
|
$sql .= "where domain_uuid = '$domain_uuid' ";
|
|
$sql .= "and username = '".$_SESSION['username']."' ";
|
|
$sql .= "and user_enabled = 'true' ";
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
$prep_statement->execute();
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
foreach ($result as &$row) {
|
|
$user_status = $row["user_status"];
|
|
break; //limit to 1 row
|
|
}
|
|
|
|
if ($_SESSION['user_status_display'] == "false") {
|
|
//hide the user_status when it is set to false
|
|
}
|
|
else {
|
|
echo " <td class='' width='40%'>\n";
|
|
echo " ";
|
|
echo " </td>\n";
|
|
echo " <td class='' valign='bottom' align='right' style='width:200px' nowrap='nowrap'>\n";
|
|
//status list
|
|
echo " ";
|
|
echo " <strong>".$text['label-status']."</strong> \n";
|
|
$cmd = "'calls_exec.php?action=user_status&data='+this.value+'";
|
|
$cmd .= "&cmd=callcenter_config+agent+set+status+".$_SESSION['username']."@".$_SESSION['domain_name']."+'+this.value";
|
|
echo " <select id='agent_status' name='agent_status' class='formfld' style='width:125px' nowrap='nowrap' onchange=\"send_cmd($cmd);\">\n";
|
|
echo " <option value=' '></option>\n";
|
|
if ($user_status == "Available") {
|
|
echo " <option value='Available' selected='selected'>".$text['check-available-status']."</option>\n";
|
|
}
|
|
else {
|
|
echo " <option value='Available'>".$text['check-available-status']."</option>\n";
|
|
}
|
|
if ($user_status == "Available (On Demand)") {
|
|
echo " <option value='Available_On_Demand' selected='selected'>".$text['check-available-on-demand-status']."</option>\n";
|
|
}
|
|
else {
|
|
echo " <option value='Available_On_Demand'>".$text['check-available-on-demand-status']."</option>\n";
|
|
}
|
|
if ($user_status == "Logged Out") {
|
|
echo " <option value='Logged_Out' selected='selected'>".$text['check-loggedout-status']."</option>\n";
|
|
}
|
|
else {
|
|
echo " <option value='Logged_Out'>".$text['check-loggedout-status']."</option>\n";
|
|
}
|
|
if ($user_status == "On Break") {
|
|
echo " <option value='On_Break' selected='selected'>".$text['check-onbreak-status']."</option>\n";
|
|
}
|
|
else {
|
|
echo " <option value='On_Break'>".$text['check-onbreak-status']."</option>\n";
|
|
}
|
|
if ($user_status == "Do Not Disturb") {
|
|
echo " <option value='Do_Not_Disturb' selected='selected'>".$text['check-do-not-disturb-status']."</option>\n";
|
|
}
|
|
else {
|
|
echo " <option value='Do_Not_Disturb'>".$text['check-do-not-disturb-status']."</option>\n";
|
|
}
|
|
echo " </select>\n";
|
|
echo " </td>\n";
|
|
}
|
|
|
|
echo " <td align='right' nowrap='nowrap'>\n";
|
|
echo " ";
|
|
echo " <strong>".$text['label-transfer']."</strong>\n";
|
|
echo " <input type=\"text\" id=\"form_value\" name=\"form_value\" class='formfld' style='width:125px'/>\n";
|
|
echo " </td>\n";
|
|
echo " </tr>\n";
|
|
echo " <tr>\n";
|
|
echo " <td align='left' colspan='99'>\n";
|
|
echo " ".$text['description-2']."\n";
|
|
echo " </td>\n";
|
|
echo " </tr>\n";
|
|
echo "</table>\n";
|
|
|
|
echo "<div id=\"url\"></div>\n";
|
|
echo "<br />\n";
|
|
|
|
echo "<table width='100%' border='0' cellpadding='0' cellspacing='2'>\n";
|
|
echo " <tr class='border'>\n";
|
|
if ($event_type=="iframe") {
|
|
echo " <td align=\"left\" width='".$iframe_width."'>\n";
|
|
}
|
|
else {
|
|
echo " <td align=\"left\" width='100%'>\n";
|
|
}
|
|
echo " <div id=\"ajax_reponse\"></div>\n";
|
|
echo " <div id=\"time_stamp\" style=\"visibility:hidden\">".date('Y-m-d-s')."</div>\n";
|
|
echo " </td>\n";
|
|
|
|
if ($event_type=="iframe") {
|
|
echo "</td>\n";
|
|
echo "<td width='".$iframe_width."' height='".$iframe_height."'>\n";
|
|
echo " <iframe src ='$url' width='100%' id='iframe1' height='100%' frameborder=0>\n";
|
|
echo " <p>Your browser does not support iframes.</p>\n";
|
|
echo " </iframe>\n";
|
|
echo "</td>\n";
|
|
}
|
|
|
|
echo " </tr>";
|
|
echo "</table>";
|
|
echo "</div>\n";
|
|
|
|
echo "<script type=\"text/javascript\">\n";
|
|
echo "<!--\n";
|
|
echo "function get_transfer_cmd(uuid) {\n";
|
|
echo " destination = document.getElementById('form_value').value;\n";
|
|
echo " if (destination.length > 1) { \n";
|
|
echo " cmd = \"uuid_transfer \"+uuid+\" -bleg \"+destination+\" xml ".$_SESSION['user_context']."\";\n";
|
|
echo " }\n";
|
|
echo " else {\n";
|
|
echo " cmd = '';\n";
|
|
echo " alert(\"Please provide a number to transfer the call to.\");\n";
|
|
echo " }\n";
|
|
echo " return escape(cmd);\n";
|
|
echo "}\n";
|
|
echo "\n";
|
|
echo "function get_park_cmd(uuid) {\n";
|
|
echo " cmd = \"uuid_transfer \"+uuid+\" -bleg *6000 xml ".$_SESSION['user_context']."\";\n";
|
|
echo " return escape(cmd);\n";
|
|
echo "}\n";
|
|
echo "\n";
|
|
echo "function get_record_cmd(uuid, prefix, name) {\n";
|
|
echo " cmd = \"uuid_record \"+uuid+\" start ".$_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d")."/\"+uuid+\".wav\";\n";
|
|
echo " return escape(cmd);\n";
|
|
echo "}\n";
|
|
echo "-->\n";
|
|
echo "</script>\n";
|
|
|
|
require_once "includes/footer.php";
|
|
?>
|