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(); }
/** * 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']); } }