• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_rest.php
  • Класс: CVoxImplantRestService
  • Вызов: CVoxImplantRestService::sipAdd
static function sipAdd($arParams, $nav, $server)
{
	$permissions = SecurityPermissions::createWithCurrentUser();
	if (!$permissions->canPerform(SecurityPermissions::ENTITY_LINE, SecurityPermissions::ACTION_MODIFY))
	{
		throw new BitrixRestAccessException();
	}

	$arParams = array_change_key_case($arParams, CASE_UPPER);
	$arParams['TYPE'] ??= null;
	$arParams['TITLE'] ??= null;
	$arParams['SERVER'] ??= null;
	$arParams['LOGIN'] ??= null;
	$arParams['PASSWORD'] ??= null;

	if (!isset($arParams['TYPE']))
	{
		$arParams['TYPE'] = CVoxImplantSip::TYPE_CLOUD;
	}

	$viSip = new CVoxImplantSip();
	$configId = $viSip->Add([
		'TYPE' => mb_strtolower($arParams['TYPE']),
		'PHONE_NAME' => $arParams['TITLE'],
		'SERVER' => $arParams['SERVER'],
		'LOGIN' => $arParams['LOGIN'],
		'PASSWORD' => $arParams['PASSWORD'],
		'APP_ID' => $server->getAppId()
	]);
	if (!$configId || $viSip->GetError()->error)
	{
		throw new BitrixRestRestException($viSip->GetError()->msg, $viSip->GetError()->code, CRestServer::STATUS_WRONG_REQUEST);
	}

	$result = $viSip->Get($configId, ['WITH_TITLE' => true]);
	unset($result['APP_ID']);
	unset($result['REG_STATUS']);

	return $result;
}