Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
 function restartAsterisk()
 {
     global $config;
     $myAsterisk = new Asterisk();
     $myAsterisk->config['asmanager'] = $config['asterisk'];
     $res = $myAsterisk->connect();
     $myAsterisk->Command(" restart now ");
     $myAsterisk->disconnect();
     return;
 }
Example #4
0
/**
*  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;
}