- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_incoming.php
- Класс: CVoxImplantIncoming
- Вызов: CVoxImplantIncoming::GetConfig
static function GetConfig($params)
{
if (!VILimits::canCall())
{
return [
'error' => ['code' => 'PAID_PLAN_REQUIRED']
];
}
$result = CVoxImplantConfig::GetConfigBySearchId($params['PHONE_NUMBER']);
if(!$result['ID'])
{
return $result;
}
$result['TYPE_CONNECT'] = self::TYPE_CONNECT_CONFIG;
if($result["PORTAL_MODE"] == CVoxImplantConfig::MODE_GROUP)
{
$result["SEARCH_ID"] = $params["PHONE_NUMBER"];
}
$result = CVoxImplantIncoming::RegisterCall($result, $params);
$isNumberInBlacklist = CVoxImplantIncoming::IsNumberInBlackList($params["CALLER_ID"], $result['NUMBER_COUNTRY_CODE']);
$isBlacklistAutoEnable = BitrixMainConfigOption::get("voximplant", "blacklist_auto", "N") === "Y";
if ($result["WORKTIME_SKIP_CALL"] === "Y" && !$isNumberInBlacklist && $isBlacklistAutoEnable)
{
$isNumberInBlacklist = CVoxImplantIncoming::CheckNumberForBlackList($params["CALLER_ID"]);
}
if ($isNumberInBlacklist)
{
$result["NUMBER_IN_BLACKLIST"] = "Y";
}
if (!VILimits::canSelectCallSource())
{
$result["CRM_SOURCE"] = 'CALL';
}
if (!VILimits::canVote())
{
$result["CALL_VOTE"] = 'N';
}
if ($result["QUEUE_TYPE"] === CVoxImplantConfig::QUEUE_TYPE_ALL && !VILimits::isQueueAllAllowed())
{
$result["QUEUE_TYPE"] = CVoxImplantConfig::QUEUE_TYPE_EVENLY;
}
if ($result["NO_ANSWER_RULE"] === self::RULE_NEXT_QUEUE && !VILimits::isRedirectToQueueAllowed())
{
$result["NO_ANSWER_RULE"] = self::RULE_VOICEMAIL;
}
foreach(GetModuleEvents("voximplant", "onCallInit", true) as $arEvent)
{
ExecuteModuleEventEx($arEvent, Array(Array(
'CALL_ID' => $params['CALL_ID'],
'CALL_TYPE' => CVoxImplantMain::CALL_INCOMING,
'ACCOUNT_SEARCH_ID' => $params['ACCOUNT_SEARCH_ID'],
'PHONE_NUMBER' => $params['PHONE_NUMBER'],
'CALLER_ID' => $params['CALLER_ID'],
)));
}
return $result;
}