• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/contactcenter.php
  • Класс: BitrixIntranetContactCenter
  • Вызов: ContactCenter::voximplantGetItems
public function voximplantGetItems($filter = [])
{
	$result = new Result();
	$module = "voximplant";
	$itemsList = [];

	if (!Loader::includeModule($module))
	{
		$result->addError(new Error(Loc::getMessage("CONTACT_CENTER_ERROR_MODULE_NOT_LOADED", array("#MODULE_ID" => $module)), self::CC_MODULE_NOT_LOADED));
	}
	else
	{
		$canCall = true;
		if (!isset($filter["CHECK_REGION"]) || $filter["CHECK_REGION"] !== "N")
		{
			if (Loader::includeModule("bitrix24"))
			{
				$licensePrefix = CBitrix24::getLicensePrefix();
				$canCall = $licensePrefix !== "by";
			}
		}

		if ($canCall)
		{
			$lines = CVoxImplantConfig::GetLines(true, true);
			$selected = count($lines) > 0;
			$isAddItemToList = $this->isAddItemToList($filter["ACTIVE"] ?? null, $selected);

			if ($isAddItemToList)
			{
				$itemsList["voximplant"] = [
					"NAME" => Loc::getMessage("CONTACT_CENTER_TELEPHONY"),
					"LINK" => CUtil::JSEscape(SITE_DIR . "telephony/index.php"),
					"SELECTED" => $selected,
					"LOGO_CLASS" => "ui-icon ui-icon-service-call"
				];

				$permissions = BitrixVoximplantSecurityPermissions::createWithCurrentUser();
				if(Limits::canRentMultiple() && $permissions->canModifyLines())
				{
					Extension::load(["voximplant.numberrent"]);
					$canManageTelephony = (
						!method_exists(BitrixVoximplantLimits::class,"canManageTelephony")
						|| Limits::canManageTelephony()
					);
					$itemsList["voximplant_rent5"] = [
						"NAME" => Loc::getMessage("CONTACT_CENTER_RENT_5_NUMBERS"),
						"ONCLICK" => $canManageTelephony ?
							"BX.Voximplant.NumberRent.create({packetSize: 5}).show();"
							: "BX.Voximplant.openLimitSlider('limit_contact_center_telephony_number_rent');",
						"SELECTED" => CVoxImplantPhone::hasRentedNumberPacket(5),
						"LOGO_CLASS" => "ui-icon ui-icon-package-numbers-five"

					];
					$itemsList["voximplant_rent10"] = [
						"NAME" => Loc::getMessage("CONTACT_CENTER_RENT_10_NUMBERS"),
						"ONCLICK" => $canManageTelephony ?
							"BX.Voximplant.NumberRent.create({packetSize: 10}).show();"
							: "BX.Voximplant.openLimitSlider('limit_contact_center_telephony_number_rent');",
						"SELECTED" => CVoxImplantPhone::hasRentedNumberPacket(10),
						"LOGO_CLASS" => "ui-icon ui-icon-package-numbers-ten"
					];
				}
			}
		}
	}

	$result->setData($itemsList);

	return $result;
}