function monitor($channel, $callerid, $action = 'start', $uniqueid = '', $curid, $direction) { //echo $callerid;exit; global $config, $locate; $myAsterisk = new Asterisk(); $objResponse = new xajaxResponse(); $myAsterisk->config['asmanager'] = $config['asterisk']; $res = $myAsterisk->connect(); if (!$res) { $objResponse->addAlert($locate->Translate("failed when connect to AMI")); return $objResponse; } if ($action == 'start') { //$filename = str_replace("/","-",$channel); if ($direction == 'IN') { $filename = $callerid . '-' . $_SESSION['curuser']['extension']; } else { $filename = $_SESSION['curuser']['extension'] . '-' . $callerid; } $filename = $config['asterisk']['monitorpath'] . date('Y/m/d/H/') . $filename; $filename .= '.' . time(); $format = $config['asterisk']['monitorformat']; $mix = false; $res = $myAsterisk->Monitor($channel, $filename, $format, $mix); if ($res['Response'] == 'Error') { return $objResponse; } // 录音信息保存到数据库 astercrm::insertNewMonitor($callerid, $filename, $uniqueid, $format, $curid); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("recording")); $objResponse->addAssign("btnMonitorStatus", "value", "recording"); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("stop_record")); } else { $myAsterisk->StopMontor($channel); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("idle")); $objResponse->addAssign("btnMonitorStatus", "value", "idle"); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("start_record")); } //$objResponse->addAssign("btnMonitor","disabled", false ); return $objResponse; }
function monitor($channel, $callerid, $action = 'start', $uniqueid = '') { global $config; $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'portal'); $myAsterisk = new Asterisk(); $objResponse = new xajaxResponse(); $myAsterisk->config['asmanager'] = $config['asterisk']; $res = $myAsterisk->connect(); if (!$res) { $objResponse->addAlert($locate->Translate("failed when connect to AMI")); return; } if ($action == 'start') { $filename = str_replace("/", "-", $channel); $filename = $config['asterisk']['monitorpath'] . date('Y/m/d/H/') . $filename; $filename .= '.' . time(); $format = $config['asterisk']['monitorformat']; $mix = true; $res = $myAsterisk->Monitor($channel, $filename, $format, $mix); if ($res['Response'] == 'Error') { $objResponse->addAlert($res['Message']); return $objResponse; } // 录音信息保存到数据库 astercrm::insertNewMonitor($callerid, $filename, $uniqueid, $format); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("recording")); $objResponse->addAssign("btnMonitorStatus", "value", "recording"); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("stop_record")); } else { $myAsterisk->StopMontor($channel); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("idle")); $objResponse->addAssign("btnMonitorStatus", "value", "idle"); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("start_record")); } //$objResponse->addAssign("btnMonitor","disabled", false ); return $objResponse; }