• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_phone.php
  • Класс: CVoxImplantPhone
  • Вызов: CVoxImplantPhone::AttachPhoneNumber
static function AttachPhoneNumber($name, $params)
{
	$result = new BitrixVoximplantResult();

	$arPhones = Array();
	$viHttp = new CVoxImplantHttp();
	$apiResult = $viHttp->AttachPhoneNumber($params);
	if ($apiResult && $apiResult->result && !empty($apiResult->phone_numbers))
	{
		foreach ($apiResult->phone_numbers as $number)
		{
			$arPhones[$number->phone_number]['PHONE_NUMBER'] = '+'.$number->phone_number;
			$arPhones[$number->phone_number]['PHONE_NUMBER_FORMATTED'] = static::formatInternational($number->phone_number);
			$arPhones[$number->phone_number]['SUBSCRIPTION_ID'] = $number->subscription_id;
			$arPhones[$number->phone_number]['COUNTRY_CODE'] = $number->phone_country_code;
			$arPhones[$number->phone_number]['VERIFICATION_REGION'] = isset($number->required_verification)? $number->required_verification: '';
			$arPhones[$number->phone_number]['VERIFICATION_STATUS'] = isset($number->verification_status)? $number->verification_status: 'VERIFIED';
		}
		CVoxImplantHistory::WriteToLog($arPhones, 'ATTACHED PHONES');
	}
	else
	{
		CVoxImplantHistory::WriteToLog($viHttp->GetError(), 'ERROR WHILE ATTACH');
		$errorCode = $viHttp->GetError()->code;
		$errorMessage = Loc::getMessage("VI_PHONE_ATTACH_ERROR_" . $errorCode) ?: $viHttp->GetError()->msg;

		$result->addError(new BitrixMainError($errorMessage, $errorCode));
		return $result;
	}

	$configId = static::createConfig($name, $arPhones);
	static::savePhoneNumbers($configId, $arPhones);

	CVoxImplantUser::clearCache();
	CVoxImplantConfig::SetModeStatus(CVoxImplantConfig::MODE_RENT, true);

	$result->setData([
		'configId' => $configId,
		'numbers' => $arPhones,
	]);

	return $result;
}