function requireReasionWhenPause($f) { global $locate, $config, $db; $agent = $f['require_reasion_agent']; $queueno = $f['require_reasion_queueno']; $context = $f['require_reasion_context']; $objResponse = new xajaxResponse(); //add a record to table pause_reasion $saveResult = Customer::savePauseReasion($f['require_reasion_queueno'], 'pause', $f['require_reasion']); if (!$saveResult) { $objResponse->addAlert('Save Pause Reasion Failed'); } else { $objResponse->addAssign("formRequiredReasionDiv", "style.visibility", 'hidden'); $objResponse->addAssign("formRequiredReasionDiv", "innerHTML", ''); $myAsterisk = new Asterisk(); $myAsterisk->config['asmanager'] = $config['asterisk']; $res = $myAsterisk->connect(); $action = 'pause'; if ($agent == '') { if ($context == '') { if ($_SESSION['curuser']['group']['incontext'] != '') { $context = $_SESSION['curuser']['group']['incontext']; } else { $context = $config['system']['incontext']; } } $agentstr = 'Local/' . $_SESSION['curuser']['extension'] . '@' . $context . '/n'; } else { $agentstr = $agent; } if ($action == 'pause') { if ($_SESSION['asterisk']['paramdelimiter'] == '|') { $res = $myAsterisk->queuePause($queueno, $agentstr, 1); } else { $cmd = "queue pause member {$agentstr} queue {$queueno}"; } } else { if ($action == 'pausea') { $agentstr = 'Agent/' . $_SESSION['curuser']['agent']; if ($_SESSION['asterisk']['paramdelimiter'] == '|') { $res = $myAsterisk->queuePause($queueno, $agentstr, 1); } else { $cmd = "queue pause member {$agentstr} queue {$queueno}"; } } else { if ($action == 'pausec') { if ($_SESSION['asterisk']['paramdelimiter'] == '|') { $res = $myAsterisk->queuePause($queueno, $agentstr, 1); } else { $cmd = "queue pause member {$agentstr} queue {$queueno}"; } } } } if (!empty($cmd)) { $res = $myAsterisk->Command($cmd); } if (strstr($res['data'], 'failed')) { if ($action == 'pausea') { $action == 'pause'; } elseif ($action == 'continuea') { $action == 'continue'; } $objResponse->addAlert($locate->translate($action) . ' ' . $locate->translate('failed')); } else { $sql = "SELECT * FROM campaign WHERE queuename = '" . $queueno . "' AND groupid='" . $_SESSION['curuser']['groupid'] . "' AND enable= 1"; $res =& $db->query($sql); while ($res->fetchInto($row)) { if ($action == 'pause') { $objResponse->addAssign("campaign-pause-" . $row['id'], "innerHTML", '[' . $locate->translate('continue') . ']'); $objResponse->addAssign("campaign-pause-" . $row['id'], "title", 'continue'); $objResponse->addAssign("campaign-" . $row['id'], "style.color", '#30569D'); } elseif ($action == 'pausea') { $objResponse->addAssign("campaign-pause-" . $row['id'], "innerHTML", '[' . $locate->translate('continue') . ']'); $objResponse->addAssign("campaign-pause-" . $row['id'], "title", 'continuea'); $objResponse->addAssign("campaign-" . $row['id'], "style.color", '#30569D'); } elseif ($action == 'pausec') { $objResponse->addAssign("campaign-pause-" . $row['id'], "innerHTML", '[' . $locate->translate('continue') . ']'); $objResponse->addAssign("campaign-pause-" . $row['id'], "title", 'continuec'); $objResponse->addAssign("campaign-" . $row['id'], "style.color", '#30569D'); } } } $objResponse->addAssign("clkPauseTime", "value", date("Y-m-d H:i:s")); } return $objResponse; }
function agentPause($agent, $queueno = '', $action) { global $locate, $config; $myAsterisk = new Asterisk(); $myAsterisk->config['asmanager'] = $config['asterisk']; $res = $myAsterisk->connect(); if (!$res) { return; } if ($action == 'pause') { if ($config['system']['require_reason_when_pause'] == 'yes') { savePauseReasion($agent, $queueno, $action, 'admin pause'); } if ($_SESSION['asterisk']['paramdelimiter'] == '|') { $res = $myAsterisk->queuePause($queueno, $agent, 1); } else { $cmd = "queue pause member {$agent} queue {$queueno}"; $res = $myAsterisk->Command($cmd); } } else { if ($config['system']['require_reason_when_pause'] == 'yes') { savePauseToContinue($agent, $queueno); } if ($_SESSION['asterisk']['paramdelimiter'] == '|') { $res = $myAsterisk->queuePause($queueno, $agent, 0); } else { $cmd = "queue unpause member {$agent} queue {$queueno}"; $res = $myAsterisk->Command($cmd); } } $objResponse = new xajaxResponse(); $objResponse->addAssign("updated", "value", date("Y-m-d H:i:s")); return $objResponse; }
function restartAsterisk() { global $config; $myAsterisk = new Asterisk(); $myAsterisk->config['asmanager'] = $config['asterisk']; $res = $myAsterisk->connect(); $myAsterisk->Command(" restart now "); $myAsterisk->disconnect(); return; }
/** * function to verify user data * * @param $aFormValues (array) login form data $aFormValues['username'] $aFormValues['password'] $aFormValues['locate'] * @return $objResponse * @session $_SESSION['curuser']['username'] $_SESSION['curuser']['extension'] $_SESSION['curuser']['extensions'] $_SESSION['curuser']['country'] $_SESSION['curuser']['language'] $_SESSION['curuser']['channel'] $_SESSION['curuser']['accountcode'] */ function processAccountData($aFormValues) { global $db, $locate, $config; $objResponse = new xajaxResponse(); $bError = false; $loginError = false; list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']); $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'login'); /* check whether the pear had been installed */ $pear_exists_result = class_exists('PEAR'); if (empty($pear_exists_result)) { $objResponse->addAlert($locate->Translate("Please install php pear")); return $objResponse; } if (!$bError) { //$query = "SELECT * FROM account WHERE username='******'username'] . "'"; //$res = $db->query($query); $row = astercrm::getRecordByField("username", $aFormValues['username'], "astercrm_account"); if ($row['id'] != '') { if ($row['password'] == $aFormValues['password']) { $identity = astercrm::calculateAgentOntime('login', trim($aFormValues['username'])); if ($identity) { $update = astercrm::updateAgentOnlineTime('login', date('Y-m-d H:i:s'), $row['id']); } if ($aFormValues['rememberme'] == "forever") { // set cookies for three years setcookie("username", $aFormValues['username'], time() + 94608000); setcookie("password", $aFormValues['password'], time() + 94608000); setcookie("language", $aFormValues['locate'], time() + 94608000); } else { // destroy cookies setcookie("username", "", time() - 3600); setcookie("password", "", time() - 3600); setcookie("language", "", time() - 3600); $username = ''; $password = ''; $language = 'en_US'; $checked = false; } $_SESSION = array(); $_SESSION['curuser']['username'] = trim($aFormValues['username']); $_SESSION['curuser']['extension'] = $row['extension']; $_SESSION['curuser']['usertype'] = $row['usertype']; $_SESSION['curuser']['usertype_id'] = $row['usertype_id']; $_SESSION['curuser']['accountid'] = $row['id']; $_SESSION['curuser']['accountcode'] = $row['accountcode']; $_SESSION['curuser']['agent'] = $row['agent']; $_SESSION['curuser']['callerid'] = trim($row['callerid']); $_SESSION['curuser']['update_online_interval'] = date("Y-m-d H:i:s"); // added by solo 2007-10-90 $_SESSION['curuser']['channel'] = $row['channel']; $_SESSION['curuser']['extensions'] = array(); $_SESSION['curuser']['groupid'] = $row['groupid']; $privilege = array(); if ($row['usertype_id'] > 0) { $privileges = $db->getAll("SELECT * FROM user_privileges WHERE user_type_id='" . $row['usertype_id'] . "'"); foreach ($privileges as $p) { $privilege[$p['page']][$p['action']] = 1; } } $_SESSION['curuser']['privileges'] = $privilege; if ($row['extensions'] != '') { $_SESSION['curuser']['extensions'] = split(',', $row['extensions']); } //check extensions if exists in account table foreach ($_SESSION['curuser']['extensions'] as $key => $value) { $exten_row = astercrm::getRecordByField("username", $value, "astercrm_account"); if ($exten_row['id'] == '') { unset($_SESSION['curuser']['extensions'][$key]); } } // if it's a group admin, then add all group extension to it if ($row['usertype'] == 'groupadmin' || is_array($_SESSION['curuser']['privileges']['systemstatus']) || is_array($_SESSION['curuser']['privileges']['import'])) { $_SESSION['curuser']['memberExtens'] = array(); $_SESSION['curuser']['memberNames'] = array(); $_SESSION['curuser']['memberAgents'] = array(); $groupList = astercrm::getGroupMemberListByID($row['groupid']); while ($groupList->fetchInto($groupRow)) { $_SESSION['curuser']['memberExtens'][] = $groupRow['extension']; $_SESSION['curuser']['memberNames'][] = $groupRow['username']; if ($groupRow['agent'] != '') { $_SESSION['curuser']['memberAgents'][] = $groupRow['agent']; } } } list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']); // get group information $_SESSION['curuser']['group'] = astercrm::getRecordByField("groupid", $row['groupid'], "astercrm_accountgroup"); if ($row['dialinterval'] != 0) { $_SESSION['curuser']['dialinterval'] = $row['dialinterval']; } else { $row_group = astercrm::getRecordByField("groupid", $row['groupid'], "astercrm_accountgroup"); $_SESSION['curuser']['dialinterval'] = $_SESSION['curuser']['group']['agentinterval']; } if ($_SESSION['curuser']['groupid'] > 0) { $sql = "SELECT id,campaignname,queuename,queue_context,use_ext_chan FROM campaign WHERE queuename != '' AND groupid='" . $_SESSION['curuser']['groupid'] . "' AND enable= 1 ORDER BY queuename ASC"; $result =& $db->query($sql); $dataArray = array(); while ($row = $result->fetchRow()) { $dataArray[$row['id']] = $row; } $_SESSION['curuser']['campaign_queue'] = $dataArray; } /* if you dont want check manager status and show device status when user login please uncomment these three line */ //$objResponse->addAlert($locate->Translate("Login success")); // if($_SESSION['curuser']['agent'] != ''){ // $msg = $locate->Translate("choose user mode"); // $objResponse->addScript("selectmode('".$msg."')"); // return $objResponse; // } //$_SESSION['error_report'] = $config['error_report']['error_report_level']; //$objResponse->addScript('window.location.href="portal.php";'); //return $objResponse; //check AMI connection $myAsterisk = new Asterisk(); $myAsterisk->config['asmanager'] = $config['asterisk']; $res = $myAsterisk->connect(); //$html .= $locate->Translate("server_connection_test"); if ($res) { //$html .= '<font color=green>'.$locate->Translate("pass").'</font><br>'; //$html .= '<b>'.$_SESSION['curuser']['extension'].' '.$locate->Translate("device_status").'</b><br>'; //$html .= asterisk::getPeerIP($_SESSION['curuser']['extension']).'<br>'; //$html .= asterisk::getPeerStatus($_SESSION['curuser']['extension']).'<br>'; $v = $myAsterisk->Command("core show version"); $v = explode(' ', $v['data']); $version = $v['2']; $_SESSION['asterisk']['version'] = $version; $version_arr = split('\\.', $version); if ($version_arr['1'] > 4) { $_SESSION['asterisk']['paramdelimiter'] = ','; } else { $_SESSION['asterisk']['paramdelimiter'] = '|'; } } else { $_SESSION['asterisk']['paramdelimiter'] = '|'; //$html .= '<font color=red>'.$locate->Translate("no_pass").'</font>'; } $_SESSION['error_report'] = $config['error_report']['error_report_level']; //clear socket_url session to $_SESSION['socket_url_flag'] = 'yes'; $objResponse->addScript('window.location.href="portal.php";'); return $objResponse; $html .= '<input type="button" value="' . $locate->Translate("continue") . '" id="btnContinue" name="btnContinue" onclick="window.location.href=\'portal.php\';">'; $objResponse->addAssign("formDiv", "innerHTML", $html); $objResponse->addClear("titleDiv", "innerHTML"); $objResponse->addScript("xajax.\$('btnContinue').focus();"); } else { $loginError = true; } } else { $loginError = true; } if (!$loginError) { return $objResponse; } else { $objResponse->addAlert($locate->Translate("login_failed")); $objResponse->addAssign("loginButton", "value", $locate->Translate("Submit")); $objResponse->addAssign("loginButton", "disabled", false); return $objResponse; } } else { $objResponse->addAssign("loginButton", "value", $locate->Translate("Submit")); $objResponse->addAssign("loginButton", "disabled", false); } return $objResponse; }