selectquery($query); if (is_array($row)) { $typing = $row['typing']; if (isset($_COOKIE['LiveHelpOperator'])) { if ($status) { // Currently Typing switch($typing) { case 0: // None $result = 2; break; case 1: // Guest Only $result = 3; break; case 2: // Operator Only $result = 2; break; case 3: // Both $result = 3; break; } } else { // Not Currently Typing switch($typing) { case 0: // None $result = 0; break; case 1: // Guest Only $result = 1; break; case 2: // Operator Only $result = 0; break; case 3: // Both $result = 1; break; } } } else { if ($status) { // Currently Typing switch($typing) { case 0: // None $result = 1; break; case 1: // Guest Only $result = 1; break; case 2: // Operator Only $result = 3; break; case 3: // Both $result = 3; break; } } else { // Not Currently Typing switch($typing) { case 0: // None $result = 0; break; case 1: // Guest Only $result = 0; break; case 2: // Operator Only $result = 2; break; case 3: // Both $result = 2; break; } } } // Update the typing status of the specified login id $query = "UPDATE " . $table_prefix . "sessions SET `typing` = '$result' WHERE `id` = '$guest_login_id'"; $SQL->miscquery($query); } } // Check if an operator has accepted the chat request $query = "SELECT `active`, `datetime`, (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(`datetime`)) AS `waiting` FROM " . $table_prefix . "sessions WHERE `id` = '$guest_login_id'"; $row = $SQL->selectquery($query); //error_log("Accept Chat Request : " . $query ."\n" , 3 ,"refresher.log"); if (is_array($row)) { $active = $row['active']; $datetime = $row['datetime']; $waiting = $row['waiting']; } $query = "SELECT id FROM " . $table_prefix ."users u WHERE (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(u.refresh)) < '$connection_timeout_mobile' and ". " device_id <>'' and u.status = '1' "; $mobile_agents_count =0; // error_log("Mobile Agents Available : " . $query ."\n" , 3 ,"refresher.log"); $mobile_agents_count = $SQL->selcount($query); if ($mobile_agents_count > 0) { // error_log("Psuh Agents : " . $mobile_agents_count ."\n" , 3 ,"refresher.log"); include('push-notify.php'); } $session = array(); $session1 = array(); if (isset($domain_id) && isset($_COOKIE[$cookieName])) { $session1 = unserialize($_COOKIE[$cookieName]); }else { $session1 = unserialize($_COOKIE[$cookieName]); } foreach ($session1 as $key => $value) { $session[$key] = $value; } unset($session1); $session['REQUEST'] = $request_id; $session['GUEST_LOGIN_ID'] = $guest_login_id; $session['GUEST_USERNAME'] = $guest_username; $session['SECURITY'] = $security; $session['LANGUAGE'] = LANGUAGE_TYPE; $session['CHARSET'] = CHARSET; if (isset($domain_id)){ $session['DOMAINID'] = $domain_id; }else{ $session['DOMAINID'] = $id_domain; } if($session['MESSAGE'] != $lastMessageID) { writeToLog($guest_login_id."==".$lastMessageID."==".$session['MESSAGE']); } if ($active > 0) { $session['CHATTING'] = 1; } else { $session['CHATTING'] = 0; } if ($active > 0 && $chatting > 0) { /* if ($initalised) { $query = "SELECT `id`, `datetime`, `username`, `message`, `align`, `status` FROM " . $table_prefix . "messages WHERE `session` = '$guest_login_id' AND `status` >= '1' AND `id` > '$guest_message' ORDER BY `datetime`"; } else { $query = "SELECT `id`, `datetime`, `username`, `message`, `align`, `status` FROM " . $table_prefix . "messages WHERE `session` = '$guest_login_id' AND `status` >= '0' AND `id` > '$guest_message' ORDER BY `datetime`"; }*/ $query = "SELECT `id`, `datetime`, `username`, `message`, `align`, `status` FROM " . $table_prefix . "messages WHERE `session` = '$guest_login_id' AND `status` >= '0' AND `id` > '$lastMessageID' And username <> '$guest_username' ORDER BY `datetime`"; $rows = $SQL->selectall($query); if (is_array($rows)) { $messages = array(); $messages = $rows; // Count the total operators in the current conversation $query = "SELECT count(DISTINCT `username`) as cnt FROM " . $table_prefix . "messages WHERE `session` = '$guest_login_id' AND `status` >= '0'"; $row = $SQL->selectquery($query); if (is_array($row)) { $operators = $row['cnt']; } $joined = $total_operators; foreach ($rows as $key => $row) { if (is_array($row)) { $guest_message = $row['id']; // If message datetime is greater than datetime of session // if ((unixtimestamp($row['datetime']) - unixtimestamp($datetime)) > 0) { // if ($operators > 0 && ($operators > $joined)) { $username = $row['username']; $status = $row['status']; // If the username is not equal to the original operator // and the message was from an operator // and the joined conversation system message has not been sent if (($operator_username != $username) && $status > 0) { // Select supporters full name $query = "SELECT `username`, `firstname`, `lastname` FROM " . $table_prefix . "users WHERE `username` = '$username'"; $row = $SQL->selectquery($query); if (is_array($row)) { $first = $row['firstname']; $last = $row['lastname']; if (!($first == '' || $last == '')) { // Send message to notify user they are out of Pending status $message_joined = "$first $last"; } } $joined++; $session['TOTALOPERATORS'] = $operators; } // } // } } } $session['MESSAGE'] = $guest_message; } } if (!isset($session['MESSAGE'])) { $session['MESSAGE'] = $guest_message; } if ($active > 0 && $chatting == 0) { $css = ''; // Select supporters full name $query = "SELECT `username`, `firstname`, `lastname` FROM " . $table_prefix . "users WHERE `id` = '$active'"; $row = $SQL->selectquery($query); if (is_array($row)) { $username = $row['username']; $first = $row['firstname']; $last = $row['lastname']; if (!($first == '' || $last == '')) { // Send message to notify user they are out of Pending status $message = "$first $last"; } } if ($disable_chat_username == true) { $username = ''; } $session['OPERATOR'] = $username; $session['TOTALOPERATORS'] = $total_operators + 1; } if (!isset($session['OPERATOR'])) { $session['OPERATOR'] = $operator_username; } if (!isset($session['TOTALOPERATORS'])) { $session['TOTALOPERATORS'] = $total_operators; } $data = serialize($session); setCookie($cookieName, $data, false, '/', $cookie_domain, $ssl); // HTTP/1.1 header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); // HTTP/1.0 header('Pragma: no-cache'); //header('Content-type: text/html; charset=iso-8859-5'); header('Content-type: text/javascript; charset=' . CHARSET); if ($domain_id > 0) { $lan = $session['LANGUAGE']; //error_log("domain : " . $domain_id . " languaje : " . $lan, 3, "languaje.log"); $query = "select `welcome_message` from " . $table_prefix . "languages_domain where id_domain = $domain_id and code = '$lan'"; $row = $SQL->selectquery($query); if (is_array($row)) { $wel_messg_18 = $row['welcome_message']; } } $language_file = './i18n/' . LANGUAGE_TYPE . '/lang_guest_' . LANGUAGE_TYPE . '.php'; if (file_exists($language_file)) { include($language_file); } else { include('./i18n/en/lang_guest_en.php'); } if (isset($message_joined)) { $message_joined .= ' ' . $joined_conversation_label; $message_joined = addslashes($message_joined); if ($javascript == false) { ?> top.lastMessageID = "" 0 && $chatting == 0) { if ($javascript == false) { ?> ' . $closed_user_message_label . ' ' . $improve_service_label . ' ' . $rate_operator_label . ''); $close = addslashes(''); if ($javascript == false) { ?> selectquery($query); //if (is_array($row)) { $typing = $row['typing']; switch($typing) { case 0: // None $typingresult = 0; break; case 1: // Guest Only $typingresult = 0; break; case 2: // Operator Only $typingresult = 1; break; case 3: // Both $typingresult = 1; break; } //} if (isset($messages)) { if (is_array($messages)) { foreach ($messages as $key => $row) { if (is_array($row)) { $username = $row['username']; $message = $row['message']; $align = $row['align']; $status = $row['status']; //error_log("Refresher:status:".$status."\n", 3, "error.log"); //error_log("Refresher:javascript:".$javascript."\n", 3, "error.log"; if((isset($status)) && ($status != '6') ){ $message = str_replace('<', '<', $message); $message = str_replace('>', '>', $message); $message = preg_replace("/(\r\n|\r|\n)/", '
', $message); }else if((isset($status)) && ($status == '6') ){ $message = preg_replace("/(\r\n|\r|\n)/", ' ', $message); } $message = addslashes($message); //error_log("Refresher:Normaliza:".$message."\n", 3, "error.log"); // Search and replace smilies with images if smilies are on // if ($guest_smilies == true) { // $message = htmlSmilies($message, './pictures/'); // } // Output message if ($status >= 0) { if ($javascript == false) { ?> top.initalisedChat = 1; miscquery($query); if ($javascript == false) { ?>