• Модуль: 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;
}