• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_phone.php
  • Класс: CVoxImplantPhone
  • Вызов: CVoxImplantPhone::syncCallerIds
static function syncCallerIds(array $parameters = [])
{
	if(isset($parameters['callerIds']))
	{
		$callerIds = $parameters['callerIds'];
	}
	else
	{
		return false;
	}

	$knownCallerIds = [];
	foreach ($callerIds as $callerId)
	{
		$knownCallerIds[$callerId['NUMBER']] = true;
		VIModelCallerIdTable::merge([
			'NUMBER' => $callerId['NUMBER'],
			'VERIFIED' => $callerId['VERIFIED'] ? 'Y' : 'N',
			'VERIFIED_UNTIL' => $callerId['VERIFIED_UNTIL']
		]);
	}

	$cursor = VIModelCallerIdTable::getList([
		'select' => ['ID', 'NUMBER', 'CONFIG_ID'],
		'cache' => ['ttl' => 31536000]
	]);

	while ($row = $cursor->fetch())
	{
		if(isset($knownCallerIds[$row['NUMBER']]))
		{
			if(!$row['CONFIG_ID'])
			{
				$addResult = VIConfigTable::add([
					'PORTAL_MODE' => CVoxImplantConfig::MODE_LINK
				]);

				$configId = $addResult->getId();
				VIModelCallerIdTable::update($row['ID'], [
					'CONFIG_ID' => $configId
				]);
			}
		}
		else
		{
			if($row['CONFIG_ID'])
			{
				VIConfigTable::delete($row['CONFIG_ID']);
			}
			VIModelCallerIdTable::delete($row['ID']);
		}
	}
}