/** * 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 }