Exemplo n.º 1
0
 /**
  * Returns crm user extension assigned to caller number or null if not assigned user for caller number
  * 
  * @param string $callerNumber
  * @return string
  */
 private function getCrmUserExtension($callerNumber)
 {
     $crmUserExtension = null;
     $callerUserInfo = PBXManager_Record_Model::lookUpRelatedWithNumber($callerNumber);
     if ($callerUserInfo) {
         $callerRecordModel = Vtiger_Record_Model::getInstanceById($callerUserInfo['id']);
         $assignedUser = Users_Record_Model::getInstanceById($callerRecordModel->get('assigned_user_id'), "Users");
         $crmUserExtension = $assignedUser->get('phone_crm_extension');
     }
     return $crmUserExtension;
 }
Exemplo n.º 2
0
 /**
  * Function to process Incoming call request
  * @params <array> incoming call details
  * return Response object
  */
 function processStartupCall($request)
 {
     $connector = $this->getConnector();
     $temp = $request->get('channel');
     $temp = explode("-", $temp);
     $temp = explode("/", $temp[0]);
     $callerNumber = $request->get('callerIdNumber');
     $userInfo = PBXManager_Record_Model::getUserInfoWithNumber($callerNumber);
     if (!$userInfo) {
         $callerNumber = $temp[1];
         if (is_numeric($callerNumber)) {
             $userInfo = PBXManager_Record_Model::getUserInfoWithNumber($callerNumber);
         }
     }
     if ($userInfo) {
         // Outbound Call
         $request->set('Direction', 'outbound');
         if ($request->get('callerIdNumber') == $temp[1]) {
             $to = $request->get('callerIdName');
         } else {
             if ($request->get('callerIdNumber')) {
                 $to = $request->get('callerIdNumber');
             } else {
                 if ($request->get('callerId')) {
                     $to = $request->get('callerId');
                 }
             }
         }
         $request->set('to', $to);
         $customerInfo = PBXManager_Record_Model::lookUpRelatedWithNumber($to);
         $connector->handleStartupCall($request, $userInfo, $customerInfo);
     } else {
         // Inbound Call
         $request->set('Direction', 'inbound');
         $customerInfo = PBXManager_Record_Model::lookUpRelatedWithNumber($request->get('callerIdNumber'));
         $request->set('from', $request->get('callerIdNumber'));
         $connector->handleStartupCall($request, $userInfo, $customerInfo);
     }
 }
Exemplo n.º 3
0
             }
         }
     }
 }
 //Data migrate from old columns to new columns in vtiger_pbxmanager
 $query = 'SELECT * FROM vtiger_pbxmanager';
 $result = $adb->pquery($query, array());
 $params = array();
 $rowCount = $adb->num_rows($result);
 for ($i = 0; $i < $rowCount; $i++) {
     $pbxmanagerid = $adb->query_result($result, $i, 'pbxmanagerid');
     $callfrom = $adb->query_result($result, $i, 'callfrom');
     $callto = $adb->query_result($result, $i, 'callto');
     $timeofcall = $adb->query_result($result, $i, 'timeofcall');
     $status = $adb->query_result($result, $i, 'status');
     $customer = PBXManager_Record_Model::lookUpRelatedWithNumber($callfrom);
     $userIdQuery = $adb->pquery('SELECT userid FROM vtiger_asteriskextensions WHERE asterisk_extension = ?', array($callto));
     $user = $adb->query_result($userIdQuery, $i, 'userid');
     if ($status == 'outgoing') {
         $callstatus = 'outbound';
     } else {
         if ($status == 'incoming') {
             $callstatus = 'inbound';
         }
     }
     //Update query
     $adb->pquery('UPDATE vtiger_pbxmanager SET customer = ? AND user = ? AND totalduration = ? AND callstatus = ? WHERE pbxmanagerid = ?', array($customer, $user, $timeofcall, $callstatus, $pbxmanagerid));
 }
 //Adding PBXManager PostUpdate API's
 //Add user extension field
 $module = Vtiger_Module::getInstance('Users');