• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_sip.php
  • Класс: CVoxImplantSip
  • Вызов: CVoxImplantSip::PrepareFields
public function PrepareFields($fields, $type = self::CHECK_ADD)
{
	$result = Array();
	$errors = Array();

	if (isset($fields['TITLE']))
	{
		$result['PHONE_NAME'] = trim($fields['TITLE']);
	}
	else if (isset($fields['PHONE_NAME']))
	{
		$result['PHONE_NAME'] = trim($fields['PHONE_NAME']);
	}

	if (!in_array($fields['TYPE'], Array(self::TYPE_OFFICE, self::TYPE_CLOUD)))
	{
		$errors[] = GetMessage('VI_SIP_TYPE_ERR');
	}
	else if ($type == self::CHECK_ADD)
	{
		$result['TYPE'] = $fields['TYPE'];
	}

	if (isset($fields['REG_ID']) && $fields['TYPE'] == self::TYPE_CLOUD)
	{
		$result['REG_ID'] = intval($fields['REG_ID']);
		$result['SEARCH_ID'] = 'reg'.$result['REG_ID'];
	}
	else if (isset($fields['SEARCH_ID']) && $type == self::CHECK_UPDATE)
	{
		$result['SEARCH_ID'] = trim($fields['SEARCH_ID']);
	}
	else if ($type == self::CHECK_ADD)
	{
		$result['SEARCH_ID'] = $fields['TYPE'] == self::TYPE_CLOUD? 'reg0': 'sip0';
	}

	if (isset($fields['SERVER']))
	{
		$result['SERVER'] = trim($fields['SERVER']);
		$result['SERVER'] = str_replace(Array('http://', 'https://'), '', $result['SERVER']);
		if (mb_strlen($result['SERVER']) > 100)
			$errors[] = GetMessage('VI_SIP_SERVER_100');
		else if ($result['SERVER'] == '')
			$errors[] = GetMessage('VI_SIP_SERVER_0');
	}
	else if ($type == self::CHECK_ADD)
	{
		$errors[] = GetMessage('VI_SIP_SERVER_0');
	}

	if (isset($fields['LOGIN']))
	{
		$result['LOGIN'] = trim($fields['LOGIN']);
		if (mb_strlen($result['LOGIN']) > 100)
			$errors[] = GetMessage('VI_SIP_LOGIN_100');
		else if ($result['LOGIN'] == '')
			$errors[] = GetMessage('VI_SIP_LOGIN_0');
	}
	else if ($type == self::CHECK_ADD)
	{
		$errors[] = GetMessage('VI_SIP_LOGIN_0');
	}

	if (isset($fields['PASSWORD']))
	{
		$result['PASSWORD'] = trim($fields['PASSWORD']);
		if (mb_strlen($fields['PASSWORD']) > 100)
			$errors[] = GetMessage('VI_SIP_PASSWORD_100');
	}

	if ($fields['TYPE'] == self::TYPE_OFFICE)
	{
		if (isset($fields['INCOMING_SERVER']))
		{
			$result['INCOMING_SERVER'] = trim($fields['INCOMING_SERVER']);
			if (mb_strlen($fields['INCOMING_SERVER']) > 100)
				$errors[] = GetMessage('VI_SIP_INC_SERVER_100');
			else if ($fields['INCOMING_SERVER'] == '')
				$errors[] = GetMessage('VI_SIP_INC_SERVER_0');
		}

		if (isset($fields['INCOMING_LOGIN']))
		{
			$result['INCOMING_LOGIN'] = trim($fields['INCOMING_LOGIN']);
			if (mb_strlen($fields['INCOMING_LOGIN']) > 100)
				$errors[] = GetMessage('VI_SIP_INC_LOGIN_100');
			else if ($fields['INCOMING_LOGIN'] == '')
				$errors[] = GetMessage('VI_SIP_INC_LOGIN_0');

			$result['SEARCH_ID'] = $result['INCOMING_LOGIN'];
		}

		if (isset($fields['INCOMING_PASSWORD']))
		{
			$result['INCOMING_PASSWORD'] = trim($fields['INCOMING_PASSWORD']);
			if (mb_strlen($result['INCOMING_PASSWORD']) > 100)
				$errors[] = GetMessage('VI_SIP_INC_PASSWORD_100');
		}
	}

	if (isset($fields['APP_ID']))
	{
		$result['APP_ID'] = trim($fields['APP_ID']);
	}

	if(isset($fields['AUTH_USER']))
	{
		$result['AUTH_USER'] = $fields['AUTH_USER'];
	}

	if(isset($fields['OUTBOUND_PROXY']))
	{
		$result['OUTBOUND_PROXY'] = $fields['OUTBOUND_PROXY'];
	}
	if(isset($fields['DETECT_LINE_NUMBER']))
	{
		$result['DETECT_LINE_NUMBER'] = $fields['DETECT_LINE_NUMBER'];
	}
	if(isset($fields['LINE_DETECT_HEADER_ORDER']))
	{
		$result['LINE_DETECT_HEADER_ORDER'] = $fields['LINE_DETECT_HEADER_ORDER'];
	}

	if (!empty($errors))
	{
		$this->error = new CVoxImplantError(__METHOD__, 'CHECK_FIELDS_ERROR', implode('
', $errors)); return false; } else { return $result; } }