• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_sip.php
  • Класс: CVoxImplantSip
  • Вызов: CVoxImplantSip::Get
public function Get($configId, $params = [])
{
	$configId = intval($configId);
	if ($configId <= 0)
	{
		$this->error = new CVoxImplantError(__METHOD__, 'CONFIG_ID_NULL', GetMessage('VI_SIP_CONFIG_ID_NULL'));
		return false;
	}

	if (!is_array($params))
	{
		$params = [];
	}

	$result = VISipTable::getList([
		'select' => ($params['WITH_TITLE'] ?? null) ? ['*', 'TITLE'] : ['*'],
		'filter' => ['=CONFIG_ID' => $configId]
	]);
	$row = $result->fetch();
	if (!$row)
	{
		$this->error = new CVoxImplantError(__METHOD__, 'CONFIG_NOT_FOUND', GetMessage('VI_SIP_CONFIG_NOT_FOUND'));
		return false;
	}

	if ($row['TYPE'] == self::TYPE_CLOUD)
	{
		if (intval($row['REG_ID']) <= 0)
		{
			$result = $this->CreateSipRegistration(
				$row['ID'],
				$row['CONFIG_ID'],
				$row['SERVER'],
				$row['LOGIN'],
				$row['PASSWORD'],
				$row['AUTH_USER'],
				$row['OUTBOUND_PROXY']
			);
			if ($result)
			{
				$row['REG_ID'] = $result->reg_id;
			}
			$row['REG_STATUS'] = $result? self::REG_STATUS_IN_PROGRESS: self::REG_STATUS_ERROR;
		}
		else
		{
			$row['REG_STATUS'] = self::REG_STATUS_WAIT;
		}
		unset($row['INCOMING_SERVER']);
		unset($row['INCOMING_LOGIN']);
		unset($row['INCOMING_PASSWORD']);
	}
	else
	{
		if (empty($row['INCOMING_SERVER']) && empty($row['INCOMING_LOGIN']) && empty($row['INCOMING_PASSWORD']))
		{
			$ViHttp = new CVoxImplantHttp();
			$result = $ViHttp->GetSipParams($configId);
			if ($result)
			{
				$row['INCOMING_SERVER'] = str_replace(Array('incoming.', '.voximplant.com'), Array('ip.', '.bitrixphone.com'), $result->server);
				$row['INCOMING_LOGIN'] = $result->user_name;
				$row['INCOMING_PASSWORD'] = $result->user_password;

				$this->Update($configId, Array(
					'TYPE' => self::TYPE_OFFICE,
					'INCOMING_SERVER' => $row['INCOMING_SERVER'],
					'INCOMING_LOGIN' => $row['INCOMING_LOGIN'],
					'INCOMING_PASSWORD' => $row['INCOMING_PASSWORD']
				));
			}
		}
		else
		{
			$row['INCOMING_SERVER'] = str_replace(Array('incoming.', '.voximplant.com'), Array('ip.', '.bitrixphone.com'), $row['INCOMING_SERVER']);
		}
		unset($row['REG_ID']);
	}

	return $row;
}