- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/lib/routing/user.php
- Класс: BitrixVoximplantRoutingUser
- Вызов: User::getFirstAction
public function getFirstAction(Call $call)
{
$userData = CVoxImplantIncoming::getUserInfo($this->userId, false);
if($userData['BUSY'] == 'Y' && !$this->passIfBusy)
{
return new Action(Command::BUSY, [
'USERS' => [$userData],
'TYPE_CONNECT' => $this->connectType
]);
}
if($call->getIncoming() == CVoxImplantMain::CALL_OUTGOING && $userData['USER_ID'] == $call->getUserId())
{
return new Action(Command::BUSY, [
'REASON' => 'User can't call himself',
'USERS' => [$userData],
'TYPE_CONNECT' => $this->connectType
]);
}
if($userData['AVAILABLE'] === 'Y')
{
return Action::create(Command::INVITE, [
'USERS' => [$userData],
'TYPE_CONNECT' => $this->connectType
]);
}
if ($this->failureRule === CVoxImplantIncoming::RULE_HUNGUP)
{
return Action::create(Command::HANGUP, [
'USERS' => [$userData],
'CODE' => 480,
'REASON' => 'User is not available',
]);
}
return false;
}