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