• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
  • Класс: CSiteCheckerTest
  • Вызов: CSiteCheckerTest::check_push_bitrix
function check_push_bitrix()
{
	if (!CModule::IncludeModule('pull'))
		return $this->Result(null, GetMessage("MAIN_NO_PULL_MODULE"));
	if (!CPullOptions::GetPushStatus())
		return $this->Result(null, GetMessage("MAIN_NO_OPTION_PULL"));

	if ($this->arTestVars['check_access_fail'])
		return $this->Result(false, GetMessage("MAIN_SC_NO_EXTERNAL_ACCESS_MOB"));

	$host = 'cloud-messaging.bitrix24.com';
	$POST = 'Action=SendMessage&MessageBody=batch';

	$strRequest  = "";
	$strRequest .= "POST /send/?key=".md5('key')." HTTP/1.1rn";
	$strRequest .= "User-Agent: BitrixCloud SiteCheckerrn";
	$strRequest .= "Host: ".$host."rn";
	$strRequest .= "Content-type: application/x-www-form-urlencodedrn";
	$strRequest .= "Content-length: ".strlen($POST)."rn";
	$strRequest .= "rn".$POST."rn";

	if (!$res = $this->ConnectToHost('ssl://'.$host, 443))
		return false;

	$strRes = mb_strtolower(GetHttpResponse($res, $strRequest, $strHeaders));
	if (strpos($strRes, 'xml version=') !== false)
		return true;

	PrintHTTP($strRequest, $strHeaders, $strRes);
	return $this->Result(false, GetMessage("MAIN_WRONG_ANSWER_PULL"));
}