• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/sharingconference.php
  • Класс: BitrixCalendarSharingSharingConference
  • Вызов: SharingConference::createConference
private function createConference()
{
	$event = CCalendarEvent::GetList([
		'arFilter' => [
			'ID' => $this->eventLink->getObjectId(),
		],
		'fetchAttendees' => true,
		'checkPermissions' => false,
	]);

	$event = $event[0] ?? false;
	if (
		!$event
		|| !in_array(
			$event['EVENT_TYPE'] ?? null,
			[Dictionary::EVENT_TYPE['shared_crm'], Dictionary::EVENT_TYPE['shared']],
			true
		)
	)
	{
		return false;
	}

	$attendeesId = [];
	$attendeesCodes = $event['ATTENDEE_LIST'] ?? [];
	foreach ($attendeesCodes as $attendee)
	{
		if (
			isset($attendee['id'])
			&& in_array($attendee['status'] ?? null, Dictionary::MEETING_STATUS, true)
			&& $attendee['status'] !== Dictionary::MEETING_STATUS['Host']
		)
		{
			$attendeesId[] = $attendee['id'];
		}
	}

	$conference = BitrixImCallConference::add([
		'USERS' => $attendeesId,
		'TITLE' => $event['NAME'],
	]);

	if ($conference->getErrors())
	{
		return null;
	}

	return $conference;
}