• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/call/signaling.php
  • Класс: BitrixImCallSignaling
  • Вызов: Signaling::sendInvite
public function sendInvite(int $senderId, array $toUserIds, $isLegacyMobile, bool $video = false, bool $sendPush = true)
{
	$users = $this->call->getUsers();

	$parentCall = $this->call->getParentId() ? Call::loadWithId($this->call->getParentId()) : null;
	$skipPush = $parentCall ?  $parentCall->getUsers() : [];
	$skipPush = array_flip($skipPush);

	$associatedEntity = $this->call->getAssociatedEntity();
	$isBroadcast = ($associatedEntity instanceof Chat) && $associatedEntity->isBroadcast();

	foreach ($toUserIds as $toUserId)
	{
		$config = [
			'call' => $this->call->toArray((count($toUserIds) == 1 ? $toUserId : 0)),
			'users' => $users,
			'invitedUsers' => $toUserIds,
			'userData' => Util::getUsers($users),
			'senderId' => $senderId,
			'publicIds' => $this->getPublicIds($users),
			'isLegacyMobile' => $isLegacyMobile,
			'video' => $video,
			'logToken' => $this->call->getLogToken($toUserId),
		];
		if (!isset($skipPush[$toUserId]) && $sendPush && !$isBroadcast)
		{
			$push = $this->getInvitePush($senderId, $toUserId, $isLegacyMobile, $video);
		}

		$this->send('Call::incoming', $toUserId, $config, $push);
	}
}