예제 #1
0
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;
}
예제 #2
0
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;
}