- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_outgoing.php
- Класс: CVoxImplantOutgoing
- Вызов: CVoxImplantOutgoing::findLineId
static function findLineId(string $phoneNumber)
{
$phoneNumber = CVoxImplantPhone::stripLetters($phoneNumber);
$checkExtensionCursor = BitrixMainUserTable::getList(Array(
'select' => Array('ID', 'IS_ONLINE', 'UF_VI_PHONE', 'ACTIVE'),
'filter' => Array('=UF_PHONE_INNER' => $phoneNumber, '=ACTIVE' => 'Y'),
));
if($checkExtensionCursor->fetch())
{
return false;
}
$cursor = VIConfigTable::getList([
'select' => [
'SEARCH_ID',
'LINE_PREFIX',
'RENTED_NUMBER' => 'NUMBER.NUMBER',
'CALLER_ID_NUMBER' => 'CALLER_ID.NUMBER'
],
'filter' => [
'=CAN_BE_SELECTED' => 'Y',
'=PORTAL_MODE' => [CVoxImplantConfig::MODE_SIP, CVoxImplantConfig::MODE_RENT, CVoxImplantConfig::MODE_LINK]
]
]);
while ($row = $cursor->fetch())
{
$currentPrefix = (string)$row['LINE_PREFIX'];
if($currentPrefix == '')
continue;
if($currentPrefix == mb_substr($phoneNumber, 0, mb_strlen($currentPrefix)))
{
return $row['SEARCH_ID'] ?: $row['RENTED_NUMBER'] ?: $row['RENTED_GROUP_NUMBER'] ?: $row['CALLER_ID_NUMBER'];
}
}
return false;
}