- Модуль: 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);
}
}