Exemplo n.º 1
0
    public function searchIncomingCalls(Vtiger_Request $request){
        $recordModel = PBXManager_Record_Model::getCleanInstance();
        $response = new Vtiger_Response();
        $user = Users_Record_Model::getCurrentUserModel();

        $recordModels = $recordModel->searchIncomingCall();
        // To check whether user have permission on caller record
        if($recordModels){
            foreach ($recordModels as $recordModel){
                // To check whether the user has permission to see contact name in popup
                $recordModel->set('callername', null);
                
                //SalesPlatform.ru begin incoming call for calling user
                if($user->id != $recordModel->get('user')) {
                    continue;
                }
                //SalesPlatform.ru end

                $callerid = $recordModel->get('customer');
                if($callerid){
                    $moduleName = $recordModel->get('customertype');

                    // SalesPlatform.ru begin
                    $callerRecordModel = Vtiger_Record_Model::getInstanceById($callerid, $moduleName);
                    $ownerId = $callerRecordModel->get('assigned_user_id');
                    $recordModel->set('ownername',getUserFullName($ownerId));
                    // SalesPlatform.ru end

                    if(!Users_Privileges_Model::isPermitted($moduleName, 'DetailView', $callerid)){
                        $name = $recordModel->get('customernumber').vtranslate('LBL_HIDDEN','PBXManager');
                        $recordModel->set('callername',$name);
                    }else{
                        $entityNames = getEntityName($moduleName, array($callerid));
                        $callerName = $entityNames[$callerid];
                        $recordModel->set('callername',$callerName);
                    }
                }
                // End
                $direction = $recordModel->get('direction');
                if($direction == 'inbound'){
                    $userid = $recordModel->get('user');
                    if($userid){
                        $entityNames = getEntityName('Users', array($userid));
                        $userName = $entityNames[$userid];
                        $recordModel->set('answeredby',$userName);
                    }
                }
                $recordModel->set('current_user_id',$user->id);
                $calls[] = $recordModel->getData();
            }
        }
        $response->setResult($calls);
        $response->emit();
    }
Exemplo n.º 2
0
 /**
  * Function to handle AGI event
  * @param <Vtiger_Request> $details 
  */
 public function handleStartupCall($details, $userInfo, $customerInfo)
 {
     $current_user = vglobal('current_user');
     $params = $this->prepareParameters($details, self::RINGING_TYPE);
     $direction = $details->get('Direction');
     // To add customer and user information in params
     $params['Customer'] = $customerInfo['id'];
     $params['CustomerType'] = $customerInfo['setype'];
     $params['User'] = $userInfo['id'];
     if ($details->get('from')) {
         $params['CustomerNumber'] = $details->get('from');
     } else {
         if ($details->get('to')) {
             $params['CustomerNumber'] = $details->get('to');
         }
     }
     $params['starttime'] = $details->get('StartTime');
     $params['callstatus'] = "ringing";
     $user = CRMEntity::getInstance('Users');
     $current_user = $user->getActiveAdminUser();
     $recordModel = PBXManager_Record_Model::getCleanInstance();
     $recordModel->saveRecordWithArrray($params);
     if ($direction == self::INCOMING_TYPE) {
         $this->respondToIncomingCall($details);
     } else {
         $this->respondToOutgoingCall($params['CustomerNumber']);
     }
 }