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; }