- Модуль: 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;
}
}