• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_history.php
  • Класс: CVoxImplantHistory
  • Вызов: CVoxImplantHistory::GetMessageForChat
static function GetMessageForChat($callFields, $hasRecord = false, $prependPlus = true)
{
	$result = '';
	if ($callFields["PHONE_NUMBER"] <> '' && $callFields["PORTAL_USER_ID"] > 0 && $callFields["CALL_FAILED_CODE"] != 423)
	{
		$formattedNumber = BitrixMainPhoneNumberParser::getInstance()->parse($callFields["PHONE_NUMBER"])->format();
		$formattedNumber = "[CALL={$formattedNumber}]" . $formattedNumber . "[/CALL]";

		if ($callFields["INCOMING"] == CVoxImplantMain::CALL_OUTGOING)
		{
			if ($callFields['CALL_FAILED_CODE'] == '603-S')
			{
				$result = GetMessage('VI_OUT_CALL_DECLINE_SELF', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 603)
			{
				$result = GetMessage('VI_OUT_CALL_DECLINE', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 486)
			{
				$result = GetMessage('VI_OUT_CALL_BUSY', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 480)
			{
				$result = GetMessage('VI_OUT_CALL_UNAVAILABLE', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 404 || $callFields['CALL_FAILED_CODE'] == 484)
			{
				$result = GetMessage('VI_OUT_CALL_ERROR_NUMBER', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 402)
			{
				$result = GetMessage('VI_OUT_CALL_NO_MONEY', Array('#NUMBER#' => $formattedNumber));
			}
			else
			{
				$result = GetMessage('VI_OUT_CALL_END', Array(
					'#NUMBER#' => $formattedNumber,
					'#INFO#' => '[PCH='.$callFields['ID'].']'.GetMessage('VI_CALL_INFO').'[/PCH]',
				));
			}
		}
		else if ($callFields['INCOMING'] == CVoxImplantMain::CALL_CALLBACK)
		{
			if ($callFields['CALL_FAILED_CODE'] == '603-S')
			{
				$result = GetMessage('VI_CALLBACK_DECLINE_SELF', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 603)
			{
				$result = GetMessage('VI_CALLBACK_DECLINE', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 486)
			{
				$result = GetMessage('VI_CALLBACK_BUSY', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 480)
			{
				$result = GetMessage('VI_CALLBACK_UNAVAILABLE', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 404 || $callFields['CALL_FAILED_CODE'] == 484)
			{
				$result = GetMessage('VVI_CALLBACK_ERROR_NUMBER', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 402)
			{
				$result = GetMessage('VI_CALLBACK_NO_MONEY', Array('#NUMBER#' => $formattedNumber));
			}
			else if ($callFields['CALL_FAILED_CODE'] == 304)
			{
				$subMessage = '[PCH='.$callFields['ID'].']'.GetMessage('VI_CALL_INFO').'[/PCH]';
				$result = GetMessage('VI_CALLBACK_SKIP', Array('#NUMBER#' => $formattedNumber, '#INFO#' => $subMessage));
			}
			else
			{
				$result = GetMessage('VI_CALLBACK_END', Array(
					'#NUMBER#' => $formattedNumber,
					'#INFO#' => '[PCH='.$callFields['ID'].']'.GetMessage('VI_CALL_INFO').'[/PCH]',
				));
			}
		}
		else if($callFields['INCOMING'] == CVoxImplantMain::CALL_INCOMING || $callFields['INCOMING'] == CVoxImplantMain::CALL_INCOMING_REDIRECT)
		{
			if ($callFields['CALL_FAILED_CODE'] == 304)
			{
				if ($hasRecord)
					$subMessage = GetMessage('VI_CALL_VOICEMAIL', Array('#LINK_START#' => '[PCH='.$callFields['ID'].']', '#LINK_END#' => '[/PCH]',));
				else
					$subMessage = '[PCH='.$callFields['ID'].']'.GetMessage('VI_CALL_INFO').'[/PCH]';

				$result = GetMessage('VI_IN_CALL_SKIP', Array(
					'#NUMBER#' => $formattedNumber,
					'#INFO#' => $subMessage,
				));
			}
			else
			{
				$result = GetMessage('VI_IN_CALL_END', Array(
					'#NUMBER#' => $formattedNumber,
					'#INFO#' => '[PCH='.$callFields['ID'].']'.GetMessage('VI_CALL_INFO').'[/PCH]',
				));
			}
		}
	}
	return $result;
}