• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/lib/controller/callerid.php
  • Класс: BitrixVoximplantControllerCallerId
  • Вызов: CallerId::verifyAction
public function verifyAction($phoneNumber, $code)
{
	$number = Parser::getInstance()->parse($phoneNumber);
	if(!$number->isValid())
	{
		$this->errorCollection[] = new Error(Loc::getMessage("VOX_CALLER_ID_WRONG_NUMBER"), "wrong_number");
		return null;
	}
	$normalizedNumber = $number->format(Format::E164);
	// remove +
	$normalizedNumber = mb_substr($normalizedNumber, 1);

	$row = CallerIdTable::getRow(['filter' => [
		'=NUMBER' => $normalizedNumber
	]]);

	if(!$row)
	{
		$this->errorCollection[] = new Error(Loc::getMessage("VOX_CALLER_ID_NOT_FOUND"), "not_found");
		return null;
	}

	$apiClient = new CVoxImplantHttp();
	$result = $apiClient->activateCallerID($normalizedNumber, $code);

	if(!$result)
	{
		$this->errorCollection[] = new Error($apiClient->GetError()->msg, $apiClient->GetError()->code);
		return null;
	}

	$verifiedUntil = BitrixMainTypeDateTime::createFromTimestamp($result->verified_until_ts);
	CallerIdTable::update($row["ID"], [
		"VERIFIED" => $result->verified ? "Y" : "N",
		"VERIFIED_UNTIL" => $verifiedUntil
	]);

	return [
		"number" => $normalizedNumber,
		"verified" => $result->verified ? "Y" : "N",
		"verifiedUntil" => $verifiedUntil ? $verifiedUntil->toString() : "",
	];
}