Esempio n. 1
0
 /**
  * Function to handle the hangup call event
  * @param <Vtiger_Request> $details 
  */
 public function handleHangupCall($details)
 {
     $callid = $details->get('callUUID');
     // SalesPlatform.ru begin
     $userNumber = $details->get('callerIdNum');
     $user = PBXManager_Record_Model::getUserInfoWithNumber($userNumber);
     if (!$user) {
         return;
     }
     $recordModel = PBXManager_Record_Model::getInstanceBySourceUUID($callid, $user);
     //$recordModel = PBXManager_Record_Model::getInstanceBySourceUUID($callid);
     // SalesPlatform.ru end
     $hangupcause = $details->get('causetxt');
     switch ($hangupcause) {
         // If call is successfull
         case 'Normal Clearing':
             $params['callstatus'] = 'completed';
             if ($details->get('HangupCause') == 'NO ANSWER') {
                 $params['callstatus'] = 'no-answer';
             }
             break;
         case 'User busy':
             $params['callstatus'] = 'busy';
             break;
         case 'Call Rejected':
             $params['callstatus'] = 'busy';
             break;
         default:
             $params['callstatus'] = $hangupcause;
             break;
     }
     if ($details->get('EndTime') && $details->get('Duration')) {
         $params['endtime'] = $details->get('EndTime');
         $params['totalduration'] = $details->get('Duration');
     }
     // SalesPlatform.ru begin
     // werpa
     $detailsArr = $details->getAll();
     $params['description'] = 'handleHangupCall:' . json_encode($detailsArr);
     $recordModel->updateCallDetails($params, $user);
     //$recordModel->updateCallDetails($params);
     // SalesPlatform.ru end
 }