function incomingCalls($myValue) { global $db, $locate, $config; $objResponse = new xajaxResponse(); //print_r($myValue);exit; if ($myValue['direction'] != '') { $call = asterEvent::checkCallStatus($myValue['curid'], $myValue['uniqueid']); #print_r($call);exit; if ($call['status'] == '') { if ($call['hold']['number'] != '') { //print_r($myValue);exit; $curcallerid = $call['hold']['number']; $objResponse->addAssign("divHolding", "innerHTML", '<a href="###" onclick="getContact(' . $call['hold']['number'] . ');">[' . $call['hold']['number'] . ']</a> <a onclick="xajax_turnback(\'' . $call['hold']['channel'] . '\',\'' . $myValue['callerChannel'] . '\');return false;" href="###"><font size="2px">' . $locate->Translate("Turn back") . '</font></a> '); //<a onclick="xajax_holdhangup(\''.$call['hold']['channel'].'\');return false;" href="###"><font size="2px">'.$locate->Translate("Hangup").'</font></a> } else { $curcallerid = $myValue['callerid']; $objResponse->addAssign("divHolding", "innerHTML", ''); } return $objResponse; } elseif ($call['status'] == 'link') { $objResponse->addAssign("btnDial", "disabled", true); $objResponse->addScript("clearSettimePopup();"); if ($myValue['direction'] == 'in' && $myValue['trunkinfoStatus'] == 0) { if ($call['didnumber'] != '') { $didinfo = $locate->Translate("Callee id") . " : <b>" . $call['didnumber'] . "</b>"; $objResponse->addAssign('divDIDinfo', 'innerHTML', $didinfo); } $trunk = split("-", $call['callerChannel']); //print_r($trunk);exit; $info = $info . ' channel: ' . $trunk[0]; // get trunk info $mytrunk = astercrm::getTrunkinfo($trunk[0], $call['didnumber']); if ($mytrunk) { $infomsg = "<strong>" . $mytrunk['trunkname'] . "</strong><br>"; $infomsg .= astercrm::db2html($mytrunk['trunknote']); $objResponse->addAssign('divTrunkinfo', "innerHTML", $infomsg); $objResponse->addAssign('trunkinfo_number', "innerHTML", $mytrunk['trunk_number']); } else { $infomsg = $locate->Translate("no information get for trunk") . ": " . $trunk[0]; $objResponse->addAssign('divTrunkinfo', "innerHTML", $infomsg); $objResponse->addAssign('trunkinfo_number', "innerHTML"); } $objResponse->addAssign('trunkinfoStatus', "value", '1'); if ($config['system']['enable_sms'] == 'callerid' && $myValue['callerid'] != '') { $objResponse->addScript('xajax_SendSmsForm("callerid",' . $myValue['callerid'] . ')'); } else { if ($config['system']['enable_sms'] == 'trunk_number' && $mytrunk['trunk_number'] != '') { $objResponse->addScript('xajax_SendSmsForm("trunk_number",' . $mytrunk['trunk_number'] . ')'); } else { if ($config['system']['enable_sms'] == 'campaign_number' && $result['campaignid'] != '') { $objResponse->addScript('xajax_SendSmsForm("campaign_number",' . $result['campaignid'] . ')'); } } } } if ($myValue['callResultStatus'] != '2') { $result = asterCrm::checkDialedlistCall($myValue['callerid']); //print_r($result);exit; $dialedlistid = $result['id']; //$dialedlistid = $campaign_id = $result['campaignid']; if ($campaign_id != '') { $objResponse->addAssign("dndlist_campaignid", "value", $campaign_id); } else { $objResponse->addAssign("dndlist_campaignid", "value", "0"); } if ($dialedlistid) { $divCallresult = Customer::getCampaignResultHtml($dialedlistid, 'ANSWERED'); //echo $divCallresult;exit; $objResponse->addAssign("divCallresult", "style.display", ""); $objResponse->addAssign("divCallresult", "innerHTML", $divCallresult); $objResponse->addAssign("dialedlistid", "value", $dialedlistid); } else { $objResponse->addAssign("dialedlistid", "value", 0); } $objResponse->addAssign("callResultStatus", "value", '2'); } if ($myValue['extensionStatus'] == 'link') { //already get link event return $objResponse; } // if ($call['callerChannel'] == '' or $call['calleeChannel'] == '') // return $objResponse; $status = "link"; if ($call['hold']['number'] != '') { //print_r($myValue);exit; $curcallerid = $call['consultnum']; $objResponse->addAssign("divHolding", "innerHTML", '<a href="###" onclick="getContact(' . $call['hold']['number'] . ');">[' . $call['hold']['number'] . ']</a> <a onclick="xajax_turnback(\'' . $call['hold']['channel'] . '\',\'' . $myValue['callerChannel'] . '\');return false;" href="###"><font size="2px">' . $locate->Translate("Turn back") . '</font></a> <a onclick="xajax_attendtransfer(\'' . $call['hold']['channel'] . '\',\'' . $myValue['calleeChannel'] . '\');return false;" href="###"><font size="2px">' . $locate->Translate("Transfer") . '</font></a> '); //<a onclick="xajax_holdhangup(\''.$call['hold']['channel'].'\');return false;" href="###"><font size="2px">'.$locate->Translate("Hangup").'</font></a> } else { $curcallerid = $myValue['callerid']; $objResponse->addAssign("divHolding", "innerHTML", ''); } #print_r($myValue);exit; if (!empty($call['srcname']) && $call['srcname'] != 'unknown' && $call['srcname'] != '<unknown>') { $info = $locate->Translate("talking_to") . $curcallerid . ' (' . $call['srcname'] . ') '; } else { $info = $locate->Translate("talking_to") . $curcallerid; } if ($call['queue'] != '') { foreach ($_SESSION['curuser']['campaign_queue'] as $row) { if ($row['queuename'] == $call['queue']) { if ($row['autopause'] == 'checked') { $pagent = ''; if (strstr($call['calleeChannel'], 'agent')) { $pagent = $call['calleeChannel']; } $objResponse->addScript("xajax_queueAgentControl('" . $row['queuename'] . "','pause','" . $row['queue_context'] . "','" . $pagent . "');"); } $objResponse->addAssign("campaignDiv-" . $row['id'], "style.background", 'red'); } } } $objResponse->addAssign("callerChannel", "value", $call['callerChannel']); $objResponse->addAssign("calleeChannel", "value", $call['calleeChannel']); //if chkMonitor be checked or monitor by astercctools btnMonitor must be disabled $configstatus = Common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig); if ($configstatus != -2) { if ($myValue['chkMonitor'] != 'on' && $asterccConfig['system']['force_record'] != 1) { $objResponse->addAssign("btnMonitor", "disabled", false); } } //$objResponse->addAssign("btnMonitor","value", $locate->Translate("start_record") ); astercrm::events($myValue['chkMonitor'] . '-chkMonitor'); astercrm::events($myValue['btnMonitorStatus'] . '-btnMonitorStatus'); //echo $myValue['chkMonitor'];exit; if ($myValue['chkMonitor'] == 'on' && $myValue['btnMonitorStatus'] == 'idle') { $objResponse->addScript("monitor();"); } $objResponse->addAssign("btnHangup", "disabled", false); if (strtoupper($config['system']['transfer_pannel']) == 'ON' && $call['hold']['number'] == '') { $objResponse->addAssign("btnTransfer", "disabled", false); } } elseif ($call['status'] == 'hangup') { if ($call['hold']['number'] != '') { //print_r($myValue);exit; $curcallerid = $call['hold']['number']; $objResponse->addAssign("divHolding", "innerHTML", '<a href="###" onclick="getContact(' . $call['hold']['number'] . ');">[' . $call['hold']['number'] . ']</a> <a onclick="xajax_turnback(\'' . $call['hold']['channel'] . '\',\'' . $myValue['callerChannel'] . '\');return false;" href="###"><font size="2px">' . $locate->Translate("Turn back") . '</font></a> '); //<a onclick="xajax_holdhangup(\''.$call['hold']['channel'].'\');return false;" href="###"><font size="2px">'.$locate->Translate("Hangup").'</font></a> } else { $curcallerid = $myValue['callerid']; $objResponse->addAssign("divHolding", "innerHTML", ''); } // if($call['hold']['channel'] != ''){//检查是否还有onhold的通话,有则呼叫座席进行接回 // // $myAsterisk = new Asterisk(); // $myAsterisk->config['asmanager'] = $config['asterisk']; // $res = $myAsterisk->connect(); // $strChannel = "Local/".$_SESSION['curuser']['extension']."@from-internal/n"; // $myAsterisk->sendCall($strChannel,NULL,NULL,1,'Bridge',$call['hold']['channel'],30,$_SESSION['curuser']['extension'],NULL,$_SESSION['curuser']['accountcode']); // } //$objResponse->addAssign("divCallresult", "style.display", "none"); $objResponse->addAssign("callResultStatus", "value", ""); $objResponse->addAssign('trunkinfoStatus', "value", '0'); //$objResponse->addAssign("divCallresult", "innerHTML", '<input type="radio" value="normal" id="callresult" name="callresult" onclick="updateCallresult(this.value);" checked>'.$locate->Translate("normal").' <input type="radio" value="fax" id="callresult" name="callresult" onclick="updateCallresult(this.value);">'. $locate->Translate("fax").' <input type="radio" value="voicemail" id="callresult" name="callresult" onclick="updateCallresult(this.value);">'. $locate->Translate("voicemail").'<input type="hidden" id="dialedlistid" name="dialedlistid" value="0">'); if ($myValue['chkMonitor'] == 'on' && $myValue['btnMonitorStatus'] == 'recording') { $objResponse->addScript("monitor();"); } $status = 'hang up'; $info = "Hang up call from " . $myValue['callerid']; // $objResponse->addScript('document.title=\'asterCrm\';'); $objResponse->addAssign("uniqueid", "value", ""); $objResponse->addAssign("callerid", "value", ""); $objResponse->addAssign("callerChannel", "value", ''); $objResponse->addAssign("calleeChannel", "value", ''); if (strtoupper($config['system']['transfer_pannel']) == 'ON') { $objResponse->addAssign("btnTransfer", "disabled", true); } //disable monitor $objResponse->addAssign("btnMonitor", "disabled", true); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("idle")); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("start_record")); foreach ($_SESSION['curuser']['campaign_queue'] as $row) { //print_r($row);exit; $objResponse->addAssign("campaignDiv-" . $row['id'], "style.background", ''); } //disable hangup button $objResponse->addAssign("btnHangup", "disabled", true); $objResponse->addAssign('divTrunkinfo', "innerHTML", ''); $objResponse->addAssign('trunkinfo_number', "innerHTML", ''); $objResponse->addAssign('divDIDinfo', 'innerHTML', ''); if ($myValue['btnWorkStatus'] == 'working') { $interval = $_SESSION['curuser']['dialinterval']; $objResponse->addScript("autoDial('{$interval}');"); } $objResponse->addScript("document.getElementById('btnDial').disabled=false;"); $objResponse->addScript("setTimeoutforPopup();"); } $objResponse->addAssign("status", "innerHTML", $status); // $objResponse->addAssign("extensionStatus","value", $status ); $objResponse->addAssign("myevents", "innerHTML", $info); } return $objResponse; }
function incomingCalls($myValue) { global $db, $config; echo $_SESSION['curuser']['country']; exit; $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'portal'); $objResponse = new xajaxResponse(); if ($myValue['direction'] != '') { $call = asterEvent::checkCallStatus($myValue['curid'], $myValue['uniqueid']); if ($call['status'] == '') { return $objResponse; } elseif ($call['status'] == 'link') { if ($myValue['extensionStatus'] == 'link') { //already get link event return $objResponse; } // if ($call['callerChannel'] == '' or $call['calleeChannel'] == '') // return $objResponse; $status = "link"; $info = $locate->Translate("talking_to") . $myValue['callerid']; $objResponse->addAssign("callerChannel", "value", $call['callerChannel']); $objResponse->addAssign("calleeChannel", "value", $call['calleeChannel']); //if chkMonitor be checked or monitor by astercctools btnMonitor must be disabled Common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig); if ($myValue['chkMonitor'] != 'on' && $asterccConfig['system']['force_record'] != 1) { $objResponse->addAssign("btnMonitor", "disabled", false); } //$objResponse->addAssign("btnMonitor","value", $locate->Translate("start_record") ); astercrm::events($myValue['chkMonitor'] . '-chkMonitor'); astercrm::events($myValue['btnMonitorStatus'] . '-btnMonitorStatus'); if ($myValue['chkMonitor'] == 'on' && $myValue['btnMonitorStatus'] == 'idle') { $objResponse->addScript("monitor();"); } $spanCallCtrl = '<input type="button" id="btnCallCtrl" name="btnCallCtrl" value="' . $locate->Translate("Hangup") . '" onclick="hangup();">'; $objResponse->addAssign("spanCallCtrl", "innerHTML", $spanCallCtrl); $objResponse->addAssign("btnTransfer", "disabled", false); } elseif ($call['status'] == 'hangup') { if ($myValue['chkMonitor'] == 'on' && $myValue['btnMonitorStatus'] == 'recording') { $objResponse->addScript("monitor();"); } $status = 'hang up'; $info = $locate->Translate("Hang up call from") . " " . $myValue['callerid']; // $objResponse->addScript('document.title=\'asterCrm\';'); $objResponse->addAssign("uniqueid", "value", ""); $objResponse->addAssign("callerid", "value", ""); $objResponse->addAssign("callerChannel", "value", ''); $objResponse->addAssign("calleeChannel", "value", ''); $objResponse->addAssign("btnTransfer", "disabled", true); //disable monitor $objResponse->addAssign("btnMonitor", "disabled", true); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("idle")); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("start_record")); //disable hangup button $spanCallCtrl = '<input type="button" id="btnCallCtrl" name="btnCallCtrl" value="' . $locate->Translate("Dial") . '" onclick="invite();">'; $objResponse->addAssign("spanCallCtrl", "innerHTML", $spanCallCtrl); $objResponse->addAssign('divTrunkinfo', "innerHTML", ''); $objResponse->addAssign('divDIDinfo', 'innerHTML', ''); if ($myValue['btnWorkStatus'] == 'working') { $interval = $_SESSION['curuser']['dialinterval']; $objResponse->addScript("autoDial('{$interval}');"); } } $objResponse->addAssign("status", "innerHTML", $status); // $objResponse->addAssign("extensionStatus","value", $status ); $objResponse->addAssign("myevents", "innerHTML", $info); } return $objResponse; }