- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_outgoing.php
- Класс: CVoxImplantOutgoing
- Вызов: CVoxImplantOutgoing::StartInfoCallWithSound
static function StartInfoCallWithSound($outputNumber, $number, $url)
{
$result = new Result();
CVoxImplantHistory::WriteToLog(Array($outputNumber, $number, $url), 'StartInfoCallWithSound');
if($outputNumber === CVoxImplantConfig::LINK_BASE_NUMBER)
{
$result->addError(new Error('Making infocall using LINK_BASE_NUMBER is not allowed'));
return $result;
}
$numberConfig = CVoxImplantConfig::GetConfigBySearchId($outputNumber);
if(isset($numberConfig['ERROR']))
{
$result->addError(new Error('Could not find config for number ' . $outputNumber));
return $result;
}
$limitRemainder = VILimits::getInfocallsLimitRemainder($numberConfig['PORTAL_MODE']);
if ($limitRemainder === 0)
{
$result->addError(new Error('Infocall limit for this month is exceeded'));
return $result;
}
if($numberConfig['PORTAL_MODE'] === CVoxImplantConfig::MODE_SIP)
$phoneNormalized = $number;
else
$phoneNormalized = CVoxImplantPhone::stripLetters($number);
if (!$phoneNormalized)
{
$result->addError(new Error('Phone number is not correct'));
return $result;
}
$options = array(
'MODE' => self::INFOCALL_MODE_URL,
);
$httpClient = new CVoxImplantHttp();
$infocallResult = $httpClient->StartInfoCall($phoneNormalized, $url, $options, $numberConfig);
if($infocallResult === false)
{
$result->addError(new Error('Infocall failure'));
return $result;
}
CVoxImplantHistory::WriteToLog($result, 'Infocall started');
if($limitRemainder > 0)
{
VILimits::addInfocall($numberConfig['PORTAL_MODE']);
}
$result->setData(array(
'CALL_ID' => $infocallResult->call_id
));
return $result;
}