• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_config.php
  • Класс: CVoxImplantConfig
  • Вызов: CVoxImplantConfig::GetBriefConfig
static function GetBriefConfig($params)
{
	$filter = array();

	if(isset($params['ID']))
	{
		$filter['=ID'] = $params['ID'];
	}
	else if (isset($params['SEARCH_ID']))
	{
		$searchId = $params['SEARCH_ID'];

		$filter = [
			'LOGIC' => 'OR',
			'=SEARCH_ID' => (string)$searchId,
			'=NUMBER.NUMBER' => (string)$searchId,
			'=GROUP_NUMBER.NUMBER' => (string)$searchId,
			'=CALLER_ID.NUMBER' => (string)$searchId,
		];
	}
	else
	{
		throw new BitrixMainArgumentException('Params should contain either ID or SEARCH_ID', 'params');
	}

	$result = VIConfigTable::getList(array(
		'select' => array(
			'ID' => 'ID',
			'PHONE_NAME' => 'PHONE_NAME',
			'SEARCH_ID' => 'SEARCH_ID',
			'LINE_TYPE' => 'PORTAL_MODE',
			'LINE_NUMBER' => 'SEARCH_ID',
			'SIP_TYPE' => 'SIP_CONFIG.TYPE',
			'SIP_REG_ID' => 'SIP_CONFIG.REG_ID',
			'SIP_SERVER' => 'SIP_CONFIG.SERVER',
			'SIP_LOGIN' => 'SIP_CONFIG.LOGIN',
			'SIP_PASSWORD' => 'SIP_CONFIG.PASSWORD'
		),
		'filter' => $filter,
	))->fetch();

	if(!$result)
		return false;

	if ($result['LINE_TYPE'] == self::MODE_LINK)
	{
		$row = VIModelCallerIdTable::getRow([
			'filter' => [
				'=CONFIG_ID' => $result['ID']
			]
		]);
		$result['SEARCH_ID'] = $result['LINE_NUMBER'] = $result['PHONE_NAME'] = $row['NUMBER'];
	}
	else if($result['LINE_TYPE'] == self::MODE_RENT)
	{
		$row = VIModelNumberTable::getRow([
			'filter' => [
				'=CONFIG_ID' => $result['ID']
			]
		]);
		$result['SEARCH_ID'] = $result['LINE_NUMBER'] = $result['PHONE_NAME'] = $row['NUMBER'];
	}

	if ($result['LINE_TYPE'] === self::MODE_SIP && $result['SIP_TYPE'] === CVoxImplantSip::TYPE_CLOUD)
	{
		// password is not required in this case, because call is performed by REG_ID
		$result['SIP_PASSWORD'] = '';
	}

	return $result;
}