- Модуль: 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() : "",
];
}