• Модуль: xmpp
  • Путь к файлу: ~/bitrix/modules/xmpp/classes/factory_classes/presence.php
  • Класс: CXMPPReceivePresence
  • Вызов: CXMPPReceivePresence::ProcessServerMessage
public function ProcessServerMessage(array $arMessage, $clientDomain = "")
	{
		if (!array_key_exists("presence", $arMessage) || !array_key_exists(".", $arMessage["presence"]))
			return false;

		$type = "available";
		if (array_key_exists("type", $arMessage["presence"]["."]))
			$type = $arMessage["presence"]["."]["type"];
		if ($type == "error")
			return false;

		if (!in_array($type, array("available", "unavailable", "subscribe", "subscribed", "unsubscribe", "unsubscribed", "probe")))
			return CXMPPUtility::GetServerErrorArray("bad-request");

		$recipientJId = "";
		if (array_key_exists("to", $arMessage["presence"]["."]))
			$recipientJId = $arMessage["presence"]["."]["to"];

		$server = CXMPPServer::GetServer();
		if ($recipientJId == '')
			$server->SendAll($arMessage, $clientDomain);
		else
			$server->Send($recipientJId, $arMessage, $clientDomain);

		return true;
	}