Exemple #1
0
function viewNote()
{
    $sNoteId = trim(getParameter('view_note_id'));
    if ($sNoteId == '' || is_null($sNoteId)) {
        $response = 'Không có note id!';
        $json = new Services_JSON();
        Header('Content-Type: application/json');
        return $json->encode($response);
    }
    global $arrConf;
    $oCustomer = new getInfoMainConsole();
    $oCustomer->callcenter_db_connect($arrConf['cadena_dsn']);
    $result = $oCustomer->getNote($sNoteId);
    // return json
    if (!$result) {
        $response['content'] = 'Lỗi: ' . $oCustomer->errMsg;
    } else {
        $response['note_id'] = $sNoteId;
        $response['content'] = $result['note'];
        //check permission
    }
    $json = new Services_JSON();
    Header('Content-Type: application/json');
    return $json->encode($response);
}
 function getMonitoring($limit, $offset, $filter_field, $filter_value, $extension, $date_initial, $date_final)
 {
     $where = "";
     $arrParam = array();
     if (isset($filter_field) & $filter_field != "") {
         if ($filter_field == "ext") {
             $where = " AND (channel like 'SIP/{$filter_value}%' OR dstchannel like 'SIP/{$filter_value}%') ";
         } elseif ($filter_field == "userfield") {
             $in_val = strtolower($filter_value);
             switch ($in_val) {
                 case "outgoing":
                     $where = " AND (userfield like 'audio:O%' OR userfield like 'audio:/var/spool/asterisk/monitor/O%') ";
                     break;
                 case "group":
                     $where = " AND (userfield like 'audio:g%' OR userfield like 'audio:/var/spool/asterisk/monitor/g%') ";
                     break;
                 case "queue":
                     $where = " AND (userfield like 'audio:q%' OR userfield like 'audio:/var/spool/asterisk/monitor/q%') ";
                     break;
                 default:
                     $where = " AND userfield REGEXP '[[:<:]]audio:[0-9]' ";
                     break;
             }
         } else {
             $arrParam[] = "{$filter_value}%";
             $where = " AND {$filter_field} like ? AND userfield LIKE 'audio:%' ";
         }
     }
     if (isset($date_initial) & $date_initial != "" && isset($date_final) & $date_final != "") {
         $arrParam[] = $date_initial;
         $arrParam[] = $date_final;
         $where .= " AND (calldate >= ? AND calldate <= ?) ";
     } else {
         $date_initial = date('Y-m-d') . " 00:00:00";
         $date_final = date('Y-m-d') . " 23:59:59";
         $arrParam[] = $date_initial;
         $arrParam[] = $date_final;
         $where .= " AND (calldate >= ? AND calldate <= ?) ";
     }
     if (isset($extension) & $extension != "") {
         $arrParam[] = $extension;
         $arrParam[] = $extension;
         $where .= " AND (src=? OR dst=?)";
     }
     $arrParam[] = $limit;
     $arrParam[] = $offset;
     $query = "SELECT * FROM cdr WHERE userfield <> '' {$where} ORDER BY uniqueid DESC LIMIT ? OFFSET ?";
     $result = $this->_DB->fetchTable($query, true, $arrParam);
     if ($result == FALSE) {
         $this->errMsg = $this->_DB->errMsg;
         return false;
     }
     //tri
     require_once "modules/agent_console/getinfo.php";
     $oMainConsole = new getInfoMainConsole();
     $oMainConsole->callcenter_db_connect($this->getConfig());
     $index = 0;
     foreach ($result as $row) {
         // get note
         $arr_note = $oMainConsole->getNoteCdr($row['uniqueid']);
         // get delivery info
         $arrDelivery = $oMainConsole->getDeliveryCdr($row['uniqueid']);
         $result[$index]['note_id'] = $arr_note['call_entry_id'];
         $result[$index]['note'] = $arr_note['note'];
         $result[$index]['delivery_id'] = count($arrDelivery) > 0 ? $arrDelivery['id'] : null;
         $index++;
     }
     $oMainConsole->callcenter_db_disconnect();
     return $result;
 }
Exemple #3
0
function contructQueueWaitingJSON($arr)
{
    /* use for query customer info */
    $oCustomer = new getInfoMainConsole();
    $arrResult = $arr;
    foreach ($arr as $key => $value) {
        $vip = '1';
        $phone1 = $arr[$key]['phone_number'];
        $phone2 = is_null($oCustomer->getCustomerName($phone1)) ? $phone1 : $oCustomer->getCustomerName($phone1);
        $arrResult[$key]['phone_number'] = '<span title="' . $phone1 . '">' . $phone2 . '</span>';
        //$arrResult[$key]['wait_time'] = timestamp_format($arrResult[$key]['wait_time']);
        $arrResult[$key]['vip'] = $vip;
    }
}
Exemple #4
0
function addCustomer()
{
    $response = array('action' => 'addCustomer', 'message' => 'Lưu khách hàng thành công');
    $sNumber = trim(getParameter('phone'));
    $arrNumber = explode("\n", $sNumber);
    foreach ($arrNumber as $row) {
        if ($row == '' || is_null($row) || !is_numeric($row)) {
            $response['action'] = 'error';
            $response['message'] = 'Thêm khách hàng: Số điện thoại không được rỗng và chỉ ký tự số!';
            $json = new Services_JSON();
            Header('Content-Type: application/json');
            return $json->encode($response);
        }
    }
    global $arrConf;
    $oCustomer = new getInfoMainConsole();
    $oCustomer->callcenter_db_connect($arrConf['cadena_dsn']);
    // collect parameters
    $sFirstname = isset($_POST['firstname']) ? trim(getParameter('firstname')) : '';
    $sLastname = isset($_POST['lastname']) ? trim(getParameter('lastname')) : '';
    $sBirthday = isset($_POST['birthday']) ? date("Y-m-d", strtotime(trim(getParameter('birthday')))) : '';
    $sBirthplace = isset($_POST['birthplace']) ? trim(getParameter('birthplace')) : '';
    $sAddress = isset($_POST['address']) ? trim(getParameter('address')) : '';
    $sCmnd = isset($_POST['cmnd']) ? trim(getParameter('cmnd')) : '';
    $sPassport = isset($_POST['passport']) ? trim(getParameter('passport')) : '';
    $sId = isset($_POST['id']) ? trim(getParameter('id')) : '';
    $sMembership = isset($_POST['membership']) ? trim(getParameter('membership')) : '';
    $agentid = $oCustomer->getAgentId($_SESSION['callcenter']['extension']);
    $sEmail = isset($_POST['email']) ? trim(getParameter('email')) : '';
    $params = array($arrNumber, $sFirstname, $sLastname, $sBirthday, $sBirthplace, $sAddress, $sCmnd, $sPassport, $sMembership, $sEmail, $agentid);
    //tri working
    $result = $oCustomer->addCustomer($params, $sId);
    $oCustomer->callcenter_db_disconnect();
    // return json
    if (!$result) {
        $response['action'] = 'error';
        $response['message'] = 'Lỗi: ' . $oCustomer->errMsg;
    }
    $json = new Services_JSON();
    Header('Content-Type: application/json');
    return $json->encode($response);
}
 function getMonitoring($limit, $offset, $filter_field, $filter_value, $extension, $date_initial, $date_final)
 {
     $where = "";
     $arrParam = array();
     if (isset($filter_field) & $filter_field != "") {
         if ($filter_field == "ext") {
             $where = " AND (channel like 'SIP/{$filter_value}%' OR dstchannel like 'SIP/{$filter_value}%') ";
         } elseif ($filter_field == "userfield") {
             $in_val = strtolower($filter_value);
             switch ($in_val) {
                 case "outgoing":
                     $where = " AND (userfield like 'audio:O%' OR userfield like 'audio:/var/spool/asterisk/monitor/O%') ";
                     break;
                 case "group":
                     $where = " AND (userfield like 'audio:g%' OR userfield like 'audio:/var/spool/asterisk/monitor/g%') ";
                     break;
                 case "queue":
                     $where = " AND (userfield like 'audio:q%' OR userfield like 'audio:/var/spool/asterisk/monitor/q%') ";
                     break;
                 default:
                     $where = " AND userfield REGEXP '[[:<:]]audio:[0-9]' ";
                     break;
             }
         } else {
             $arrParam[] = "{$filter_value}%";
             $where = " AND {$filter_field} like ? ";
         }
     }
     if (isset($date_initial) & $date_initial != "" && isset($date_final) & $date_final != "") {
         $arrParam[] = $date_initial;
         $arrParam[] = $date_final;
         $where .= " AND (calldate >= ? AND calldate <= ?) ";
     } else {
         $date_initial = date('Y-m-d') . " 00:00:00";
         $date_final = date('Y-m-d') . " 23:59:59";
         $arrParam[] = $date_initial;
         $arrParam[] = $date_final;
         $where .= " AND (calldate >= ? AND calldate <= ?) ";
     }
     if (isset($extension) & $extension != "") {
         $arrParam[] = $extension;
         $arrParam[] = $extension;
         $where .= " AND (src=? OR dst=?)";
     }
     $arrParam[] = $limit;
     $arrParam[] = $offset;
     $query = "SELECT * FROM cdr WHERE 1 = 1 {$where} ORDER BY uniqueid DESC LIMIT ? OFFSET ?";
     $result = $this->_DB->fetchTable($query, true, $arrParam);
     if ($result == FALSE) {
         $this->errMsg = $this->_DB->errMsg;
         return false;
     }
     //tri
     require_once "modules/agent_console/getinfo.php";
     $oMainConsole = new getInfoMainConsole();
     $oMainConsole->callcenter_db_connect($this->getConfig());
     $index = 0;
     foreach ($result as $row) {
         // get note
         $arr_note = $oMainConsole->getNoteCdr($row['uniqueid']);
         // get delivery info
         //$arrDelivery = $oMainConsole->getDeliveryCdr($row['uniqueid']);
         $result[$index]['note_id'] = $arr_note['call_entry_id'];
         $result[$index]['note'] = $arr_note['note'];
         $namefile = basename($result[$index]['userfield']);
         $namefile = str_replace("audio:", "", $namefile);
         // handle all situations
         switch ($result[$index]['dcontext']) {
             case 'from-internal-xfer':
                 break;
             case 'from-did-direct':
                 if ($result[$index]['userfield'] == '') {
                     $filename = $this->checkFile(date('Ymd-His', strtotime($result[$index]['calldate'])) . '-' . $result[$index]['uniqueid'] . 'gsm');
                     if (is_null($filename)) {
                         $result[$index]['userfield'] = '';
                     }
                     $result[$index]['userfield'] = "audio:" . $filename;
                     break;
                 }
                 break;
             case 'from-internal':
                 // in case no audio file
                 if ($result[$index]['userfield'] == '') {
                     $filename = $this->checkFile(date('Ymd-His', strtotime($result[$index]['calldate'])) . '-' . $result[$index]['uniqueid'] . 'gsm');
                     if (is_null($filename)) {
                         $result[$index]['userfield'] = '';
                     }
                     $result[$index]['userfield'] = "audio:" . $filename;
                     break;
                 }
                 if (substr($namefile, 0, 1) == 'q') {
                     $result[$index]['userfield2'] = $result[$index]['userfield'];
                     $filename = $this->checkFile(date('Ymd-His', strtotime($result[$index]['calldate'])) . '-' . $result[$index]['uniqueid'] . '.gsm');
                     if (is_null($filename)) {
                         $result[$index]['userfield'] = '';
                     } else {
                         $result[$index]['userfield'] = "audio:" . $filename;
                     }
                     $result[$index]['dcontext'] = 'from-internal-xfer';
                     break;
                 }
                 if (!strpos($result[$index]['userfield'], $result[$index]['uniqueid'])) {
                     $filename = $this->checkFile(date('Ymd-His', strtotime($result[$index]['calldate'])) . '-' . $result[$index]['uniqueid'] . '.gsm');
                     if (is_null($filename)) {
                         $result[$index]['userfield'] = '';
                     }
                     $result[$index]['userfield'] = "audio:" . $filename;
                     break;
                 }
                 break;
             case 'ext-queues':
                 if (!strpos($result[$index]['userfield'], $result[$index]['uniqueid'])) {
                     $filename = $this->checkFile("q" . $result[$index]['dst'] . "-" . date('Ymd-His', strtotime($result[$index]['calldate'])) . '-' . $result[$index]['uniqueid'] . '.gsm');
                     $result[$index]['userfield'] = "audio:/var/spool/asterisk/monitor/" . $filename;
                     break;
                 }
                 break;
             default:
                 break;
         }
         $index++;
     }
     $oMainConsole->callcenter_db_disconnect();
     return $result;
 }
Exemple #6
0
function viewDelivery()
{
    $response = array('action' => 'viewDelivery', 'message' => '(no message)');
    $ticket_id = getParameter('view_delivery_id');
    global $arrConf;
    $oMainConsole = new getInfoMainConsole();
    $oMainConsole->callcenter_db_connect($arrConf['cadena_dsn']);
    $delivery = $oMainConsole->getDeliveryById($ticket_id);
    $oMainConsole->callcenter_db_disconnect();
    if (!$result) {
        $response['action'] = 'error';
        $response['message'] = 'Lỗi: ' . $oMainConsole->errMsg;
    }
    //return json
    $response['message'] = $delivery;
    $json = new Services_JSON();
    Header('Content-Type: application/json');
    return $json->encode($response);
}
Exemple #7
0
function manejarSesionActiva_showCallHistory()
{
    $respuesta = array('action' => 'show_call_history', 'message' => '(no message)');
    $oCallHistory = new getInfoMainConsole();
    $bSuccess = $oCallHistory->getCallHistoryArray();
    if (!$bSuccess) {
        $respuesta['action'] = 'error';
        $respuesta['message'] = 'Error when getting history call: ' . $oCallHistory->errMsg;
    } else {
        $respuesta['message'] = $bSuccess;
    }
    $json = new Services_JSON();
    Header('Content-Type: application/json');
    return $json->encode($respuesta);
}