public static function UpdateCall($params) { if (!CModule::IncludeModule('crm')) { return false; } CVoxImplantHistory::WriteToLog($params, 'CRM UPDATE TO CALL'); $activity = CCrmActivity::GetByOriginID('VI_' . $params['CALL_ID'], false); if ($activity) { $params = CVoxImplantHistory::PrepereData($params); if (isset($params['DESCRIPTION']) && strlen($params['DESCRIPTION']) > 0) { $description = $params['DESCRIPTION']; } else { if ($params['CALL_DURATION'] > 0) { $description = GetMessage('VI_CRM_CALL_DURATION', array('#DURATION#' => $params['CALL_DURATION_TEXT'])); } else { $description = GetMessage('VI_CRM_CALL_STATUS') . ' ' . $params['CALL_FAILED_REASON']; } } if ($params['INCOMING'] == CVoxImplantMain::CALL_INCOMING) { $portalNumbers = CVoxImplantConfig::GetPortalNumbers(); $portalNumber = isset($portalNumbers[$params['PORTAL_NUMBER']]) ? $portalNumbers[$params['PORTAL_NUMBER']] : ''; if ($portalNumber) { $description = $description . "\n" . GetMessage('VI_CRM_CALL_TO_PORTAL_NUMBER', array('#PORTAL_NUMBER#' => $portalNumber)); } } $arFields = array('DESCRIPTION' => (strlen($activity['DESCRIPTION']) > 0 ? $activity['DESCRIPTION'] . "\n" : '') . $description, 'COMPLETED' => 'Y'); CCrmActivity::Update($activity['ID'], $arFields, false, true, array('REGISTER_SONET_EVENT' => true)); } return true; }